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 - (1) 본문

IT 독학/CodeEngn

CodeEngn Basic - (1)

whistle.l 2018. 8. 11. 01:38



먼저 실행파일을 받은 뒤 한번 실행시켜 봅니다.



이런 두 Message창이 뜨게 됩니다.

이번 01문제의 목표는 저 Error창을 성공창으로 바꾸는 것 입니다.



먼저 올리디버거로 01실행파일을 엽니다. 그리고 00401000주소로 가줍니다. (대부분의 main함수는 다 주소가 00401000입니다) 밑에 MessageBoxA가 두개가 보이네요. GetDriveTypeA함수까지 간 뒤

BP(F2) 브레이크 포인트를 걸어주고 그곳까지 실행시켜줍니다.



GetDriveTypeA에 함수의 반환 값은 3입니다. (함수의 반환 값은 EAX레지스터에 저장됩니다) 이제 밑에 알고리즘을 해석해 봅니다



00401024주소와 00401026주소의 코드를 주목해 주세요.

CMP EAX, ESI – 만약 EAXESI를 비교했을 때

JE SHORT REVERSE_.0040103D – 두 값이 같다면 0040103D주소로 점프하여라.

라는 뜻이 됩니다.

결국 EAX값과 ESI값이 같아야 성공 실행창이 나온다는 얘기입니다.

하지만 그렇게 머리를 굴릴 필요없이



EAX보다 ESI값이 훤저히 크기 때문에 JE(두 값이 같다면)JB(뒷 값이 더 크다면)으로 바꾸어 준다면 바로 성공창으로 넘어갈 수 있을 것입니다.

JE코드를 더블클릭하여


 


코드를 바꾸어 주고 실행(F9)을 하면



성공창이 뜨게 됩니다.


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

CodeEngn Basic - (6)  (0) 2018.08.11
CodeEngn Basic - (5)  (0) 2018.08.11
CodeEngn Basic - (4)  (0) 2018.08.11
CodeEngn Basic - (3)  (0) 2018.08.11
CodeEngn Basic - (2)  (0) 2018.08.11