실행하면 폼창 하나 있고, 아무것도 없다.

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

ReversingKr KeygenMe


Find the Name when the Serial is 5B134977135E7D13

 

해당 값의 시리얼이 되는 이름을 찾는 문제.

시리얼까지 입력하고 나면 창이 꺼진다.

해당 문자열이 있는 곳으로 이동

input name 문자열 입력받고 내려오면

cmp esi, 3 은 esi가 3인지 비교한다. 3이되면 xor esi, esi로 초기화함.

 

esp+esi+C 주소에 0x10, 0x20, 0x30이 들어있고

esp+ebp+10 주소에는 내가 입력한 이름이 들어있다.

내 이름이 전부 키젠값이 생성될 때 까지 10,20,30을 for문 마냥 끝날 때 까지 계속 돈다 

 

밑으로 가면 키젠값이 맞는지 byte 단위로 확인하는 루틴이 있다. 맞으면 Correct! 틀리면 wrong!을 출력한다.

다른 키젠과 이름이 맞는지는 상관 없고 5B134977135E7D13의 시리얼에 맞는 이름을 찾는 간단한 파이썬 코드를 짜준다.

 

'Wargame > Reversing.kr' 카테고리의 다른 글

Easy Unpack[100]  (0) 2020.07.25
Easy Crack [100]  (0) 2020.07.24

실행하면 작은 입력창이 나타나고 값을 입력하면 틀렸다고 한다.

 

무슨 문자열이 있는지 확인해보니 Congratulation의 문자열이 보여 해당 주소로 이동한다.

문자열이 있는 곳 위의 주소 4010AA에 BP를 걸고 값을 입력하면 BP가 걸린다. 비교구문을 확인한다.

 

cmp byte ptr ss:[esp+5],61  -> esp+5의 주소에는 내가 2번째로 입력한 값이 들어있다 a와 비교한다.

 

Call easy_crackme.401150 함수주소의 내부중 일부이다. esi-1에 5y가 들어가고 내가 입력한 값이 edi-1에서 값을 비교한다.

 

aa5y를 치면 2번째 구간 까지 통과가된다.

3번째 구간에선 R3versing을 비교하는데 eax+1과 esi+1 각각 비교값, 내가 입력한 값을 byte 단위로 하나씩 루프를 돌며 비교한다 비교가 끝나면 다음 분기로 들어간다.

마지막 부분 esp+5에 2번째 글자가 들어있었고 esp+4에 첫번째 글자이다. E와 비교한다

모두 맞으면 Congratulation !!의 메시지가 들어간 MessageBoxA를 띄운다.

 

'Wargame > Reversing.kr' 카테고리의 다른 글

Easy Unpack[100]  (0) 2020.07.25
Easy Keygen [100]  (0) 2020.07.25

+ Recent posts