有什么工具可以批量生成垃圾代码吗?

Shay2016 2016-10-17 08:17:55

请问各位大神,网上是否有可以批量生成垃圾代码,增加代码量的工具呢?

本人小白,最近在学习C#的混淆加壳资料,发现大多数的混淆和加壳工具都是针对exe和dll文件进行加密的。
通过工具脱壳反编译后,源码基本都可以看的到,破解成本很低。


所以我想通过在C#源码中添加大量垃圾代码来隐藏实际代码,然后再经过混淆加密,相对而言增加了破解的成本。
这些垃圾代码可以自己写,不过工作量有点大,所以想问问是否有适合的工具来生成大量的垃圾代码呢?

...全文
676 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2016-10-18
  • 打赏
  • 举报
回复
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的代码,你反编译看看
Shay2016 2016-10-18
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
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的代码,你反编译看看
我用reflector反编译,还是可以直接看到源码的。 不过利用这样形式把代码简单代码复杂化,好像也是一个方法。
Justin-Liu 2016-10-18
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
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的代码,你反编译看看
牛逼!
xuzuning 2016-10-18
  • 打赏
  • 举报
回复
确实没有什么难度
Poopaye 2016-10-18
  • 打赏
  • 举报
回复
垃圾代码并没有什么用,看代码的时候难道还一行行琢磨么?
Poopaye 2016-10-18
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
建议你使用表达式树在运行时产生代码,这样调试非常困难。
yidaimu 2016-10-18
  • 打赏
  • 举报
回复
引用 2 楼 caozhy 的回复:
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的代码,你反编译看看
我用ILSpy (版本2.4.0.1963)成功反编译了啊
threenewbee 2016-10-17
  • 打赏
  • 举报
回复
建议你使用表达式树在运行时产生代码,这样调试非常困难。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧