

码龄10年
暂无认证
34097访问
1
等级
8获赞
3
评论
热门文章
-
一.某岛之人物对象及其加密函数解析
2147
-
一.《传奇M》装备栏遍历的突破口
1789
-
二.某龙端游中LUA的分析和调用
1538
-
一.《轩辕传奇》周围遍历之二叉树
1384
-
一.《UE4奥丁》人物最大属性
1329
最新评论
-
20240228阿⑤
积分乍获得
-
20231124ziher
666
-
20230909八月老师
什麼時候發佈易語言支持庫呢
一.某岛之人物对象及其加密函数解析
Heart
2023-03-08 20:51:00 发布
2146
分类专栏: 数据分析 文章标签: 加密 解密 逆向游戏数据分析
一.人物属性
名字入手
1.首先我们找名字 发现是明文
2.对象+11 是名字明文(这个未被加密)
3.那么就继续找基地址
4.发现来源于临时写入的,怎么办呢?
5.这时候我们借助CE来搜索这个ebx地址
6.发现只有第一个,我们下访问断才有断下
7.继续找edi来源,这里肯定不是栈地址了
8.这里我们就找到了这个人物对象的基地址
二.找其他属性
1.有理由相信,其他属性也在这个对象下
2.可是当我们搜索力量 敏捷 等属性的时候,发现(确定值 未知初始值 等)都找不到,显然被加密了
3.怎么办呢?
4.在不经意间,我们在搜索血量的时候,惊奇发现血量是明文的,似乎找到了?其实并不然
4.1.如果都不行的话,我们只能这么猜想 了,就是对象下的加密数据是要解密的,既然要解密就要访问,我们就下访问断,但是这种情况比较耗时间,因为我们不知道偏移是多少,只能按访问1字节每个试一试了,这里我试了,会直接跳到解密CALL,ctrl+F9返回上一层会看到偏移同时和解密出来的值
5.用xdbg 查看一下这个血量地址 发现不在刚才我们存名字的对象下
6.发现这貌似在控件上,这时候我们可以在这个值这里下写入断,看看是那里写入进来的。
如果没猜错,就是人物对象下某个加密值经过解密后写入进来的
7.继续ctrl+G查看下
8.发现来源是这个栈地址,我们继续往上找来源
9.发现来源这个CALL,进入找eax也就是我们的血量是怎么来的
10.这时候在这个CALL上F2断,我们观察寄存器发现了一个很熟悉的地址,也就是我们上面找对象名字的对象
11.似乎已经找到了,而且猜测这个CALL很可能是个解密CALL(加密数据来源于对象)
12.进入这个CALL分析解密过程
13.注入 成功
mov eax,0x65A41028 push dword ptr ds:[eax+67] add eax,5F push eax call 0x5A59E0 add esp,8 mov ecx,0x123456 mov [ecx],eax

-
666
2023年11月24日16:59

评论列表