-
-
[求助]Universal Hooker 1.2
-
发表于: 2007-7-14 00:55 2330
-
What is uhooker?
The Universal Hooker is a tool to intercept execution of programs. It enables the user to intercept calls to API calls inside DLLs, and also arbitrary addresses within the executable file in memory.
Why is it 'Universal'? There are different ways of hooking functions in a program, for example, it can be done by setting software breakpoints (int 3h), hardware breakpoints (cpu regs), or overwriting the prologue of a function to jump to a 'stub', etc. All the methods mentioned required above, specially the latter, require the programmer of the code creating the hook to have certain knowledge of the function it is intercepting. If the code is written in a programming language like C/C++, the code will normally need to be recompiled for every function one wants to intercept, etc.
The Universal Hooker tries to create very simple abstractions that allow a user of the tool to write hooks for different API and non-API functions using an interpreted language (python), without the need to compile anything, and with the possibility of changing the code that gets executed whent the hooked function is called in run-time.
The Universal Hooker builds on the idea that the function handling the hook is the one with the knowledge about the parameters type of the function it is handling. The Universal Hooker only knows the number of parameters of the function, and obtains them from the stack (all DWORDS). The hook handler is the one that will interpret those DWORDS as the types received by the function.
The hook handlers are written in python, what eliminates the need for recompiling the handlers when a modification is required. And also, the hook handlers (executed by the server) are reloaded from disk every time a hook handler is called, this means that one can change the behavior of the hook handler without the need to recompile the code, or having to restart the application being analyzed.
Win32 binaries
* Latest stable release (1.2), updated on September 06, 2006. See What's new. gzip'd tarball , zip file
* 1.1, updated on June 30, 2006. gzip'd tarball , zip file
* 1.0, updated on June 22, 2006. gzip'd tarball , zip file
Setup
Quick start:Download the .zip file and extract to the ollydbg directory. The uhooker.dll must be in the ollydbg directory for it to be loaded as a plugin. and that's it!. Make sure that .py files in windows are associated with the python interpreter. For example, if you have a .py file and type 'myfile.py' and press enter on a cmd.exe window and it doesn't run, the association is not configured correctly.
Requirements
* Ollydbg 1.10 (available from http://www.ollydbg.de)
* A Python interpreter. Versions 2.3 and higher.
link:
hxxp
hxxp://oss.coresecurity.com/uhooker/release/1.2/uhooker_v1.2.zip
The Universal Hooker is a tool to intercept execution of programs. It enables the user to intercept calls to API calls inside DLLs, and also arbitrary addresses within the executable file in memory.
Why is it 'Universal'? There are different ways of hooking functions in a program, for example, it can be done by setting software breakpoints (int 3h), hardware breakpoints (cpu regs), or overwriting the prologue of a function to jump to a 'stub', etc. All the methods mentioned required above, specially the latter, require the programmer of the code creating the hook to have certain knowledge of the function it is intercepting. If the code is written in a programming language like C/C++, the code will normally need to be recompiled for every function one wants to intercept, etc.
The Universal Hooker tries to create very simple abstractions that allow a user of the tool to write hooks for different API and non-API functions using an interpreted language (python), without the need to compile anything, and with the possibility of changing the code that gets executed whent the hooked function is called in run-time.
The Universal Hooker builds on the idea that the function handling the hook is the one with the knowledge about the parameters type of the function it is handling. The Universal Hooker only knows the number of parameters of the function, and obtains them from the stack (all DWORDS). The hook handler is the one that will interpret those DWORDS as the types received by the function.
The hook handlers are written in python, what eliminates the need for recompiling the handlers when a modification is required. And also, the hook handlers (executed by the server) are reloaded from disk every time a hook handler is called, this means that one can change the behavior of the hook handler without the need to recompile the code, or having to restart the application being analyzed.
Win32 binaries
* Latest stable release (1.2), updated on September 06, 2006. See What's new. gzip'd tarball , zip file
* 1.1, updated on June 30, 2006. gzip'd tarball , zip file
* 1.0, updated on June 22, 2006. gzip'd tarball , zip file
Setup
Quick start:Download the .zip file and extract to the ollydbg directory. The uhooker.dll must be in the ollydbg directory for it to be loaded as a plugin. and that's it!. Make sure that .py files in windows are associated with the python interpreter. For example, if you have a .py file and type 'myfile.py' and press enter on a cmd.exe window and it doesn't run, the association is not configured correctly.
Requirements
* Ollydbg 1.10 (available from http://www.ollydbg.de)
* A Python interpreter. Versions 2.3 and higher.
link:
hxxp
hxxp://oss.coresecurity.com/uhooker/release/1.2/uhooker_v1.2.zip
赞赏
他的文章
看原图
赞赏
雪币:
留言: