虫虫教学

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

手游内存辅助教学第九课:编写程序找定位地址

[复制链接]

4449

主题

4659

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
41710

最佳新人发帖达人推广达人热心会员突出贡献优秀讲师

发表于 2021-10-2 23:28:58 | 显示全部楼层 |阅读模式
手游内存辅助教学第九课:编写程序找定位地址


            我们上节课把特征码的地址全部找出来的,今天这节课,我们要做的就是把定位的地址找出来,只要这个地址找出来,
  我们就可以偏移到当前血量的地址。这样游戏中的魔法值,人物等级,人物经验,战斗力都可以找到。
        那么如何找定位地址呢?
就是把我们前面找的所有地址,一个一个去比对,看那个地址的值通过 44 32 的偏移,找到我们所要的值 200 1000.
      我们通过前面的课,知道:
       偏移1的地址     定位地址 - 44
       偏移2的地址     定位地址 - 32
        偏移1的数值 = dm.ReadInt (进程ID, 十到十六 (偏移1的地址, ), 0)
        偏移2的数值 = dm.ReadInt (进程ID, 十到十六 (偏移2的地址, ), 0)
            如果真 (偏移1的数值 = 200 且 偏移2的数值 = 1000)
                血量地址 = 定位地址 - 72

           这样我们就把游戏中当前血量的地址找出来啦!

          有了这个地址,通过我们计算的偏移,游戏中其它的地址就全能找出来   



          视频教程下载地址:     https://pan.baidu.com/s/1FwPOkgtymECbc91lfLV1MQ           提取码:xig7

4449

主题

4659

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
41710

最佳新人发帖达人推广达人热心会员突出贡献优秀讲师

 楼主| 发表于 2021-10-2 23:30:13 | 显示全部楼层
第九课源码:

.版本 2
.支持库 spec
.支持库 eAPI

.程序集 窗口程序集_启动窗口
.程序集变量 dm, 虫虫教学
.程序集变量 i, 整数型
.程序集变量 血量地址, 整数型

.子程序 __启动窗口_创建完毕
.局部变量 ret, 整数型

dm.创建 ()
.如果 (dm.Ver () = “”)
    dm.注册 ()
    dm.创建 ()
.否则

.如果结束
调试输出 (dm.Ver ())
ret = dm.Reg (“bestcclm5208dad61379ce31b99817505c16bce11a2”, “OQ0x”)
.如果 (ret = 1)
    调试输出 (“大漠VIP注册成功!”)
.否则
    调试输出 (“大漠VIP注册失败!”)

.如果结束
dm.SetMemoryHwndAsProcessId (1)


.子程序 _组合框1_将弹出列表
.局部变量 进程, 进程信息, , "0"
.局部变量 a, 整数型

进程 = 取系统进程列表 ()
a = 取数组成员数 (进程)
.计次循环首 (a, i)
    组合框1.加入项目 (进程 .进程名称, 进程 .进程标识符)
.计次循环尾 ()


.子程序 __启动窗口_将被销毁

dm.释放 ()


.子程序 _按钮1_被单击
.局部变量 进程名, 文本型
.局部变量 进程ID, 整数型
.局部变量 查找到的地址, 文本型
.局部变量 分割的文本, 文本型, , "0"
.局部变量 偏移1的地址, 整数型
.局部变量 偏移2的地址, 整数型
.局部变量 偏移1的数值, 整数型
.局部变量 偏移2的数值, 整数型
.局部变量 定位的地址, 整数型

进程名 = 组合框1.取项目文本 (组合框1.现行选中项)
进程ID = 组合框1.取项目数值 (组合框1.现行选中项)
查找到的地址 = dm.FindIntEx (进程ID, “00000000-FFFFFFFF”, 179973292, 179973292, 0, 4, 1, 1)
分割的文本 = 分割文本 (查找到的地址, “|”, )

.计次循环首 (取数组成员数 (分割的文本), i)
    定位的地址 = 十六到十 (分割的文本 )
    偏移1的地址 = 定位的地址 - 44
    偏移2的地址 = 定位的地址 - 32
    偏移1的数值 = dm.ReadInt (进程ID, 十到十六 (偏移1的地址, ), 0)
    偏移2的数值 = dm.ReadInt (进程ID, 十到十六 (偏移2的地址, ), 0)
    .如果真 (偏移1的数值 = 200 且 偏移2的数值 = 1000)
        血量地址 = 定位的地址 - 72
    .如果真结束

.计次循环尾 ()



.子程序 _时钟1_周期事件
.局部变量 进程ID, 整数型
.局部变量 人物血量, 整数型

进程ID = 组合框1.取项目数值 (组合框1.现行选中项)
人物血量 = dm.ReadInt (进程ID, 十到十六 (血量地址, ), 0)
标签1.标题 = 到文本 (“人物当前血量:” + “” + 到文本 (人物血量))

回复

使用道具 举报

3

主题

1457

帖子

8203

积分

钻石会员

Rank: 7Rank: 7Rank: 7

积分
8203
发表于 2021-10-13 10:38:25 来自手机 | 显示全部楼层
一起加油,好好学习,虫虫越来越好
回复

使用道具 举报

3

主题

1457

帖子

8203

积分

钻石会员

Rank: 7Rank: 7Rank: 7

积分
8203
发表于 2021-10-13 10:38:27 来自手机 | 显示全部楼层
一起加油,好好学习,虫虫越来越好
回复

使用道具 举报

0

主题

2465

帖子

2945

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2945

最佳新人宣传达人纪念勋章

发表于 2021-10-13 16:48:47 | 显示全部楼层
感謝老師分享,祝蟲蟲越辦越好!
回复

使用道具 举报

0

主题

2465

帖子

2945

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2945

最佳新人宣传达人纪念勋章

发表于 2021-10-13 16:48:49 | 显示全部楼层
感謝老師分享,祝蟲蟲越辦越好!
回复

使用道具 举报

0

主题

1738

帖子

1757

积分

高级会员

Rank: 4

积分
1757
发表于 2021-10-14 01:49:27 来自手机 | 显示全部楼层
感谢老师分享,祝虫虫越来越好!
回复

使用道具 举报

0

主题

1738

帖子

1757

积分

高级会员

Rank: 4

积分
1757
发表于 2021-10-14 01:49:29 来自手机 | 显示全部楼层
一起加油,好好学习,虫虫越来越好
回复

使用道具 举报

0

主题

4

帖子

2683

积分

高级会员

Rank: 4

积分
2683

最佳新人发帖达人推广达人热心会员宣传达人在线达人纪念勋章

发表于 2021-10-14 22:56:05 | 显示全部楼层
定位 200  1000 这个不合理  任务升级后 这些都会变化的!
回复

使用道具 举报

0

主题

5981

帖子

2万

积分

超级版主

Rank: 8Rank: 8

积分
24833

最佳新人活跃会员热心会员突出贡献纪念勋章

发表于 2021-10-16 21:04:04 | 显示全部楼层
前来学习!
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

QQ|Archiver|手机版|小黑屋|虫虫教学--虫虫联盟官网

GMT+8, 2025-4-28 19:34 , Processed in 1.030641 second(s), 43 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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