레나 튜토리얼 04

오늘은 레나 튜토리얼 04번을 풀어보고자 합니다.
레나 튜토리얼 04번의 핵심은 pixtopianbook 프로그램을 실행했을 시 리버싱 프로그램을 통해 UNREGISTERED VERSION의 문구를 REGISTERED로 바꾸는 것입니다.

pixtopianbook.exe를 실행했을 때, 바로 보이는 창의 문구가 UNREGISTERED VERSION으로 뜹니다.


또, 상단 바의 Help - About PixtopianBook을 클릭했을 때 나오는 창의 Unregistered version v1.07이라고 보이는 단어로 registered로 수정해주도록 하겠습니다.
수정

Ollydbg 프로그램을 실행시킨 후 PixtopianBook파일을 열어 분석합니다.
본래 처음 뜨는 창은 CPU지만, Memory map에서 고치고자 하는 문구를 검색하기 위해 M을 클릭하도록 합니다.
여기서 M은 Memory를 의미하며, 디버깅 된 프로그램이 할당 한 모든 메모리 블록을 표시합니다. 분석하고자 하는 행을 두 번 클릭할 경우 , 아래와 같이 Memory dump가 뜹니다.

[Ctrl+B]를 누르면 아스키코드, 유니코드, 헥스 코드를 통해 검색(search)할 수 있는 창이 뜹니다.
유니코드 텍스트란에 찾고자하는 문구인 'unregistered'를 넣고 OK를 눌러줍니다.


바로 빠르게 돌아가는 검색란들 중 unregistered 문구가 검색이 완료되었다면 다음과 같은 덤프(Dump) 창이 뜰 거고, 검색된 유니코드 unregistered도 보입니다.(아스키코드 U.n.r.e.g.i.s.t.e.r.e.d.)
목적은 'unregistered'->'registered'로 문구를 변경하는 것이므로 해당 부분만 드래그해줍니다.
드래그한 상태에서 space bar를 누르면 수정할 수 있는 창이 뜰 겁니다.


1.유니코드의 Unregistered -> registered로 바꿔줍니다.(혹은 헥스 코드 숫자들을 00으로 바꿔주시는 것도 좋습니다.)
2.Keep size 클릭 해줍니다.
3.OK 버튼을 누르시면 완료됩니다.
수정을 완료하시고 dump창도 닫아주셔도 unregistered가 포함된 문구는 여러 곳에 저장되어 있을 겁니다. 그렇기에 unregistered문구가 포함된 메모리 주소를 찾아주셔야 하는데, 그러기 위해 [Ctrl+l(L)]을 눌러줍니다.
[Ctrl + l(L)]을 눌러주실 경우 unregistered 문구가 들어간 다른 아스키코드의 주소를 차례대로 찾아가게 됩니다.
수정하고 -> [Ctrl + l(L)] 누르고 -> 수정하고 -> [Ctrl + l(L)]누르고 이런 식으로 작업해주시면 됩니다.

이 부분도 'this is an unregistered version'으로 문구가 저장되어 있습니다. 앞서 설명했던 것처럼 수정하고 싶은 부분만 드래그한 후 space bar를 눌러 수정해줍시다.

1. 이번에는 헥스 코드를 00으로 바꿔 'unregistered'->'registered'로 변경해줍시다.
2.Keep size 버튼 클릭

저장
이제 수정한 해당 부분을 저장해야 하는데,
드래그한 상태에서 우클릭해줍니다.


우클릭-> Copy to executable file-> Save file

저는 PixtopianBook-숫자로 저장하도록 하겠습니다.
------------------------------------------------
더 공부할 것
1. Memory Map -> dump수정 후 -> Keep size의 이유
2. Copy to executable file-> Save file는 한 번에 저장이 되는가?
3. Memory Map과 Memory Dump의 기능
'Hacking&Security > Reversing' 카테고리의 다른 글
| [Reversing] x64dbg 변수 추정, 간단한 코드분석 (0) | 2021.09.08 |
|---|---|
| [Reversing] 정적 분석,동적 분석, Hex Code,Assembly Code, 패치와 크랙 (0) | 2021.08.31 |
| [Reversing]Ollydbg UDD Directory Absent, UDD 경로 오류 (0) | 2021.08.30 |