xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
添加工具English Version

xHook.rar


提交时间:2004-08-03
提交用户:eyas
工具分类:其它工具
运行平台:Windows
工具大小:58436 Bytes
文件MD5 :9e0c3062ad1c1cfb5fd5f377344d123f

当你在网络上抓到一些数据包,想知道这些包是哪个进程发出来的时候,
怎么办?这个小工具也许能帮一些忙。

    这个工具采用的是HOOK进程的winsock API,把一些数据记录下来。
HOOK API在《windows核心编程》提到的有两种,

    1.1 修改IAT。缺点:象shellcode中常用的那种根据DLL输出表来计算函数
        地址的方法,修改IAT就无法HOOK到目标函数了。
    1.2 修改目标函数的前几字节,跳转到我们的函数,我们的函数里面再把那
        几个字节还原,调用原函数。重复。缺点:多线程环境下这种方法并不
        健壮。

    29A杂志里面的文章《挂钩Windows API》也提到了几种办法:
    (中译文见http://www.xfocus.net/articles/200403/681.html
    2.1 patch静态文件,即运行前挂钩.
    2.2 也是修改IAT,跟1.1一样.
    2.3 修改目标函数的前几个字节,跳转到新的函数,但不再调用原始函数,无
        实际意义,作者只是做演示?
    2.4 这种方法(3.2.3 保存原始函数)很COOL,其中的亮点和难点就是“获取任意
        地址的指令长度”。


    之前我也想用2.4这种办法,但卡在如何“获取任意地址的指令长度”上面了:(
  
    在看到《挂钩Windows API》这篇文章之前,我取了一个比较简单有效的办法:
    3.1 把目标函数的DLL COPY一份到内存中,修改原目标函数的前几字节,跳转
    到我们的函数,在我们的函数中调用原函数新的COPY。

>> 下载 <<