首页
社区
课程
招聘
[讨论]关于动态地址
发表于: 2006-7-18 11:38 4493

[讨论]关于动态地址

2006-7-18 11:38
4493
说明:发上此帖,主要是想让大家来谈谈动态地址的破解方法

关于什么是动态地址?下面给出我的定义,有不恰当的地方,请拿软件砸我(我最怕硬件了)
--------------------------------------------------------------
【动态地址定义】:在程序执行过程中,通过某一算法不断改变数据的存放位置,这个位置就是动态地址
--------------------------------------------------------------
注:许多文章中的所谓"动态地址",实际上不是"动态"的.比如:前后2次加载程序,某一数据位置发生改变,一旦加载后这个地址则固定不变

从这个定义可以看出:用数据值变化的方法,一般很难查找到该数据在内存中的位置

动态地址应用:

.记得早期的BASIC程序的字符串处理就是个典型的动态地址应用
如:A$="123",则A$="123"+"456"后A$的指针就会改变,无效字符串"123"仍然在内存中,这样就必须在字串运算过程中,定期用一个字串清理语句完成清除无效字串的工作.

.网络通讯:往往采用"动态地址"存放读进来的数据,这样可大大提高数据的保密性

对于"动态地址"如何定位,在不清楚"动态算法"情况下,一般很难搞定.

通过对涉及"动态地址"程序破解,总的感觉是------累
1.关联法:找出与数据相关的内容.
如网络数据,则从接收数据入手找到存放数据的位置

2.观察法:在数据区中找出动态地址指针.
偶才开始学习破解,不太熟悉各种破解软件的用法,不知有没有对指定区段地址内数据跟踪变化规律的工具.比如跟踪某区域指针数据.

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
我也摸索中。,,,,
2006-7-18 16:09
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这种工具需要自己搞了,正在学习和试验中............
头大!!!!!!!!!!!!!!!
2006-7-19 16:06
0
雪    币: 190
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
有没有这方面的学习资料啊? 现在就遇到个动态算法的程序...郁闷啊
2006-7-19 16:42
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
偶提点浅薄看法:
如果是针对游戏,除了程序本身下手分析之外,还可以对脚本系统下手.
偶在跟踪单机游戏时,找游戏中下一情节将要显示的文字,然后下断,找到事件引擎,再下断分析事件代码与事件流程.
这样处理动态内存比较顺当.
比如某单机版游戏有个剧情事件脚本文件,里面获得物品的函数为:
EA 07 00 00 XX XX 00 00 YY YY 00 00 ZZ ZZ 00 00
其中:
EA 07 00 00是获得物品函数
XX XX 00 00是获得物品的代码
YY YY 00 00是获得物品的数量
ZZ ZZ 00 00是获得物品人的人物代码
然后在程序中对应的脚本解释执行引擎中有如下代码(根据记忆写出):
MOV EAX,DWORD PTR [ESP+10]
CMP EAX,000007EA
JG XXXXXXXX
JE YYYYYYYY
......
CMP EAX,00000304
JG MMMMMMMM
JE NNNNNNNN
,,,,,,
如果由此跟下去,动静结合分析,就把整个获得物品的代码流程都掌握了.
虽然在游戏中物品的内存地址搞成了动态数据,却有了两种解决办法:
一.解除脚本文件中的格式限制,自己重写脚本文件.
二.在上面代码中寻找注入点,自己写一段检测代码,只要是获得物品事件,就可以进行自己的操作.
另外,对于一些有上限限制的属性数据,在程序中必然要加上检测代码,检测是否超出该限制数值.对于简单的修改,可以对这些指令下手.
从游戏编程角度看,人物的属性数据有两种编制方法:
1.固定等级对应固定数值法.对于这种方法,要有一张数值表,可以查找这张数值表.
2.固定计算方法计算不同等级数值法.这种方法需要一个基数数值.然后再加入随机数参与计算,这样你重复游戏时会发现同一等级会出现不同的属性数值.对于这种类型,关键是查找基值.根据基值去找计算的方法.
2006-7-19 16:51
0
游客
登录 | 注册 方可回帖
返回
//