리버싱 엔지니어링/lena's reversing

lena's reversing for newbies 03

흰싸라기 2022. 3. 17. 00:20

1. 프로그램 실행(RegisterMe.exe)

RegisterMe.exe 프로그램을 실행해보면,

 

1
2
3

3가지 창이 뜬다. 여기서 2번째 창을 제외한 메시지박스를 없애야한다.

 

2. 코드 살펴보기

올리디버거를 통해 실행해보니 처음부터 실행메시지박스를 확인할 수 있었음 

JMP를 통해 메시지박스를 넘어가는 방법도 있지만, Entry pointer 변경을 통해 시작을 메시지박스 호출 이후부터 하는 방법도 존재함

 

3. PE 헤더를 이용한 시작 주소 바꾸기

3.1 현재 시작 주소 찾기

① 상단의 M을 눌러 메모리맵으로 들어간다

② PE 헤더를 찾아 클릭하여 들어간다

③ AddressofEntryPoint를 찾는다. 

처음 메시지박스 이후 주소를 시작주소로 변경해야하기 때문에  AddressofEntryPoint를 1024로 변경해준다.

Imagebase 값 고려하기 때문에 401024가 아닌 1024로 변경

 

3.2 시작 주소 변경

 

  • follow in Dump(Ctrl+G)를 통해 4000E8로 이동

  • 1024로 값 변경[Ctrl+E]

: 순서가 반대인 이유는 리틀 엔디언 표기법을 사용하기 때문

 

저장 후 실행 시,

다음과 같이 시작주소가 변경됨.

 

4. 두번째 메시지박스 삭제 

두번째 박스는 특별한 조건문이 없기 때문에, NOP로 변경하여 메시지박스 출력을 막음

 

5. 최종 실행

위와 같이 수정 후 실행하면, 아래의 화면만 실행됨을 확인할 수 있음