본문 바로가기

Programming60

API Hooking - [3] DLL Injection + Trampoline Code Hooking Trampoline Code Hooking은 후킹할 함수의 첫 부분에 jmp 코드로 후킹 함수로 실행 흐름이 이동하도록 한다. 이 때 jmp 코드로 덮어진 부분은 저장해 두었다가 후킹 함수에서 원래 함수를 정상적으로 처리할 수 있도록 해준다. 아래에 실습할 MessageBox를 조작하는 방법은 아래와 같다. 1. 원본코드의 첫 5바이트에 hook 코드로 점프하도록 패치2. hook코드로 넘어오면 원본코드 언훅 후 파라미터를 조작해서 호출3. 다시 원본코드에 후킹 설치 #include "stdio.h" #include "wchar.h" #include "windows.h" #define DEF_USER32"User32.dll" #define DEF_MBOX"MessageBoxA" typedef BOOL (.. 2013. 12. 7.
API Hooking - [2] DLL Injection + IAT 이번에는 IAT Hooking으로 실행흐름에서 제어권을 가져오고 DLL Injection으로 원하는 동작을 하는 코드를 실행시키는 방법으로 실습해보겠다. 대상 프로그램은 "API Hooking - [1] Debugger Attach + 0xCC" 에서 실습한 MessageBox를 띄워주는 프로그램을 가지고 동일하게 "Hello World" 문자열을 "Hello Hooking" 문자열로 띄워지도록 후킹을 해보겠다. IAT 후킹 코드는 아래의 IAT에 접근하는 방법을 보면 이해하기 쉬울 것이다. IMAGE_DIRECTORY_ENTRY_IMPORT |-------------------| | VirtualAddress | |-------------------| | Size | |------------------.. 2013. 11. 24.
API Hooking - [1] Debugger Attach + 0xCC API Hooking 실습 첫 번째로 Debugger Attach해서 0xCC로 제어권을 받아서 후킹하는 방법을 해보자. 후킹할 프로그램은 아래와 같이 자신의 pid를 출력하고 아무키나 누르면 MessageBox를 띄워주는 프로그램이다. - MessageBox APi 원형 int WINAPI MessageBox( __in_opt HWND hWnd, __in_opt LPCTSTR lpText, __in_opt LPCTSTR lpCaption, __in UINT uType );MessageBox의 파라미터는 위와 같은데 후킹을 통해 lpText에 있는 "Hello World ~~" 부분을 "Hello Hooking !"으로 바꿔보도록 하겠다. [ 실습 소스 ] #include "windows.h" #incl.. 2013. 11. 23.
python HTML, XML 파싱 - BeautifulSoup Beautiful Soup is a Python library for pulling data out of HTML and XML files. It works with your favorite parser to provide idiomatic ways of navigating, searching, and modifying the parse tree. It commonly saves programmers hours or days of work. download : http://www.crummy.com/software/BeautifulSoup/#Download from bs4 import BeautifulSoup soup = BeautifulSoup(data) ### xml or html data 위와 같이.. 2013. 11. 21.