Security&Hacking/리버싱

Lena Reversing - tutorial 10_1

Dior2ky 2020. 3. 4. 20:08
반응형

Lena Reversing tutorial 10_1

이번 튜토리얼은 tutuorial09 와 마찬가지로 Visual basic으로 만들어졌다.

이를 디컴파일 하는 디컴파일러를 활용해보고 

추가로 기본적인 안티 디버깅 기법이 들어가 있기 때문에 이를 학습하는 튜토리얼이다. 

tutorial10은 총 세개의 샘플 파일이 있다. 이를 세번에 나누어 진행하도록 한다.

 

tutorial10의 첫번째는 Tut.ReverseMe1 파일만을 가지고 진행한다.

이번 튜토리얼은 vb-decompiler를 사용한다. 이름에 나와있듯 디컴파일러이다. 

www.vb-decompiler.org/download.htm 에 가면 다운로드 받을 수 있다. 

다운로드를 받아주고 프로그램을 실행시켜 Tut.ReverseMe1 파일을 열어주자.

 

오른쪽을 보면 다음과 같이 나온다.

Project 부분의 Form1을 눌러보면 프로그램의 GUI가 나온다. 

Register me! 버튼을 눌러보면 (Name)이 Command1, Nag? 는 Command2라고 나온다. 

우측에 보면 Command1_Click, Command2_Click 이 있고 그 옆에는 주소 값이 있다. 

 

이제 Ollydbg로 열어준다.

찾았던 주소 값 두군데로 이동해서 breakpoint를 걸어준다.

프로그램을 실행시키면 프로그램이 나오기도 전에 break가 걸린다.

아무래도 맨 처음 나오는 Nag 창은 프로그램에서 Nag? 버튼을 눌렀을 때와 같은 루틴을 갖는 것으로 보인다.

그럼 먼저 Nag를 없애준다.

break에 걸린 부분 402C17 주소의 내용을 바로 리턴하도록 RETN으로 바꾸어준다. 

breakpoint를 풀어준뒤 Nag? 버튼을 눌러도 Nag 창이 뜨지 않는 것을 확인 할 수 있다.

 

다음은 Register 의 시리얼 넘버를 찾는다.

Register me! 버튼을 누르면 breakpoint에 걸린다.

걸리지 않는다면 위에서 찾은 주소값으로 이동해서 breakpoint를 걸지 않은 것이다. 걸어준다.

break에 걸린 부분부터 F8을 눌러가며 진행한다. 

진행하다 보면 UNICODE로 I'mlena151 이라는 문자열이 보이고 그 아래는 vbaStrCmp함수를 호출하는 것이 보인다. 

I'mlena151이 시리얼 넘버로 보인다. 이를 넣고 Register me! 버튼을 눌러준다.

성공적으로 register 되었다.

끝.

반응형