ABOUT ME

Today
Yesterday
Total
  • 2 Hello World! 리버싱(2) - 문자열 패치
    리버싱 엔지니어링/리버싱 핵심 원리 2022. 2. 6. 22:49

    2.5 “Hello World!” 문자열 패치

    : “Hello World!” 문자열을 다른 문자열로 패치

    문자열을 패치하는 두가지 방법

    1) 문자열 버퍼를 직접 수정

    1. main 함수 시작 주소를 BP 설정 후 실행
    2. 덤프 창에서 Goto 명령을 통해 "Hello World!" 문자열 주소로 이동

     

     

      3. “Hello World”를 선택하여 Edit 다이얼로그 띄우기 [Ctrl+E]

     

     

      4. ‘유니코드’ 항목에 원하는 문자열 입력

     

     

     

      5. [F9]를 통해 실행

    • 단점 : 기존 문자열 버퍼 크기 이상의 문자를 입력하기에는 어려움이 있음.
    • 디버거 종료 시 사라지기 때문에 변경된 내용은 저장 필요.

     

    2) 다른 메모리 영역에 새로운 문자열 생성하여 전달

    • 더 긴 문자열로 패치해야할경우

      1. 1번 방법과 동일하게 문자열이 있는 주소로 이동.

      2. 해당 영역 밑으로 이동하며 NULL padding 영역 찾기 :

    • NULL padding 영역은 프로그램에서 사용하지않음

      3. 적당한 위치를 정해 패치 문자열 작성

      4. MessageBoxW() 함수 파라미터 수정[space] : 수정한 문자열 주소 전달

      5. 실행

    '리버싱 엔지니어링 > 리버싱 핵심 원리' 카테고리의 다른 글

    7 스택 프레임  (0) 2022.03.13
    5 스택  (0) 2022.02.06
    4 IA-32 Register 기본 설명  (0) 2022.02.06
    3 리틀 엔디언 표기법  (0) 2022.02.06
    2 Hello World! 리버싱(1)  (0) 2022.02.05

    댓글

Designed by Tistory.