본문 바로가기

Unpacking/Unpacking Tech

Hooking 과 난독화(Obfuscation) 의 관계

 Hooking 도 엄밀히 보면 Stolen Byte 와 흡사하다. 예를 들면 Target 이라는 함수를 Hooking 할 때 첫 5바이트를 Hooking 작업을 위한 함수를 Call 하고 5바이트 이후의 코드로 흐름을 바꿀 것이다.


 5바이트를 내가 이미 뽀려간다는 점에서 Stolen Byte 와 흡사하다. 또한 API Redirect 와 유사한 행위를 한다. 생각해보자. API Redirect 란 원래 API 주소를 자신의 테이블로 박아둔다음 한 번 내지 수십 번의 Call 을 호출해서 실제 API 주소가 적힌 테이블로 점프하는 것이다. Hooking 도 엄밀히 말하면 자신이 Custom 한 함수 (Hooking 해서 작업을 수행하는 함수) 를 타고 원래의 함수로 점프하는 것이다. 


 이처럼 Unpacking 을 연구하더라도 그냥 Unpack 공식에만 초점을 두지 말고 동작 방식을 연구해서 다른 Reversing 기법과 유사점 또는 적용 방법까지 생각하는 것이 내가 지향하는 공부이다. 또한 Unpack 따로, 암호학 따로, Hooking 따로 놀아나는 것을 지양한다. 적어도 나 자신만큼은 말이다.  이러한 통찰력과 관점을 가지기 위해서는 기술에 적용된 근본을 알아야하는데, 결국 학문 연구에서(라고 쓰고 나는 항문을 파고 있지만) 나온다고 믿는다. 그래서 블로그 이름이 Academic Technique Research 인 셈이다.