百度搜索unity dll 加密会出来很多加密的方式,其中有一种就是改mz头, 这里借用下unity大神雨松的图片

data是Assembly-CSharp.dll中的内容,上面代码的意思就是让data[0]这个字节-1
下面我们用reflector来打开某游戏dll来看看

会发现反编译失败,错误提示是这个dll不包含mz头文件, 然后我们用文本打开看看

nz?
在ASCII码中L是92 M是93 N是94(最下方有ASCII表)
这个可以当成一个简单的算术题来做
加密方式data[0]-1 正常第一位是M,M的ASCII码是93 93-1是92 去ASCII码查一下知道92表示的是L
加密方式data[0]+1 正常第一位是M,M的ASCII码是93 93+1是94 去ASCII码查一下知道94表示的是M
这个nz明显就是做了加法
我们这里直接打开到文本改成MZ就Ok了
还有一种方式是改文件的hex代码
我们用vs选择二进制的方式打开这个加密的dll

把4E 5A改成4D 5A就ok了,然后拽到reflector里就ok了


本文介绍了Unity游戏开发中DLL文件的一种常见加密方式及其破解方法,包括通过修改文件头部的MZ标识来绕过加密,使用文本编辑器或二进制编辑工具进行修改。

318





