Security&Hacking/리버싱

Lena Reversing - tutorial 08

Dior2ky 2020. 3. 4. 17:33
반응형

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 라는 문구가 사라지고 이전에 등록시킨 계정이 올바르게 등록 된 것을 볼 수 있다. 

끝.

반응형