카테고리 없음

[Code Engn Challenge] Basic 8

미숫가루빙수 2024. 3. 31. 11:32

 
 

 문제를 읽어보면 OEP를 구하는 문제이다.

OEP가 뭔지 몰라서 찾아보았다.
 
 
 
OEP: original entry point로 원본코드가 먼저 실행되어야하는 entry point이다. (=프로그램의 시작주소)

 
 
upx로 압축을 하면 PUSHAD와 POPAD가 생성된다.

PUSHAD실행 후 맨 위의 스택 주소로 이동해 브레이크 포인트를 지정한다.
다시 실행하면 POPAD에서 멈추게 되는데 이때 JMP에 있는 주소가 OEP가 된다.
 
 

 DIE로 보았을 때 upx로 해체를 해줘야한다.

 

 실행을 시켜보면 계산기가 뜬다.
여기서 아무값이나 입력해보았지만 아무 창도 뜨지 않았다.
 

 아까 위에서 OEP는 프로그램의 시작 주소라고 했으니 위 주소가 정답이 된다.