Security/리버싱

[바이너리 진단] 바이너리 코드패치 하는 방법.

YPrefer 2016. 11. 28. 13:35

코드패치 하는 방법은 여러가지가 있는데, IDA를 통해서 하는 방법을 알아보자.

IDA Option을 아래와 같이 설정해 준다.

중요한 부분이 Number of opcode bytes 인데 이것을 6byte로 해주면 OPCODE에 해당하는 HEX값을 확인할 수 있다.

 

 

위와 같이 옵션값을 설정해주면 아래처럼 HEX값을 확인 할수있는데,

오른쪽 버튼의 Syncronized With를 HEXVIEW와 연동해 주고, HexVIEW를 들어가면 자동으로 해당 HEX값의 위치를 찾아준다.

여기서 F2를 누르면 HEX값을 수정할 수 있고, 다시 F2는 누르면 수정한 값이 적용된다.

 

적용된 화면이다.

0F 85 (JNZ) 를 0F 84(JZ)로 코드패치 하여 바뀐 것을 볼 수 있다.

적용된 값은 Ctrl + W를 눌러 다른이름으로 저장을 하면, 변경이 적용된 바이너리가 새로 저장된다.

 

다른 방법으로는 OP CODE를 HEX값을 알아내어 WINHEX나 010EDITOR와 같은 hexviewer를 통해 열어 직접 수정해주는 방법도 있다.