码龄10年 暂无认证

34144
访问
1
等级

8
获赞
3
评论

最新评论

  • 20240228阿⑤

    积分乍获得

  • 20231124ziher

    666

  • 20230909八月老师

    什麼時候發佈易語言支持庫呢

一.某岛之人物对象及其加密函数解析

Heart 2023-03-08 20:51:00 发布 2147

分类专栏: 数据分析 文章标签: 加密 解密 逆向游戏数据分析

一.人物属性

名字入手

1.首先我们找名字 发现是明文

mxd_1 (1).png

2.对象+11 是名字明文(这个未被加密)

3.那么就继续找基地址

mxd_1 (2).png

4.发现来源于临时写入的,怎么办呢?

5.这时候我们借助CE来搜索这个ebx地址

mxd_1 (3).png

6.发现只有第一个,我们下访问断才有断下

mxd_1 (4).png

7.继续找edi来源,这里肯定不是栈地址了

mxd_1 (5).png

8.这里我们就找到了这个人物对象的基地址


二.找其他属性

1.有理由相信,其他属性也在这个对象下

2.可是当我们搜索力量 敏捷 等属性的时候,发现(确定值 未知初始值 等)都找不到,显然被加密了

3.怎么办呢?

4.在不经意间,我们在搜索血量的时候,惊奇发现血量是明文的,似乎找到了?其实并不然

4.1.如果都不行的话,我们只能这么猜想 了,就是对象下的加密数据是要解密的,既然要解密就要访问,我们就下访问断,但是这种情况比较耗时间,因为我们不知道偏移是多少,只能按访问1字节每个试一试了,这里我试了,会直接跳到解密CALL,ctrl+F9返回上一层会看到偏移同时和解密出来的值

mxd_1 (6).png

5.用xdbg 查看一下这个血量地址 发现不在刚才我们存名字的对象下

mxd_1 (7).png

6.发现这貌似在控件上,这时候我们可以在这个值这里下写入断,看看是那里写入进来的。

如果没猜错,就是人物对象下某个加密值经过解密后写入进来的

7.继续ctrl+G查看下

mxd_1 (8).png

8.发现来源是这个栈地址,我们继续往上找来源

mxd_1 (9).png

9.发现来源这个CALL,进入找eax也就是我们的血量是怎么来的

10.这时候在这个CALL上F2断,我们观察寄存器发现了一个很熟悉的地址,也就是我们上面找对象名字的对象

mxd_1 (10).png

11.似乎已经找到了,而且猜测这个CALL很可能是个解密CALL(加密数据来源于对象)

12.进入这个CALL分析解密过程

mxd_1 (11).png

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


Heart1
7 1 上传作业
X
    网友评论 1条评论 1人参与
    请登陆会员1

    表情

    评论列表

    • ziher1

      666

      2023年11月24日16:59

×