exe 파일을 실행하니 위와 같은 화면이 나온다.
"Correct!" 를 더블클릭.
"Correct!" 에 BP를 걸고 주변을 살펴봐도 별게 없어서,
401073 ~ 401084 부분을 참조하는 부분을 검색해 "Correct!"로 JMP하는 다른 부분을 찾아보자.
음. 아무것도 안나온다.
엥. 난 왜 이상한데서 멈추지?
지금 컴퓨터가 과열돼서 제정신이 아닌 모양이다.
원래는 40466F 에서 멈춘다는데 eax 주소를 참조해 0x90 으로 채우고, 그 eax 에 들어갈 값을 유추해야 한다고 한다.
아, 드디어 제대로 됐다!
eax + 내 시리얼의 입력값, to hex 를 변경해 0x90 즉, NOP를 도출해내 프로그램이 동작하게 해야하는거다.
위의 eax 6017E80B 는 123456을 입력해 Check했을 때이다.
10진수 123456는 16진수로 1E240 이다.
eax 6017E80B - 1E240 = 601605CB
"Correct!" 로 가기 전 jmp가 두 개 있는데, 이 둘을 유심히 보자.
404690 주소로 가보니 아래에 401071로 jmp하는 부분이 있다.
40106C -> 404690 -> 401071 -> "Correct!" 라면?
00401071 주소를 NOP처리 시키기 위해,
eax + [내 입력] = 00401071이 되는 값을 찾아보자.
601605CB + x = 00401071이니 x는 A02A0AA6이여야 한다.
그럼 이제 변환 후 A02A0AA6가 되도록 하는 십진수 값을 찾아보자.
2687109798
'Wargame > Reversing.kr' 카테고리의 다른 글
[Reversing.kr] Easy ELF (0) | 2023.05.28 |
---|---|
[Reversing.kr] Easy Unpack (0) | 2023.05.28 |
[Reversing.kr] Easy Keygen (0) | 2023.05.28 |
[Reversing.kr] Easy Crack (0) | 2023.05.28 |