본문 바로가기

Wargame/Reversing.kr

[Reversing.kr] Replace

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