基本思想是把C#代码生成的dll 加密一下 无法直接破1解dll,但是由于二进制加密代码是写在mono 里面的,拿到一样很容易破1解,

1.层次1:

加密C#生成的dll

2.层次2

加密修改mono了时候的so dll什么的

先实现第一层次的windows 版本:

1.下载mono源代码  https://github.com/Unity-Technologies/mono/tree/unity-5.6

2.用vs2010 sp1(一定要用这个版本) 编译msvc/mono.sln 输出后的文件在下的

mono-unity-5.6\builds\embedruntimes\win32\mono.dll

3.二次处理 dll buffer 的函数是 image.c 的mono_image_open_from_data_with_name 可在这里面实现解密

然后替换即可

小提示: 如果编译期间出现glib-2.0.lib 找不到 那么把生成的eglib.lib 重命名为 glib-2.0.lib

一些其他的gtk lib 网上下载2.0 版本即可