본문 바로가기
prob/reversing.kr

[Reversing.kr] Replace

by Melpin 2015. 11. 2.

문제를 다운받아서 실행시켜보면 숫자값만 입력받을 수 있는것을 알수있다.


디버거 붙여놓은 다음 아무 숫자나 입력을 해보면 

MOV [EAX], 90 명령을 실행할때 잘못된 주소를 참조하여 오류가 발생한다.


여러차례 값을 넣어가며 관찰하다보면

0x601605cb + 내가넣은 숫자 10진수 값이 eax에 들어있게 된다.


우선 적당히 참조가능한 스택의 주소로 대략 0x0012fa20 쯤이 EAX에 들어갈 수 있도록 계산해주고,

아까 에러가 발생한 곳에 브레이크 포인트를 걸어놓으면 이번에는 프로그램이 계속 진행되는것을 볼 수 있다.

해당 함수를 빠저나간 뒤에 보면 jmp가 하나 더 있는대 왠지 여기를 점프하면 안될것 같아보인다.


그래서 nop으로 처리한뒤에 실행해보니 Correct!가 나오는것을 볼수있다.

그렇다면 정상적으로 이 점프문을 없애야 하는대


아까 MOV [EAX], 90 을 보면 [EAX]는 내가 원하는 주소로 만들수 있었고, 90은 NOP이기때문에

값을 잘 계산해서 해당 점프문을 NOPNOP으로 패치해주면된다.


※계산기 두들기다 화남

'prob > reversing.kr' 카테고리의 다른 글

[Reversing.kr] Direct3D_FPS  (0) 2015.11.11
[Reversing.kr] Position  (0) 2015.11.05
[Reversing.kr] imageprc  (0) 2015.11.05

댓글