zoukankan      html  css  js  c++  java
  • 代码注入相关知识以及扫雷程序的分析(分析过程之后添加)

    代码实现技术

    进程间的通信

    1.动态链接库(dll)技术:

    共享数据(需要预处理指令,共享的变量在定义时必须初始化,因为未初始化的数据存放在.bss段)

    用dll实现进程间的通信:主进程和目标进程分别加载已创建好的dll文件,通过dll提供的导出函数对共享数据区访问,实现进程间的通信。

    2、共享内存技术:

    任何进程不允许读取、写入或者修改另一个进程的数据,使用共享内存可以实现共享数据的读写以响应别的进程。

    过程:创建共享内存、数据传送、数据传输结束并将内存文件映射对象视图卸载和资源释放。

    代码注入技术

    1、目标:将代码体注入到目标文件、在目标文件启动时或者执行过程中钩住控制、获取目标文件重要数据信息、正确及时传送回获取到的信息。

    2、动态X-code技术:

    a、windows钩子技术;

    b、用CreateRemoteThead远程注入进程技术:向远程进程中创建一个线程,通过此线程加载嵌有注入代码的DLL来实现远程加载。

    c、使用CreateFileMapping共享内存技术:通过注入内存来控制目标进程

    3、静态X-code技术:

    a、向空闲空间注入:向PE文件头注入、向段尾部注入。(需要计算实际可用空间)

    b、改写目标程序注入:找到注入点→覆盖源代码→保证正常运行。

    c、混合注入

    4、无论哪种注入技术,必须保证目标程序栈的平衡性和数据的准确性,在注入代码完成后还需要还原被覆盖的目标程序代码。

    实例

    目标

    对扫雷程序中开始到结束整个过程进行跟踪,分析其中核心算法、设计思想。

    需求分析

    1、找出程序布雷的算法函数,分析布雷函数的实现方法,还原函数代码;
    2、找出程序的排雷函数,分析排雷函数的实现方法,还原函数代码;
    3、找出程序判断游戏开始与结束的时机和条件;
    4、编写代码,还原主要功能函数。

  • 相关阅读:
    mooc-IDEA 项目/文件之间跳转--002
    003--PowerDesigner创建索引与外键
    002--PowerDesigner显示注释comment
    001--PowerDesigner连接MySQL
    如果说需要注册数据中心,这样才能使用demo部署数据中心license证需要申请,使用云之间-工作流程......
    eas之如何获取当前用户
    eas之f7
    eas之打开窗体
    eas之怎么设置单据保存或者提交完不跳到下个新增页面
    eas之EntityViewInfo对象mainQuery中查询条件
  • 原文地址:https://www.cnblogs.com/miaohj/p/5402978.html
Copyright © 2011-2022 走看看