zoukankan      html  css  js  c++  java
  • 第29章:API钩取-逆向分析之花

    钩取的流程:

    1.使用反汇编/调试器把握程序的结构和工作原理.

    2.开发需要的"钩子"代码,用于修改Bug,修改程序功能.

    3.灵活操作可执行文件与进程内存,设置"钩子"代码.

    使用场景: 程序无源代码或难以修改.

    API: Application Programming Interface,应用程序编程接口.用户无法直接使用系统资源,必须通过API向内核申请资源.因而要加载很多系统进程

    只有某些特定的系统进程(例如,smss.exe)不会加载 kernel32.dll库, kernel32.dll 会加载ntdll32.dll .而在GUI应用程序中 uer32.dll 和 gdi32.dll 是必需的库.

    通过API钩取可以实现对某些API调用过程的拦截,并获得相应的控制权限.

    修改IAT处的函数地址:  实现简单,但无法钩取动态加载并使用DLL时的API.

    代码修改:  ①使用JMP指令修改其实代码②覆写函数局部③修改局部的局部.

    修改EAT: 将DLL中的EAT地址改为钩取函数地址.但是不容易做到.

    调试也包含自己编写的程序,通过调试API附加到目标进程.

    注入包含DLL注入和代码注入.

  • 相关阅读:
    VERSIONINFO Resource
    WCF 学习文摘
    hook 学习
    COM 学习
    ActiveX开发
    Word 开发资料集合
    Loops with PL/SQL
    TWain 在 Qt4 中的调用方法
    从 TWAIN 设备中扫描图像
    Qt enum使用总结
  • 原文地址:https://www.cnblogs.com/Rev-omi/p/13394745.html
Copyright © 2011-2022 走看看