怎么给软件加壳防止反编译
Ⅰ 如何防止Unity3D代码被反编译
根本的解决办法是:先对DLL加密,然后在Unity的源码中加载程序DLL之前进行解密。
这就需要通过逆向工程获得配枝相应培拍敏的Unity源码或贺顷者是直接向Unity购买Source Code License。
Ⅱ c# 代码加壳软件或者混淆器哪个比较好,能防止反编译的。跪求
现在最好的是
1.DNGuard HVM 这个是基于内核级别的加密。不会让IL代码被反编译或被从内存中剥离。
2. IL Protected
这个两个都比较好。其余的都很垃圾,
————————————————————————————————————
Dotfuscator VS默认带的工具,不过是个社区版 强度不大
dotNET Reactor 使用了NativeCode 和混淆的形式 ,可从内存中剥离
Xenocode Postbuild 专业工具,还是比较可以的,但是要看你怎么用
{smartassembly}.Setup.msi 这个是 RedGate出品的,
————————————————————————————————————
除了我说的第一、第二个工具,你可以尝试用其他的工具混淆加密,然后把你的测试程序发给我,我可以完美破解。都是亲身测试过的。
Ⅲ c#防止反编译,如何将exe文件做成资源文件(加壳)
1.新建一个项目(所谓的壳)。命名为Test 2.将要加壳的程序test.exe文件做成资源文件防在Test文件中。 打开新建的项目Test,双击最右侧的Solution Explorer的第一个按钮Properties。 会出现这个画面 然后点击Resourse-AddResource-添加现有资源,就将你要添加的test.exe添加进去,然后再solution Explorer中会生成一个文件夹 Resource你的test文件就在那里念漏面,然后右键test.exe的属性将他改为嵌入的资源即(Embedded Resource),然后就搞定了。 3.之后将新建的项目Form1删除, 将Programma.cs打开替换成以下禅高扰代码 [STAThread] static void Main(string[] args){ String projectName = Assembly.GetExecutingAssembly().GetName().Name.ToString(); Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStrea m(projectName + ".Resources" + ".test.exe"); byte[] bs = new byte[stream.Length]; stream.Read(bs, 0, (int)stream.Length); Assembly asm = Assembly.Load(bs); MethodInfo info = asm.EntryPoint; ParameterInfo[] parameters = info.GetParameters(); if ((parameters != null) && (parameters.Length0)) info.Invoke(null, (object[])args);else info.Invoke(null, null);}大功告成了。 新生成的贺旦test.exe会打开你导入的exe文件,这样当别人用反编译软件的时候,他只是显示你新建的项目中的Programma。cs中的代码。
Ⅳ 如何防止Unity3D代码被反编译
在Unity3D中,代码会编译到Assembly-CSharp.dll。基于以上两点,代码的保护有以下三种:
第一种是对代码进行混淆,诸如混淆软件CodeGuard、CryptoObfuscator、de4dot
第二种是对Assembly-CSharp.dll进行加密后,重新对mono进行编译。
Virbox Protector直接进行加壳后,无需手动编译mono,能防止反编译。