분류 전체보기
-
리버싱 예제) CodeEngn Basic L16리버싱/리버싱스러운것 2024. 12. 26. 13:41
코드엔진 basic 16번을 풀어보도록 하겠다. Name과 Password를 입력하고 맞는지 체크하는 흔한 유형이다 보통 이런류는 입력한 Name에 따라 시리얼 값이 달라지는 경우가 대부분이다(사실 100%임) Name 값이 CodeEngn 일때의 Password 값을 구해야 하는데... 일단 정적 분석 도구인 기드라를 통해 한번 열어봤다 처음 로딩하면 메인함수로 갖다 주는데 뭐가 엄청많다. 아까 틀린 패스워드를 입력하면 Wrong Password 문구가 출력되던데 그 부분이 어딘지 찾는다. 핵심 분기는 저기다, local_44와 local_40의 값이 같은지의 여부에 따라 분기가 나뉘는데 한번 x32dbg로 돌려봄 아까본 Wrong password 문구가 출력되는 부분으로 ㄱㄱ 그 위로 가보면..
-
기초 정적분석리버싱/악성코드 2023. 7. 6. 17:56
공통 DLL Kernel32.dll - 메모리, 파일, 하드웨어 접근과 조작과 같은 핵심 기능을 담은빈번히 공통으로 사용되는 DLL Advapi32.dll - 이 DLL을 이용하면 서비스 관리자나 레지스트리 같은 추가 핵심 윈도우 컴포넌트에 접근할 수 있다 User32.dll - 버튼, 스크롤바, 사용자 행위 제어와 반응 컴포넌트 등 모든 사용자 인터페이스 컴포넌트 Gdi32.dll - 그래픽관련 함수 Ntdll.dll - 윈도우 커널 인터페이스, 이건 뭐라 설명하기가 힘들다 WSock32.dll - 네트워크관련 작업을 수행한다 Wininet - FTP, HTTP, NTP 같은 프로토콜을 구현한 상위수준의 네트워크 함수를 담고있다 - 윈도우가 업데이트되면서 업데이트한 신규 함수가 기존 함수와 같은 이름일..
-
JEB를 이용한 동적 디버깅리버싱/모바일 2023. 7. 3. 17:22
먼저 ro.debuggable 값을 0에서 1로 바꾸는 과정부터 간편하게 설명 https://github.com/liwugang/android_properties GitHub - liwugang/android_properties: Android get/set system properties Android get/set system properties. Contribute to liwugang/android_properties development by creating an account on GitHub. github.com 위 주소로 가서 자기 디바이스 시스템에 맞는 파일을 다운찾는다 adb의 /data/local/tmp 폴더로 push 한다 이걸친다 굿 그럼 이제 전에 풀었던 문제의 동적 디버깅을 실..
-
안드로이드 리버싱 실습 with JEB리버싱/모바일 2023. 6. 30. 14:09
비밀번호를 입력하는 창이나온다 올바른 값을 입력해야되나봄 JEB1로 열어봅니다 뭔 소리인지 모릅니다 먼저 풀이를 보기전에 이런걸 찾음 아마 버튼을 클릭했을때 실행되는 이벤트겟죠 메인액티비티.xml 에도 나와 있다 자 이제 버튼 클릭이벤트를 디컴파일 후에 자세히 봅시다 가운데 0x7F60016 이라고 있는데 이게 토스트 메시지의 내용입니다 그 위에는 if문이 하나 있는데 우리의 비밀번호가 맞는지 검사하는 문장이겠죠 자세히 보면 같은 패키지의 a.a랑 같은 값인지 확인한다는데 뭔지 클릭해봅시다 더블클릭하면 알아서 a클래스로 가집니다 이렇게 편리할수가 위에서부터 한줄씩 읽어봅시다 그냥 보면 뭔소린지 하나도모릅니다 문자 s1 은 c2lrMjAxNg== 를 base64 로 디코드한값(sik2016가 나옴) 그리고..
-
안드로이드 apk 구성 및 리버싱 도구리버싱/모바일 2023. 6. 28. 22:58
APK 파일 구성 Android 매니페스트 - 패키지 이름, 최소 실행 버전, 컴포넌트, 필요 권한 등을 명시한 파일 classes.dex - 애플리케이션의 실행 코드 - 자바코드를 javac로 컴파일하면 자바 class 파일이 생성된다, 그리고 컴파일된 자바 파일은 개발 도구중 하나인 dx를 이용해서 dex 파일로 만들어짐 resources.arsc - APK 에서 사용되는 문자(스트링)들 넣어놓은거 META-INF 폴더 - 패키지의 매니페스트 파일과 서명파일이 있음, 이 안에는 APK 파일에 존재하는 파일명과 서명 값 항목들이 있음 res 폴더 - 애니메이션, 이미지 같은 것들 넣음 APK 만드는 과정 1. 자바 코드 만듬 2. 컴파일하면 class 파일이 된다 3. 이걸 dex 파일로 바꿈 4. d..
-
안드로이드 구성요소리버싱/모바일 2023. 6. 26. 17:47
액티비티 - 내가 보고 있는 화면이 액티비티임 onCreate() : 액티비티가 생성될 때 호출 onstart() : 액티비티가 화면에 보이기 바로 전에 호출 startActivity() : 액티비티를 띄우는 메소드, 띄우기 전에 액티비티는 밑에 깔림(스택같이) onResume() : 액티비티가 중지된 이후 호출(다시 시작되기 바로 전에 호출) onRestart() : 액티비티가 중지된 이후 호출 onPause() : 또 다른 액티비티를 시작하려고 할 때 호출 onStop() : 액티비티가 사용자에게 더 이상 보이지 않을 때 호출 onDestory() : 액티비티가 없어지기 전에 호출 서비스 - 백그라운드에서 실행되는 프로세스 - 액티비티가 인터페이스 같은거 보여주면 서비스는 상호작용 같은거 startS..
-
Basic RCE L14, KeyCrackmMe - #2리버싱/리버싱스러운것 2023. 6. 9. 03:54
뭔 잡놈이 반겨준다 입력값을 입력하면 시리얼 밑의 시리얼 값과 대조하는 그런 문제다 본 문제는 upx로 패킹되어있는데 패킹안하고 푸는 방법이 있을 것 같지만 OEP로 날아가서 봐도 원본에 쓰인 문자열들이 죄다 박살나있기 때문에 도저히 내 지식으로는 풀 수 없다 판단, 언패킹후 풀이하였다 문자열 모음을 보면 대조결과에 따라 다른 메세지들을 출력할때 쓰는 문자열들이 보인다 성공시 출력되는 메시지로 가본다 거기서 위로 좀 올리면 시리얼제조공장이 보인다. 소문자 a를 입력했을때의 생성과정인데 정확히 알려드리자면 abc를 입력했을 때 처음에 한 글자 a(61)을 불러오고 61x61 = 24C1 그 값을 ESI에 넣어주고 61 >> 1 = 30 을 EBX에 ADD ESI EBX = 24C1+30 = 24F1 거기서..