zoukankan      html  css  js  c++  java
  • API Interception via DLL Redirection

    参考论文:<API Interception via DLL Redirection>

    拦截,监视和修改进程的API调用,通常称为API Hook,可以让我们对进程进行更有效和完全的控制.关于API Hook的实现已经有很多方法,本论文中讲的是DLL 重定向,究其原因有以下:
    1,实现简单.
    2,可以让我们查看和修改传递给API函数的参数,修改返回值,或者运行我们期望的任何代码.
    3,许多其它方法都要求向目标进程中注入代码,而DLL重定向仅只需拥有对目标程序所在文件夹的写入权限.
    4,我们可以不通过修改目标应用程序(无论是磁盘上的还是内存中的)和任何其它系统文件.

    开始磨刀,工具列表:
    Visual C++,用来编译我们的DLL 文件.
    OlleDbg,用来考察目标应用程序和其它任何外部模块.
    DumpbinGUI,用来获取一个目标DLL中的输出函数.
    Linkout.pl,一个用来自动化我们的大部分繁琐工作的perl脚本(其实可以用任何其它脚本,比如ruby,jscript,vbscript,都可以,仅作一些字符串的简单处理,译者注)

    通常用于DLL Redirection的方法有两种即.local和.manifest方法.
    .local方法要求在目标应用程序所在目录下建一个空的.local文件,比如若要拦截a.exe的某些API访问,就可以在其所在目录下建一a.exe.local文件.这种程序在找DLL时会优先从程序所在目录里寻找.
    但是.local并不是一种可靠的办法,某些DLL文件在WindowsXP中并不能被重定向,比如kernel32.dll,user32.dll和gdi32.dll,仅适用于Windows 2000中(这个我也没有试过)

    我们将要彩的方法是.manifest文件的方法,该方法要求在应用程序所在的目录下以应用程序的名称建立一个.manifest文件,不过这个manifest文件就不是空的了,而是一个XML格式的配置文件.manifest文件在很多程序中都用到,以下是笔者电脑上的一个manifest文件:

    manifest

  • 相关阅读:
    grep 和vim用法
    【python】初识函数
    【python】 文件相关操作
    【python】基础数据类型相关知识点补充和深浅拷贝
    【python】is和==的区别以及encode()和decode()
    python中的字典以及相关操作
    python列表元祖以及range
    python基本数据类型
    python基础逻辑运算
    了解Python与安装Python解释器
  • 原文地址:https://www.cnblogs.com/jcleung/p/1459198.html
Copyright © 2011-2022 走看看