百度搜索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了