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、编写代码,还原主要功能函数。

  • 相关阅读:
    Amoeba for MySQL读写分离配置
    基于amoeba实现mysql数据库的读写分离/负载均衡
    Amoeba实现mysql主从读写分离
    OpenERP 的XML-RPC的轻度体验+many2many,one2many,many2one创建方式
    openerp用wizard导入excel数据
    OpenERP在product中增加外部网络链接图片
    OpenERP7.0安装后提示“not supported" ,如何去掉此提示
    windows命令行设置IP与DNS
    ubuntu开机自动启动xampp/lampp的两种方法
    [Python]网络爬虫(五):urllib2的使用细节与抓站技巧
  • 原文地址:https://www.cnblogs.com/miaohj/p/5402978.html
Copyright © 2011-2022 走看看