본문 바로가기

Reversing/레나 튜토리얼

레나튜토리얼 16번 GIF Movie Gear Crack 및 Ghidra 사용법

반응형

레나튜토리얼 16번 GIF Movie Gear Crack

 

 

레나튜토리얼 16번 1

문제 파일을 실행하면 다음과 같은 화면이 나온다. 먼저 help에서 About GIF Movie Gear를 클릭해보자.

 

레나튜토리얼 16번 2

현재 30일동안 사용할 수 있다고 나온다. 이 프로그램의 사용제한을 크랙 하는 문제이다. 자 이제 시작해보자. reversing에 사용된 프로그램은 Ghidra이다.

 

 

레나튜토리얼 16번 3

먼저 Window - Define String을 클릭해서 " http: " 를 검색해서 함수가 어디 있는지를 확인했다. 

 

 

레나튜토리얼 16번 4

 

Online:과 http://www. 가 나오는 것을 보니 그림 2에서 나오는 장소가 맞다.

 

 

레나튜토리얼 16번 5

조금 위로 올리면 다이어로그가 나온다. 이 다이어로그는 Resorce 영역에 있었다. 

 

 

레나튜토리얼 16번 6

리소스 해커 프로그램으로 열어보니 다이어로그 100번에서 기드라를 통해 확인했던 문자가 그대로 나오고 있는 것을 확인했다. 이제 다이어로그를 확인했으니 참조하는 영역인 XREF[2]에 첫 번째 영역으로 들어가 보자.

 

 

 

 

레나튜토리얼 16번 7

들어가 보니 다이얼 박스를 00406728에서 호출하고 그 위에서는 0x64를 푸시하는데 0x64는 10진수로 100이다. 리소스 해커에서 봤던 다이어로그 번호와 일치하는 것을 알 수 있다.

 

다이어로그를 호출하는 것에서 우리는 위에 부분에서 체험판 버전을 확인하는 if문이 있을 것으로 예상할 수 있다.

따라서 Window - Decompile을 클릭해서 코드를 확인해보자.

 

 

 

레나튜토리얼 16번 8

Decompile을 켜서 봤을 때 다이어로그 박스를 호출하기 전 if문에서 iVar12이 1이 아닌지를 검사한다. 이때 iVar12는 FUN_00431650(0,0)의 결괏값이므로 함수를 검사해봐야 한다.

 

 

레나튜토리얼 16번 9

함수로 들어가 보니 return값이 uVar6이었다. uVar6이 변하는 부분은 32번 줄에서 ivar3 != 0일때 바뀐다. 레나 문제에서는 if문의 값을 바꾸는 것보다 강제적으로 return 값을 1로 바꾸는 것을 원한다. 따라서 0043174e 주소의 값을 변경을 위해 dbg로 바꿔서 실행하겠다.

 

 

 

레나튜토리얼 16번 10

Ctrl + G를 눌러서 0043174e로 간다. 이후 어셈블을 통해 mov al, 0x01로 어셈블 해준다.

 

 

레나튜토리얼 16번 11

이후 패치를 클릭하고, 파일 패치를 해서 새롭게 저장한다. 

 

 

레나튜토리얼 16번 크랙

패치한 파일을 실행해서 똑같이 help - About GIF Movie Gear를 클릭하면 체험 기간이 없어진 것을 확인할 수 있다.

 

 

 

 

 

이번 문제는 기드라 사용법을 익히기 위해 푼 문제이기 때문에 캡처를 간단하게 했다.


참고문헌

https://www.youtube.com/watch?v=WBdnvNjiG7s

 

728x90

'Reversing > 레나 튜토리얼' 카테고리의 다른 글

레나 튜토리얼 1번 문제풀이 및 해설  (0) 2022.07.29