본문 바로가기

Reversing/Study

PEview Patch


평소에 많은 사람들이 쓰는 PE뷰어인 

이 PEView에는 한 가지 단점이 있다. 바로 PE구조를 보면서 헥스 에디터와 같은 것들로 값 변경이 불가능하다는 부분이다. PEView가 멍청하게 파일을 읽기 모드로 열어버려서 쓰기가 안되는 것이다. 평소에 이런 불편함을 가지고 계속 사용하다가 분명히 이렇게 되는 이유는 프로그램을 읽어 들일 때 읽기 모드라서 이런 것이라고 생각하고 직접 올리디버거로 열어서 바이너리를 패치해 주기로 하였다. 

먼저 이 PEView는 아무런 패킹이 되어 있지가 않다. 안티디버깅도 없고 해서 분석하기가 굉장히 수월 했었다. 일단 올리디버거로 열어서 CreateFile함수를 호출하는 부분에 브레이크포인트를 걸어 주었다. 

여기서 바로 볼 수 있는 것은 바로 CreateFile함수의 ShareMode인자가 FILE_SHARE_READ라는 것이다. 다른 프로그램들은 로딩한 프로그램에 접근할 때 읽기밖에 하지 못한다. 이 부분 때문에 쓰기가 가능하지 않다는 뜻이다. 그래서 방법은 간단하다. push하는 인자를 3으로 바꿔주어 FILE_SHARE_READ | FILE_SHARE_WRITE로 바꿔주면 된다.

이렇게 패치하면 된다. 이 바이너리를 다시 저장하고 파일을 로드한 뒤에 헥스에디터로 수정해 보면 

아주 잘 된다! 정말 간단한 패치였는데 이 덕분에 앞으로 좀 더 수월하게 리버싱을 진행할 수 있을 것 같다.

'Reversing > Study' 카테고리의 다른 글

Debug Register  (0) 2015.10.19
Control Register  (0) 2015.10.18