2023. 6. 16. 13:22

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2023. 6. 15. 15:52

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2023. 6. 15. 15:27

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

posted by 블르샤이닝 2023. 6. 15. 15:07
728x90

수업 전 자료 검색해보니 잘 설명된 자료 있어 참고용으로 퍼옴

 

아래 미친해커님 블로그 보면 트램플린 후킹에 대해 설명이 너무 잘되있다. 진짜 보면 차근차근 원리와 소스 코드 등으로 거의 교과서 수준으로 작성해주셨네....읽어보면 도움 많이 될거다

 

참고 자료  : https://blog.crazyhacker.kr/m/73

 

[Reversing] Code Injection + Trampoline(Inline) Hooking x86

트램펄린(인라인) 후킹이란? 트램펄린 후킹이란 이름처럼 점프(뛴다)라는 이름에 걸맞은 후킹 방법이다. 후킹 할 API 함수의 상위 5 Byte를 jmp 0x00000000 형태로 패치하여 해당 함수가 호출되었을 때

blog.crazyhacker.kr

 

 

트램펄린(인라인) 후킹이란?

트램펄린 후킹이란 이름처럼 점프(뛴다)라는 이름에 걸맞은 후킹 방법이다.

후킹 할 API 함수의 상위 5 Byte를 jmp 0x00000000 형태로 패치하여 해당 함수가 호출되었을 때 EIP(PC) 레지스터가 다른 함수의 주소로 변경되어 해당 함수로 점프하여 제어권을 가로채는 기술이다.

 

필자가 트램펄린 후킹을 공부했을 때(2019년도)에는 트램펄린 후킹 기술에 대해 검색을 하여도 x86 기반의 설명밖에 찾지 못하였다. 또 x86과 x64 간의 트램폴린 후킹 기술의 구현 방법이 미세하게 다르다. 하지만 x64 시스템에서의 트램펄린 후킹 기술은 많이 알려지지 않은 것으로 보이며 찾을 수도 없었다. 그렇기에 필자는 독자적으로 방법을 구현하여(아닐 수도 있다) 사용하고 있었다. 그렇기 때문에 트램펄린 후킹에 대한 포스팅은 x86과 x64 2개로 나누기로 했다.

 

위에서 설명한 방법은 x86과 x64 시스템에서 모두 사용가능한 방법이며 x64 시스템에서는 약간의 제약이 걸린다.

코드 인젝션과 트램펄린 후킹의 조합

코드 인젝션은 Fileless 형식의 임의의 코드 주입 공격이다. 그리고 트램펄린 후킹은 프로세스의 타겟 함수의 상위 5 바이트를 조작하여 특정 API의 제어권을 가로채는 기법이다.

이 두개의 기법을 적절히 활용하면 Fileless 형식의 트램펄린 후킹을 할수 있다.

예제 코드

 

GitHub - jungjin0003/Code-Injection: Code Injection + Hooking sample

Code Injection + Hooking sample. Contribute to jungjin0003/Code-Injection development by creating an account on GitHub.

github.com

Code Injector

소스코드는 아래 더보기에 있다.

main.exe
0.06MB

타겟 프로그램

소스코드는 아래 더보기에 있다.

target.exe
0.05MB

결과 확인

 

 
728x90
2023. 6. 15. 14:13

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2023. 6. 15. 10:39

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2023. 6. 14. 16:00

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.