SDT Cleaner

The SDT Cleaner allows you to clean hooks installed by Anti-Virus and Firewalls.

    iPhoneDbg Toolkit

A set of tools to delve into iPhone Binary Debugging.

    HeapDraw

HeapDraw/HeapTracer is a tool to visualize the evolution of the heap during the life of an application. We internally use this tool when writing exploits for heap corruption vulnerabilities.

    PSH Toolkit

This toolkit contains tools to list and modify windows logon sessions stored by the LSA (Local Security Authority) component. These tools allow you to list the current logon sessions with its corresponding NTLM credentials (e.g.: users remotely logged in thru Remote Desktop/Terminal Services), and also to change in runtime the current username, domain name, and NTLM hashes (YES, PASS-THE-HASH ON Windows!).

    UHooker

A tool to intercept and manipulate execution of programs. It enables the user to insert hooks in function calls and arbitrary addresses within the executable file in memory. The hooks handlers are written in Python and can be changed at runtime without the need to restart the inspected process.

    Pcapy

Capture network packets from your Python programs on UNIX and Windows platforms.

    Impacket

Easily dissect and build network protocols in object-oriented Python.

    InlineEgg

A platform independent toolbox for writing assembly code in Python.

    MSyslog

A replacement for the traditional syslog daemon featuring cryptographic log protection, database backends.

Subscribe me to the announce mailing list!

 



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.

Documentation and Scripts

Click the following link for an online copy of the documentation, videos describing functionality and scripts to be used with the uhooker. This page also contains an API reference and sample scripts that are frequently updated.


Matthew Lewis from IRM wrote a paper called "High-Level Reverse Engineering" where he uses uhooker and also wrote an IDA plugin to create hooks automatically, get it here

 

Known issues

Sometimes it does not work.

 

Licensing

This software is provided under the following license for non-commercial use.

 

Contact Us

Whether you want to report a bug, send a patch or give some suggestions on this package, drop us a few lines at oss@coresecurity.com . To contact me, Hernan Ochoa, the author, you can reach me at hochoa@coresecurity.com

 

 

Core Security Technologies © 1998-2008  |  All rights reserved