首先解密第一组加密的文本,第一个0x9c指针为需要用到的解密表,这个表已从内存dump出来了,应该是通用的,下载附件就可以了
从第一个指针区0x65240开始,读取一个4字节指针,然后该指针加上文本区首地址也就是130,所以第一段加密文本就是从130开始的
在0x130处,从0x6d开始解密,过程如下
0 先初始化一个int 变量r0=0xffffffff
1 初始化一个int 变量r14=0x17D(0x17D为常量值)
2 判断r0的值是否为ffffffff
是的话读取文本加密区一个字节(0x6d)(这个地址每次递增+1),并且初始化r0=7
不是的话直接到第3步
3 判断该字节的第r0 bit位是0还是1(其实就是从最高bit到最低bit,一共8次)
为0,则从(r14*0xc)+4的解密表里面读取一个int到r14(变量)
为1,则从(r14*0xc)+8的解密表里面读取一个int到r14(变量)
4 r0--,递减
5 判断r14的值是否大于0xff,如果是,则返回到第2步
6 r14的值小于等于0xff,把r14以字节的显示写入到解密地址
7 判断解密完的最后2个字节是否为fff0,不是的话跳到第1步,是的话结束循环
以上就是一段文本的解密流程,一段文本可能是一句话也可能是N句话
因为原文里面是针对每一段文本单独加密的,所以如果需要汉化的话最好也是对每一段文本做单独处理,这样后期加密导入打包的时候也方便点,10楼那个附件是整合在一起解密的,只能做参考处理
[ 此帖被YZB在2022-07-21 09:30重新编辑 ]