실행하면 폼창 하나 있고, 아무것도 없다.
PEID는 뭘로 만들어졌는지 모른다고 한다 EP Section이 text가 아닌 다른 코드 섹션이 들어있다.
이 프로그램은 패킹 되어 있다.
들어가면 Kernel32.dll을 GetModuleHandleA를 통해 불러오고 FreeLibrary로 다시 사용을 끝내는 부분이 보인다.
kernel32.dll은 메모리 관리, 입출력 명령, 프로세스와 스레드 생성, 그리고 동기화 함수들 같은 대부분의 Win32 베이스(base) API들을 응용 프로그램에 내보낸다. (한마디로 윈도우 커널에서 사용하는 운영체제 동작에 사용하는 명령 집합들)
내리다 보면 10 20 30 40 50 을 xor 연산하는 부분이 있는데 패킹된 파일을 복호화 하는 과정인거 같다.
계속 F8로 실행시키다 보면 메모리 VirtualProtect 함수를 콜하고 xor 연산하는 부분들이 보인다. 이부분들도
아마 패킹된 PE구조를 복호화 하는 과정이다.
패킹은 실행압축을 만드는데 원래 코드를 숨기고 패킹된 코드를 보여주어 디컴파일 하기 어렵게한다. 그러나, 패킹된 파일도 결국 원본코드를 실행시켜 프로그램을 동작시켜야 하기 때문에. 언패킹 과정이 끝나면 원래 코드 돌아가야 한다. 그 부분의 경계선을 찾아야 하고 원래 코드로 돌아가면 거기가 OEP(Original Entry Point)이다.
결국 이부분들은 패킹된 부분을 복호화 하는 과정들이다. 무엇을 복호화 하는지는 PE구조를 더 까봐야 알.. IAT 등을 복호화 하는 거 같다.. 정확하게는 모르겠다..
이 401150으로 jmp문을 가면 원래 언패킹된 코드가 나온다. 그 후 분석해야 한다면 덤프를 떠줘도 되지만
이 문제는 OEP를 찾는 문제기 때문에 상관없다.
OEP = 401150
'Wargame > Reversing.kr' 카테고리의 다른 글
Easy Keygen [100] (0) | 2020.07.25 |
---|---|
Easy Crack [100] (0) | 2020.07.24 |