Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

abcdef

CodeEngn Basic - (10) 본문

IT 독학/CodeEngn

CodeEngn Basic - (10)

whistle.l 2018. 8. 11. 03:57

이번 문제의 미션은 OEP를 구한 후 성공 창으로 가는 OPCODE를 찾으면 됩니다.


일단 다운을 받습니다.

실행시켜봅니다.



이렇게 뜨고 아무것도 입력이 되지 않습니다.

올리디버거로 열어봅니다.

그리고 OEP를 찾아보려고 해도 오류도 계속 뜨고 BP도 자꾸만 사라집니다.


 


이런 오류창이 계속 뜨는데 아마도 이 파일이 패킹 되어 있을 확률이 아주 높습니다. 패킹은 용량줄이기 + 보호목적으로 암호화를 하기 때문에 복잡합니다. 먼저 PUSHAD가 첫번째로 나와있는데 패킹은 POPAD로 웬만하면 다 풉니다. POPAD를 찾아줍시다.

우클릭 – Search for – All commands - POPAD입력




매우 많지만 일단 첫번째 POPAD를 더블클릭합니다.

조금만 움직이니 바뀌어 버리는 것으로 보아 아닌 것 같습니다. 그럼 두번째를 더블클릭합니다.



PUSH 0에 주목해주시기 바랍니다.



POPAD를 실행시키니 PUSH 10.00445834로 바뀝니다.

계속 실행시켜보면 RETN을 기점으로 프로그램이 실행됩니다.

00445834OEP일 것입니다.

이제 OPCODE만 찾으면 됩니다.

문자열을 뽑읍시다.



성공 창이 있습니다.

더블클릭해봅니다.



찾다보면 성공 창에서 제일 가까운 점프가 보일 겁니다. 저 점프는

100044552B의 값을 비교했을 때 ZF1이면 점프하고 ZF0이면 점프하지 않습니다. 하여튼 OPCODEJNZ입니다.

OEP+OPCODE를 적어야하므로 정답은 004458347555입니다.


'IT 독학 > CodeEngn' 카테고리의 다른 글

CodeEngn Basic - (12)  (0) 2018.08.11
CodeEngn Basic - (11)  (0) 2018.08.11
CodeEngn Basic - (9)  (0) 2018.08.11
CodeEngn Basic - (8)  (0) 2018.08.11
CodeEngn Basic - (7)  (0) 2018.08.11