邪恶叔 发表于 2016-9-29 18:28:04

用16进制还原中文加密地图

首先 用魔兽测试这个地图 我们先拿第一个 系统的 “系” 做实验 打开这个工具 并输入:系可以看见“系”的16进制是E7B3BB 然后用010editor打开试验成功的war3map.j 之后 删除引号前面(包括引号)的16进制数值 接下来搜索-$BEBEBC3*$92E3-0xE158BB82这个公式说到这里可能有人要问为什么要搜索-$BEBEBC3*$92E3-0xE158BB82? 因为中文加密把utf8汉字拆解成3个字节,每个字节 1个16进制值,因此用字符串连接起来就是汉字utf8的16进制值如图所示E7+-$BEBEBC3*$92E3-0xE158BB82+BB=E7B3BB(16进制)=系 怎么解-$BEBEBC3*$92E3-0xE158BB82这个公式?打开系统自带的计算器选择程序员计算方式然后选择双字(注意 一定是双字!)-$BEBEBC3*$92E3-0xE158BB82($和0x是16进制的标识符 所以过滤掉)=-BEBEBC3*92E3-E158BB82=-6D71EA743E9-E158BB82(由于-6D71EA743E9的16进制溢出 所以取后面8位 也就是-1EA743E9)=-1EA743E9-E158BB82(换算成10进制)=-514278377-(-514278526)= 514278377+514278526=149 然后根据这个触发函数定义 每次算出公式的值得-1149-1=148 148是个什么东东? 又不等于B3 148正是全局字符串(string SYR_Zk)里第148字节位置的B3 =====================分割线=====================如果你懂上面内容了可能会问SYR_Zf($B5F3FD67-StringHash(""))这种公式怎么解?打开字符串转哈希值.exe(软件用E语言制作 杀毒软件可能会误报 信任即可) 再用010editor 选择StringHash括号内数值 复制粘帖在字符串那里即可然后套公式计算 B5F3FD67-StringHash("")=-1242301081-(-1242301218)=-1242301081+1242301218=137再137-1=136就是全局字符串(string SYR_Zk)里第136字节的位置
页: [1]
查看完整版本: 用16进制还原中文加密地图