找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 180|回复: 0

征途-[笑忘书]征途辅助

[复制链接]

1793

主题

457

回帖

0

积分

管理员

积分
0
发表于 2013-9-4 07:27:33 | 显示全部楼层 |阅读模式

.版本 2
.支持库 iext

.程序集 窗口程序集1
.程序集变量 关键字, 字节集
.程序集变量 征途句柄, 整数型
.程序集变量 使用id, 整数型, , "0"
.程序集变量 选中进程号, 整数型
.程序集变量 搜索结果, 整数型, , "0"
.程序集变量 人物基址, 整数型
.程序集变量 人物偏移, 整数型
.程序集变量 玩家名称, 文本型

.子程序 __启动窗口_创建完毕

超级列表框.全部删除 ()
EnumWindows (&枚举窗口回调函数, 0)

.子程序 枚举窗口回调函数, 逻辑型, , EnumWindows每找到一个窗口,就会调用此函数
.参数 参窗口句柄, 整数型
.参数 参数, 整数型
.局部变量 窗口标题, 文本型
.局部变量 窗口类名, 文本型
.局部变量 进程号, 整数型
.局部变量 行号, 整数型
.局部变量 服务器名, 文本型
.局部变量 a, 整数型
.局部变量 临时数据, 整数型
.局部变量 临时文本, 文本型
.局部变量 临时计数, 整数型

窗口标题 = 取空白文本 (256)  ' 预先分配内存空间,以保存返回值
GetWindowText (参窗口句柄, 窗口标题, 255)  ' 取得一个窗体的标题(caption)文字
GetWindowThreadProcessId (参窗口句柄, 进程号)  ' 取得一个窗体的进程ID
征途句柄 = OpenProcess (#PROCESS_VM_READ + #PROCESS_QUERY_INFORMATION, 0, 进程号)
.如果真 (取文本左边 (窗口标题, 10) = “征途怀旧板”)
    行号 = 超级列表框.插入表项 (, 到文本 (参窗口句柄), , , , )
    超级列表框.置标题 (行号, 1, 到文本 (进程号))
    服务器名 = 取文本中间 (窗口标题, 27, 8)
    超级列表框.置标题 (行号, 2, 服务器名)
    临时计数 = 到数值 (读配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “sum”, ))
    临时数据 = 到数值 (读配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “id” + 到文本 (临时计数), ))
    临时文本 = 读配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “name” + 到文本 (临时计数), )
    .如果 (临时数据 ≠ 0)
        加入成员 (使用id, 临时数据)
        .如果真 (临时数据 = 进程号)
            超级列表框.置标题 (行号, 3, 临时文本)

        .如果真结束

    .否则

    .如果结束

.如果真结束

.' 计次循环首 (10, a)
    ' 临时数据 = 到数值 (读配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “id” + 到文本 (a), ))
    ' 临时文本 = 读配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “name” + 到文本 (a), )
    .' 如果 (临时数据 ≠ 0)
        ' 加入成员 (使用id, 临时数据)
        .' 如果真 (临时数据 = 进程号)
            ' 超级列表框.置标题 (行号, 3, 临时文本)
        .如果真结束

    .否则
        ' 跳出循环 ()
    .如果结束

.' 计次循环尾 ()
返回 (真)

.子程序 _超级列表框_左键单击表项

选中进程号 = 到整数 (超级列表框.取标题 (超级列表框.现行选中项, 1))

状态条1.置文本 (1, “已选取游戏进程 = ” + 到文本 (选中进程号))


.子程序 _按钮1_被单击
.局部变量 临时计数, 整数型

.如果 (选中进程号 = 0)
    状态条1.置文本 (1, “请在列表框中选取游戏”)
    返回 ()
.否则

.如果结束

.如果 (超级列表框.取标题 (超级列表框.现行选中项, 3) ≠ “”)
    状态条1.置文本 (1, “这个游戏窗口已经运行辅助了”)
    返回 ()
.否则

.如果结束
.如果真 (搜索 (“国?”) = 真)
    读数据 ()
    角色基址 = 人物基址
    ' 输出调试文本 (到文本 (角色基址))
    进程id = 选中进程号
    句柄 = 到整数 (超级列表框.取标题 (超级列表框.现行选中项, 0))
    ' 输出调试文本 (到文本 (句柄))
    CloseHandle (征途句柄)
    写配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “id” + 到文本 (超级列表框.现行选中项 + 1), 到文本 (进程id))
    写配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “name” + 到文本 (超级列表框.现行选中项 + 1), 玩家名称)
    已经运行标志 = 到数值 (超级列表框.现行选中项 + 1)
    临时计数 = 到数值 (读配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “sum”, ))
    写配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “sum”, 到文本 (临时计数 + 1))

    载入 (辅助, , 假)
    _启动窗口.销毁 ()
    返回 ()
.如果真结束

.如果真 (搜索 (“中立区?”) = 真)
    读数据 ()
    角色基址 = 人物基址
    进程id = 选中进程号
    句柄 = 到整数 (超级列表框.取标题 (超级列表框.现行选中项, 0))
    写配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “id” + 到文本 (超级列表框.现行选中项 + 1), 到文本 (进程id))
    写配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “name” + 到文本 (超级列表框.现行选中项 + 1), 玩家名称)
    已经运行标志 = 到数值 (超级列表框.现行选中项 + 1)
    CloseHandle (征途句柄)
    载入 (辅助, , 假)
    _启动窗口.销毁 ()
    返回 ()
.如果真结束


.子程序 读数据
.局部变量 角色名称, 字节集
.局部变量 玩家数据基址4, 整数型

' ==角色名称====================================================================
读内存整数 (征途句柄, 人物基址, 玩家数据基址4, 4, 0)
角色名称 = 取空白字节集 (20)
ReadProcessMemory (征途句柄, 玩家数据基址4 + 4, 角色名称, 20, 0)
玩家名称 = 到文本 (角色名称)


.子程序 搜索, 逻辑型
.参数 征途关健字, 文本型
.局部变量 计次, 整数型
.局部变量 文本, 文本型
.局部变量 n, 整数型

n = 0
.如果真 (征途关健字 = “中立区?”)
    n = 1
.如果真结束

清除数组 (搜索结果)
搜索内存 (征途关健字)
.如果真 (取数组成员数 (搜索结果) = 0)
    返回 (假)
.如果真结束

.计次循环首 (取数组成员数 (搜索结果), 计次)
    .如果真 (详细查找 (搜索结果 [计次], n) = 真)
        返回 (真)
    .如果真结束

.计次循环尾 ()

返回 (假)


.子程序 详细查找, 逻辑型
.参数 伪地图地址, 整数型
.参数 n, 整数型
.局部变量 玩家数据基址3, 整数型
.局部变量 HP, 整数型
.局部变量 ZHP, 整数型
.局部变量 MP, 整数型
.局部变量 ZMP, 整数型
.局部变量 经验数值, 整数型
.局部变量 总经验数值, 整数型
.局部变量 坐标X, 整数型
.局部变量 坐标Y, 整数型
.局部变量 等级, 整数型
.局部变量 特征码, 整数型

.如果真 (n = 0)
    人物基址 = 伪地图地址 + 244 - 2
.如果真结束

.如果真 (n = 1)
    人物基址 = 伪地图地址 + 244
.如果真结束
' 输出调试文本 (人物基址)

读内存整数 (征途句柄, 人物基址, 玩家数据基址3, 4, 0)
读内存整数 (征途句柄, 玩家数据基址3, 特征码, 4, 0)
.如果真 (特征码 < 5000000 或 特征码 > 9000000)
    返回 (假)
.如果真结束

.变量循环首 (900, 980, 4, 人物偏移)
    读内存整数 (征途句柄, 玩家数据基址3 + 人物偏移 + 600, 坐标X, 4, 0)
    读内存整数 (征途句柄, 玩家数据基址3 + 人物偏移 + 604, 坐标Y, 4, 0)
    .如果真 (坐标X > 2000 或 坐标X ≤ 0 或 坐标Y > 2000 或 坐标Y ≤ 0)
        到循环尾 ()
    .如果真结束

    读内存整数 (征途句柄, 玩家数据基址3 + 人物偏移 + 1314, 经验数值, 4, 0)
    读内存整数 (征途句柄, 玩家数据基址3 + 人物偏移 + 1322, 总经验数值, 4, 0)
    .如果真 (经验数值 < 0 或 总经验数值 < 10 或 经验数值 > 总经验数值)
        到循环尾 ()
    .如果真结束

    读内存整数 (征途句柄, 玩家数据基址3 + 人物偏移 + 1248, 等级, 4, 0)
    .如果真 (等级 < 0 或 等级 > 200)
        到循环尾 ()
    .如果真结束

    读内存整数 (征途句柄, 玩家数据基址3 + 人物偏移 + 1254, HP, 4, 0)
    读内存整数 (征途句柄, 玩家数据基址3 + 人物偏移 + 1258, ZHP, 4, 0)

    .如果真 (HP ≤ ZHP 且 HP > 0 且 HP < 49999)
        返回 (真)
    .如果真结束

.变量循环尾 ()
返回 (假)

.子程序 搜索内存
.参数 搜索文本, 文本型
.局部变量 内存地址, 整数型
.局部变量 临时关键字, 字节集
.局部变量 内存块信息, MEMORY_BASIC_INFORMATION
.局部变量 内存块长度, 整数型
.局部变量 数据缓冲区, 字节集
.局部变量 读取结果, 整数型
.局部变量 开始地址, 整数型
.局部变量 长度, 整数型
.局部变量 其他地址, 整数型

临时关键字 = 到字节集 (搜索文本)
长度 = 取字节集长度 (临时关键字)
内存块长度 = 28
内存地址 = 1048576
征途句柄 = OpenProcess (#PROCESS_VM_READ + #PROCESS_QUERY_INFORMATION, 0, 选中进程号)
.如果真 (征途句柄 = 0)
    状态条1.置文本 (1, “打开游戏进程失败”)
.如果真结束
.判断循环首 (VirtualQueryEx (征途句柄, 内存地址, 内存块信息, 内存块长度) ≠ 0)
    .如果真 (内存块信息.Type = #MEM_PRIVATE 且 内存块信息.Protect = #PAGE_READWRITE)
        数据缓冲区 = 取空白字节集 (内存块信息.RegionSize)
        读取结果 = ReadProcessMemory (征途句柄, 内存地址, 数据缓冲区, 内存块信息.RegionSize, 0)
        .如果 (读取结果 ≠ 0)
            开始地址 = 寻找字节集 (数据缓冲区, 临时关键字, )  ' 查找是否有要搜索的数据
            .如果 (开始地址 ≠ -1)
                加入成员 (搜索结果, 到数值 (内存地址 + 开始地址 - 1))

            .否则

            .如果结束

            .判断循环首 (-1 ≠ 寻找字节集 (数据缓冲区, 临时关键字, 开始地址 + 长度))
                其他地址 = 寻找字节集 (数据缓冲区, 临时关键字, 开始地址 + 长度)
                加入成员 (搜索结果, 到数值 (内存地址 + 其他地址 - 1))
                开始地址 = 其他地址
            .判断循环尾 ()

        .否则
            ' 输出调试文本 (“不能读取内存块: ” + 到文本 (内存地址))
        .如果结束

    .如果真结束
    内存地址 = 内存地址 + 内存块信息.RegionSize
    .如果真 (内存地址 > 2130706432)
        跳出循环 ()
    .如果真结束

.判断循环尾 ()
返回 ()

.子程序 _按钮2_被单击

超级列表框.置标题 (超级列表框.现行选中项, 3, “”)
写配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “id” + 到文本 (已经运行标志), )
写配置项 (取运行目录 () + “\ZTEasy.ini”, “使用进程”, “name” + 到文本 (已经运行标志), )


.子程序 _超级列表框_当前表项被改变


http://yunpan.cn/QXNXWyFGkmS9J

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

果子博客
扫码关注微信公众号

Archiver|手机版|小黑屋|风叶林

GMT+8, 2026-2-1 14:03 , Processed in 0.065823 second(s), 21 queries .

Powered by 风叶林

© 2001-2026 Discuz! Team.

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