Lena Reversing tutorial 08
이번 튜토리얼도 이전 튜토리얼들과 마찬가지로 프로그램을 크랙하는 단계이다.
레나에서는 W32Dasm을 통해 디버깅을 하도록 말해주고 있지만 앞으로 쓸 일이 없을 것 같은 프로그램이라 그냥 Ollydbg로 진행한다.
프로그램을 실행시키면 다음과 같이 나온다.
하단엔 UNREGISTERED 라는 문구가 보인다.
실행된 프로그램의 모습이다. 이전과 같이 ? 버튼을 눌러 register를 눌러준다.
Register 하는 입력창이 나오게 된다.
아무 값이나 집어 넣고 OK 버튼은 누른다.
다음과 같이 오류 창이 뜨는 것을 볼 수 있다.
Invalid Key! 라는 문자열로 검색을 해본다.
이전과 같이 Search for -> All referenced text strings를 눌러준다.
나온 목록들에서 오른쪽 마우스를 누르고 Search for text를 눌러 문자열을 입력하고 검색한다.
더블클릭하여 해당 내용으로 이동한다.
조금 위로 올라가면 register가 성공했다는 문자열도 보인다.
그 위로 올리다 보면 Invalid Key!를 출력하는 MessageBoxA로 점프하는 분기문이 존재한다. 그 위에는 CALL도 같이 보인다.
EAX를 보고 판단을 하고 있는데 EAX는 return 값을 받는 레지스터이기 때문에 CALL 부분을 들어가 보도록 한다.
breakpoint를 걸고 걸리면 F7을 눌러 들어가준다.
F8을 눌러 쭉 진행하다 보면 RETN으로 돌아가기 전에 XOR을 통해 EAX를 초기화 하는 부분이 보인다.
마지막에 EAX를 초기화 시켜버리기 때문에 이 부분을 없애기 위해 NOP으로 바꾸어준다.
바꾸고 난 뒤 copy to executable을 통해 프로그램으로 저장해준다.
새롭게 저장한 프로그램을 실행시켜준다.
UNREGISTERED 가 보인다.
다시 register로 들어가 아무 값이나 넣어 regiseter 시켜준다.
register 된 것을 확인할 수 있다.
다시 프로그램을 껐다가 키면 UNREGISETERD 라는 문구가 사라지고 이전에 등록시킨 계정이 올바르게 등록 된 것을 볼 수 있다.
끝.
'Security&Hacking > 리버싱' 카테고리의 다른 글
Lena Reversing - tutorial 10_1 (0) | 2020.03.04 |
---|---|
Lena Reversing - tutorial 09 (0) | 2020.03.04 |
Lena Reversing - tutorial 07 (0) | 2020.03.04 |
Lena Reversing - tutorial 06 (0) | 2020.03.02 |
Lena Reversing - tutorial 05 (0) | 2020.03.02 |