看流星社区

 找回密码
 注册账号
查看: 3159|回复: 0

哈哈 完美解决 武林 飞天 原理就是 内存搜索

[复制链接]

该用户从未签到

发表于 2011-3-18 10:20:23 | 显示全部楼层 |阅读模式
贴源码啦  
懒得打字  
原理就是 内存搜索  

.版本   

搜索特征码 (进程PID, { 106, 10, 139, 205, 232, 254, 237 }, “飞天”)  
' 搜索特征码 (进程PID, { 116, 53, 139, 148, 36, 148 }, “穿墙”)  

.子程序 搜索特征码  
.参数 目标PID, 字节集  
.参数 搜索内容, 字节集  
.参数 搜索类型, 文本型  
.局部变量 长度, 整数型  
.局部变量 内存块长度, 整数型  
.局部变量 内存地址, 整数型  
.局部变量 内存块信息, MEMORY_BASIC_INFORMATION  
.局部变量 数据缓冲区, 字节集  
.局部变量 读取结果, 整数型  
.局部变量 开始地址, 整数型  
.局部变量 计次, 整数型  
.局部变量 进程句柄, 整数型  

.如果真 (取字节集数据 (目标PID, #整数型, ) = )  
  返回 ()  
.如果真结束  
进程句柄 = OpenProcess (2035711, 假, 取字节集数据 (目标PID, 3, ))  
.如果真 (搜索类型 = “飞天”)  
  清除数组 (飞天地址)  
.如果真结束  
.如果真 (搜索类型 = “穿墙”)  
  清除数组 (穿墙地址)  
.如果真结束  
内存块长度 =   
' 搜索内容 = { 106, 10, 139, 205 }  
长度 = 取字节集长度 (搜索内容)  
.判断循环首 (VirtualQueryEx (进程句柄, 内存地址, 内存块信息, 内存块长度) ≠0)  
  .如果真 (内存块信息.RegionSize = )  
    数据缓冲区 = 取空白字节集 (内存块信息.RegionSize)  
    读取结果 = ReadProcessMemory (进程句柄, 内存地址, 数据缓冲区, 内存块信息.RegionSize, 0)  
    处理事件 ()  
    .判断循环首 (读取结果 > )  
        开始地址 = 寻找字节集 (数据缓冲区, 搜索内容, 开始地址)  
        .如果 (开始地址 = -1)  
          跳出循环 ()  
        .否则  
          .如果真 (搜索类型 = “飞天”)  
            加入成员 (飞天地址, 到数值 (内存地址 + 开始地址 - ))  
          .如果真结束  
          .如果真 (搜索类型 = “穿墙”)  
            加入成员 (穿墙地址, 到数值 (内存地址 + 开始地址 - ))  
          .如果真结束  

        .如果结束  
        开始地址 = 开始地址 + 长度  
        处理事件 ()  
    .判断循环尾 ()  
  .如果真结束  
  内存地址 = 内存地址 + 内存块信息.RegionSize  
  处理事件 ()  
.判断循环尾 ()  
CloseHandle (进程句柄)  
返回 ()
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-4-29 10:19

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表