리버싱 엔지니어링/lena's reversing
lena's reversing for newbies 03
흰싸라기
2022. 3. 17. 00:20
1. 프로그램 실행(RegisterMe.exe)
RegisterMe.exe 프로그램을 실행해보면,
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. 최종 실행
위와 같이 수정 후 실행하면, 아래의 화면만 실행됨을 확인할 수 있음