728x90
SMALL
예제 1번 풀이. 예제 1번은 정말 간단하지만 어려운 문제
GetDriveType의 리턴 값이 EAX에 저장되고 EAX-2 , ESI +3 후 둘이 비교해서 같으면 오류 문을 건너뛰는 루틴임을 알 수 있다. (EAX : 1, ESI : 3)
정말 간단한 풀이로는 그냥 00401026 번지의 내용을 JE -> JMP로 수정 후 크랙파일로 저장하면 된다. 혹은 책에 나왔듯이 Zero flag를 1로 수정해주면 된다.
어려운 풀이 - GetDriveType 함수를 구글링 해보면
리턴 값이 3 이면 하드디스크, 리턴값이 5이면 CD-ROM이다. 그리고 위에 루틴을 비교했을 시 EAX - 2 , ESI + 3 --> 5 - 2 == 0 + 3 이므로 따라서 GetDriveType의 리턴 값을 5로 수정해주면 된다. 그래서 위에 방식은 너무 간단하여 시도해 보았으나 쉽지 않았다…. 다음번에 도전하겠다. ㅠㅠ
LIST
'hacking > reversing' 카테고리의 다른 글
reversing.kr : Replace (0) | 2020.02.19 |
---|---|
reversing.kr : musicPlayer (0) | 2020.02.06 |
reversing.kr : Easy UnpackMe (0) | 2020.02.05 |