请问各位大神,网上是否有可以批量生成垃圾代码,增加代码量的工具呢?
本人小白,最近在学习C#的混淆加壳资料,发现大多数的混淆和加壳工具都是针对exe和dll文件进行加密的。
通过工具脱壳反编译后,源码基本都可以看的到,破解成本很低。
所以我想通过在C#源码中添加大量垃圾代码来隐藏实际代码,然后再经过混淆加密,相对而言增加了破解的成本。
这些垃圾代码可以自己写,不过工作量有点大,所以想问问是否有适合的工具来生成大量的垃圾代码呢?
8 个解决方案
#1
建议你使用表达式树在运行时产生代码,这样调试非常困难。
#2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Expression<Action<int, int>> CalcSum100 = null;
CalcSum100 = (i, sum) => (i > 100 ? (Expression<Action>)(() => Console.WriteLine(sum)) : (Expression<Action>)(() => CalcSum100.Compile()(i + 1, sum + i))).Compile()();
CalcSum100.Compile()(1, 0);
}
}
}
比如这是计算1+2+...+100的代码,你反编译看看
#3
牛逼!
#4
我用ILSpy (版本2.4.0.1963)成功反编译了啊
#5
#6
垃圾代码并没有什么用,看代码的时候难道还一行行琢磨么?
#7
确实没有什么难度
#8
我用reflector反编译,还是可以直接看到源码的。 不过利用这样形式把代码简单代码复杂化,好像也是一个方法。
#1
建议你使用表达式树在运行时产生代码,这样调试非常困难。
#2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Expression<Action<int, int>> CalcSum100 = null;
CalcSum100 = (i, sum) => (i > 100 ? (Expression<Action>)(() => Console.WriteLine(sum)) : (Expression<Action>)(() => CalcSum100.Compile()(i + 1, sum + i))).Compile()();
CalcSum100.Compile()(1, 0);
}
}
}
比如这是计算1+2+...+100的代码,你反编译看看
#3
牛逼!
#4
我用ILSpy (版本2.4.0.1963)成功反编译了啊
#5
#6
垃圾代码并没有什么用,看代码的时候难道还一行行琢磨么?
#7
确实没有什么难度
#8
我用reflector反编译,还是可以直接看到源码的。 不过利用这样形式把代码简单代码复杂化,好像也是一个方法。