欢迎光临散文网 会员登陆 & 注册

浅谈数据的加密解密

2022-12-10 11:21 作者:螺丝刀_汗颜  | 我要投稿

这是在"BackMir修改"吧里,573650245大佬的“【教程】关于多倍主属性的修改”和“【新手教程】100倍经验制作。”2个帖子里的内容,我不过是借花献佛.

直接上图说话吧。 第一张图,是存储人物经验的代码.

存储新的经经验

以下是我对代码执行流程的分析。

1,新得的经验如果为0,则置为1 

mov eax,00000001 

test edi,edi 

cmove edi,eax

,2,判断人物数据是否加密,然后按情况取当前经验值,偏移 +74

mov bl,[esi+7A] // +7A = 1 加密状态

mov ecx,[gamesvr.exe+1CEA2C] // 解密密钥

call gamesvr.exe+D4240 // 解密函数

3,新旧经验相加后,存储加密的数据

mov ecx,[gamesvr.exe+1CEA2C] 

// 加密密钥,与解密密钥相同

call gamesvr.exe+D4190 // 加密函数

如果要直接修改经验,确实就是改加密前的数据,也就是 +83798地址这里:

add eax,edi

两个寄存器,选一个改其数据即可。


好,继续下一个,是关于攻速的 

人物攻速处理

上面代码执行流程:

1, 按人物数据是否加密,读取出其攻速数据,偏移+40

注意,与上面经验的解密密钥不同,

这里是 movzx ecx,byte ptr [gamesvr.exe+1CEA26]

解密函数则是一样

2,读取人物的词缀攻速数据,push 13 ...

有数据则计算发挥效用的几率 ,第一个 MSVCR120.rand 

有效用,则继续计算词缀攻速的“上下限”,第2个 MSVCR120.rand 


攻速最后的计算返回

这是计算攻速后的汇总返回 

设定一个最小值600,但取最大值

cmp edi,eax

cmovl edi,eax

所以要修改的话,可以改mov eax,00000258 

这里然后将 lea eax,[edi-64] 这行代码置空即可

当然,综合分析之后,我们应该更进一步,直接改加密的攻速数据.


应当如下:

假设ebx是人物地址

mov edx,10 //最大值是 FF 也就是255

movzx ecx,byte ptr [gamesvr.exe+1CEA26]

call gamesvr.exe+D4190 // 加密函数

mov byte ptr[ebx+40],al 

// 如果有错,就用 mov word ptr[ebx+40],ax, 

但绝不是 mov [ebx+40],eax 长度太大会窜改其它数据

攻速,在C端也有限制,所以仅修改服务器上的代码,是不起直接作用的.

想真正发挥效用,就得用我这个加密方法来修改,

并小退存档,数据同步到C端后,才会起效用

总结就是,人物(物品也类似)部分数据的加密和解密函数是固定的,

按数据的不同,有其相应的密钥,获取到这2个数据,就就能解密加密所有的数据

至于移动速度,也是类似攻速,请自己找出加密的密钥吧。

什么攻击力,血量等等,当然也是如此




浅谈数据的加密解密的评论 (共 条)

分享到微博请遵守国家法律