Information Security ˗ˋˏ ♡ ˎˊ˗

Security/Reversing

[Reversing 실습] 문자열 패치 두 가지 방법

토오쓰 2020. 4. 1. 02:48

https://t-okk.tistory.com/32

 

Reversing 실습 - 기본 디버깅

1. 기본 디버깅: 프로그램 시작 주소 및 main 함수 확인 - Hello World!라는 프로그램 만들기 Ollydbg(v1.1)로 열어서 확인 Entry Point(윈도우 실행파일의 코드 시작점): 0040126F - Ollydbg에서 F7, F8, F9를..

t-okk.tistory.com

여기서 만든 HelloWorld 프로그램을 가지고 문자열 패치를 진행

 

 

1. 문자열 패치 첫 번째 방법

- 문자열 버퍼를 직접 수정

- Main 함수에서 문자열이 저장되어 있는 Text 부분의 주소를 찾는다.

- Dump Window 부분에서 Ctrl+g를 통해 그 위치로 이동한다.

<code window>

Text 주소: 0040210C

 

<dump window>

 

넉넉하게 dump 영역을 잡은 후 바꿀 문자를 써준다. (ctrl+e)

문자열 수정

 

 

다시 실행

새로운 파일로 저장하려면 [Edit] -> [Copy to Excutable] -> [save file]

 

 

2. 문자열 패치 두 번째 방법

- NULL Padding 영역에 문자열을 입력하여 바꿔준다.

 

Main 함수

Main함수에서 수정할 문자열이 있는 dump 영역으로 이동해준다.

 

<dump window>

원래 문자열이 있던 곳 근처 Null padding 영역에 바꿔줄 문자열을 입력한다.

추가해준 문자열의 시작 주소: 00402198 

 

<code window>

title에 해당하는 주소를 위에 추가해준 문자열의 시작 주소로 변경해준다. (space 키)

 

결과

새로운 파일로 저장하려면 [Edit] -> [Copy to Excutable] -> [save file]