patchme
-
[리버싱 핵심원리 study] 20장 인라인 패치 실습Reverse Engineering 2021. 1. 1. 22:23
1. 인라인 패치(Inline Patch) 인라인 패치는 코드를 직접 수정하기 어려울 때 간단히 코드 케이브(Code Cave)라고 하는 패치 코드를 삽입한 후 실행해 프로그램을 패치시키는 방법이다. 주로 대상 프로그램이 실행 압축되어 있어서 직접 수정하기 어려운 상황에 사용되는 기법이다. 위와 같은 그림에서 만약에 패치를 원하는 영역이 암호화된 영역에 있다면, 복호화 과정에서 그 값이 변질되므로 그냥 패치시켜서는 안 된다. 이와 같은 문제를 해결하기 위해서 복호화 과정 이후 Code Cave로 JMP 하여 원하는 패치를 진행한 후 OEP로 JMP 하는 방식을 이용할 수 있다. 2. 실습 - Patchme 리버싱 핵심원리 책에서는 ap0x 리버서가 만든 patchme 예제를 이용하여 실습을 진행한다. 먼..