파일 실행 후 아무값이나 넣어보면 Wrong이라는 문자열과 함께 작동이 중지됬다고 나온다. Ollydbg로 실행해보니 다음 MOV BYTE PTR DS:[EAX],90 이 부분에서 violation이 발생해 더이상 진행이 안되고 있었다. 90(NOP) 값을 넣는 EAX부분이 60160646 이라는 값인걸 보니 존재하지 않는 주소에다 NOP를 박으려고 에러가 났다. SetDIgItemTexTA 함수를 통해 어떤 문자열을 세팅하는데 그 위의 JMP구문이 있어서 무조건 이 부분을 지나치게 된다. 요상한 ascii 문자열 값이 담기는데 뭔지 궁금해서 jmp구문 수정해서 일단 해당 부분으로 넘어가게 해봤더니 Correct!란 값이 떳다. 이루틴으로 들어갈 수 있게 해야 될 것 같다. 그렇다면 JMP 구문을 어떻게든 패치를 해야되는데 이전에 에러 발생을 시켰던 특정 주소값에 NOP 코드를 박는 부분을 활용하면 될 것 같다. 일단 테스트 해보자.
EAX값에 JMP 코드가 있던 주소값을 박아서 넘기니 실제로 NOP처리가 되서 성공루틴으로 가는걸 볼 수 있었다. 그럼 내가 입력한 값을 통해 이를 가능하게 해야되는데 내가 입력한 값이 EAX값에 어떠한 영향을 주고있는지 테스트해봤다.
1넣었을때 601605CC , 2넣었을떄 601605CD가 나온걸로봐선 601605CB라는 base값에 내가 입력한 값을 16진수로 변환해서 더하고있는걸 알 수 있었다. |
'Wargame > reversing.kr' 카테고리의 다른 글
Reversing.kr Direct3D FPS (0) | 2018.01.21 |
---|---|
Reversing.kr ImagePrc (0) | 2018.01.21 |
Reversing.kr Easy Crack me (0) | 2018.01.21 |
Reversing.kr Easy Unpack (0) | 2018.01.21 |
Revering.kr Easy_keygen (0) | 2018.01.21 |