10번 문제입니다.



ASPacking이 되어있습니다. 먼저 이를 언패킹 하겠습니다.


언패킹하는 방법은 인터넷에 많이 나와있는데 저는 여길 참고했습니다.

http://www.iblue.kr/xe/index.php?document_srl=14782&mid=board_jmbm03


먼저 시작하면 PUSHAD가 나오는데 여기서 F8을 누른 후 ESP를 Dump합니다. 



HexDump 창에서 4바이트를 드래그하고 Dword로 BP를 겁니다.



그리고 F9를 눌러서 BP까지 가면 아래와 같습니다.



아직은 모양이 다 안나왔습니다. 컨트롤+A를 눌러서 코드를 정리하고 올리덤프로 저장합니다.



LordPE로 리빌드 해줍니다.



PEiD로 언패킹이 잘 되었나 확인해봅시다.



언패킹이 잘 되었습니다. 이제 문제에서 원하는 답을 찾아 보도록하겠습니다. OEP는 이미 찾았으므로 '등록성공'으로 가는 분기점의 opcode를 찾아내야겠군요.



Registered ... wel done! 문자열 위에 jnz 분기문이 있습니다. 여기의 opcode인 7555가 문제에서 원하는 답입니다.


따라서 답은 OEP + opcode = 답이겠군요.




'Wargame > CodeEngn challenge' 카테고리의 다른 글

CodeEngn basic Level 12 풀이  (0) 2016.09.30
CodeEngn basic Level 11 풀이  (0) 2016.09.30
CodeEngn basic Level 9 풀이  (0) 2016.09.13
CodeEngn basic Level 8 풀이  (0) 2016.09.12
CodeEngn basic Level 7 풀이  (0) 2016.09.12

+ Recent posts