lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <44FEE0B3.70303@core-sdi.com>
Date: Wed, 06 Sep 2006 11:52:35 -0300
From: Hernan Ochoa <lists@...e-sdi.com>
To: bugtraq@...urityfocus.com
Subject: release uhooker v1.2 

uhooker v1.2 out.

What's new?:
http://oss.coresecurity.com/uhooker/release/1.2/WHATSNEW_1.2.txt
gzip'd tarball:
http://oss.coresecurity.com/uhooker/release/1.2/uhooker_v1.2.tgz
zip file: http://oss.coresecurity.com/uhooker/release/1.2/uhooker_v1.2.zip
documentation: http://oss.coresecurity.com/uhooker/doc/index.html


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.


Thanks,
Hernan


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ