Security&Hacking/리버싱

Lena Reversing - tutorial 16_1

Dior2ky 2020. 3. 9. 19:48
반응형

Lena Reversing tutorial 16_1

이번 단계는 두개의 프로그램이 있다 하나씩 나누어 진행하도록 한다. 

먼저 진행할 프로그램은 Urlegal 이라는 프로그램이다. 

실행하보면 다음과 같이 나온다. 

프로그램 자체는 특별한게 보이지 않는다. 

종료시키면 다음과 같은 nag 창이 뜬다. 

그냥 종료하기 위해 X버튼을 누르면 Register와 관련된 글이 뜨고 종료되지 않는다. 

I Will Register Soon 버튼을 눌러야지만 종료가 된다. 

프로그램 상단의 File -> Register 버튼을 누르면 다음과 같이 나온다. 

아무값이나 넣고 Validate My Codes 버튼을 누르면 다음과 같이 오류창이 뜬다. 

종료시 나오는 창을 없애고 File -> Register 버튼을 비활성화 시키도록 한다. 

Ollydbg로 열어준다. 

이전 단계와 비슷하게 F9를 눌러 진행시키고 종료를 눌러 nag 창을 띄운 후 F12를 눌러 일시정지 시킨다.

상단의 K 버튼을 눌러 Call stack을 살펴본다. 

nag 창을 띄우는 Call로 보이는 줄이 있다. 해당 위치로 가서 breakpoint를 걸고 실행해본다. 

역시 해당 Call이 nag 창을 띄우는 Call임을 확인할 수 있다. 

그럼 그 위로 올라가 분기문을 찾아준다. 

분기문이 존재하고 분기문은 Call 후 EAX 값을 통해 분기하고 있다. 

이 Call은 등록이 되었는지 확인하는 Call로 보인다. 

EAX의 값은 0이 아닐경우 분기하기 때문에 0이 되지 않아야 함을 알아야 한다.

해당 Call에 breakpoint를 걸어 그 안으로 들어가준다. 

마지막에 MOV EAX, DWORD PTR DS:[EAX+2C]를 통해 EAX를 변경시켜 0을 만들고 있다.

해당 코드를 NOP으로 변경시켜준다. 

이제 copy to executable을 통해 패치한 것을 저장해준다.

실행해보면 올바로 패치 된 것을 확인할 수 있다.

Register 된 것으로 판단하기 때문에 Register 버튼이 비활성화 되어있다.

종료를 해보면 nag창이 뜨지 않는 것을 확인할 수 있다. 

끝.

반응형

'Security&Hacking > 리버싱' 카테고리의 다른 글

Lena Revesing - tutorial 17  (0) 2020.03.09
Lena Reversing - tutorial 16_2  (0) 2020.03.09
Lena Reversing - tutorial 15  (0) 2020.03.09
Lena Reversing - tutorial 14  (0) 2020.03.07
Lena Reversing - tutorial 13  (0) 2020.03.05