프로그램을 실행하면 이런 화면이 뜬다.
Help > About을 클릭하니 Unregisted Version이라고 한다.
Use Reg Key를 클릭하여 임의의 값을 넣었더니 유효하지 않은 값이라고 한다.
이뮤니티 디버거에서 등록 관련 문자열을 찾아서 해당 위치로 이동했다.
해당 위치 바로 위에 JNZ가 있어서 이 문구를 뛰어넘고자 했다.
JNZ를 JE로 바꾸고 다시 실행해봤으나 딱히 성과가 없었다.
그래서 더 위로 이동해봤더니 CALL 다음에 바로 RETN이 있었다. 아!!!진짜수상해
해당 부분에 BP를 설정하고 실행해 보면 오류 창이 뜨고 BP에서 멈추지 않는다.
이 CALL 함수를 NOP 처리해야 될 것 같다.
004A5461을 보면 CALL에서 ntdll로 이동하는 것을 볼 수 있다.
이걸 NOP 처리하면 ntdll로 이동하지 않는다.
NOP 처리한 화면이다.
NOP 처리 후, 패치 파일로 저장하여 실행하면 004A55F9에 있는 문자열이 적힌 에러 창이 뜬다.
004A585F는 등록 성공 부분을 뛰어 넘고, 등록 실패 관련 문자열을 띄어주는 곳이므로
이걸 막기 위해서 004A567E를 NOP 처리했다.
NOP 처리한 화면이다.
이후 다른 에러 창이 뜨지 않도록 004A55ED와 004A5611까지 JMP 명령어로 바꿔서
등록 실패 관련 창을 뛰어넘도록 했다.
패치 파일을 저장해서 실행했더니 등록에 성공할 수 있었다.
참고
https://blog.naver.com/security-705/223069394581
'Reversing' 카테고리의 다른 글
[Lena] Lena Tutorial 14 (0) | 2023.05.04 |
---|---|
[Lena] Lena Tutorial 13 (0) | 2023.05.03 |
[Lena] Lena Tutorial 11 (0) | 2023.04.27 |
[Lena] Lena Tutorial 10 (0) | 2023.04.27 |
[Lena] Lena Tutorial 09 (0) | 2023.04.05 |