C#代码混淆

所需积分/C币:50 2017-07-28 11:14:28 803KB PDF
收藏 收藏
举报

使用C#开发的程序很容易被反编译,这里简单了解了下C#代码混淆的手段。Dotfuscator可以对函数和类进行字符串混淆,得到a、b、c、d等无意义的名字,可以对反编译与代码阅读造成困难,增加反编译的成本。
1 Dotfuscator 1安装 最近的工作需要使用Ⅴ isual studio混淆C#代码,增加反编译的成本。本来代码混淆与 反编译就是道高一尺魔高一丈的事情,很难说能做到滴水不漏。这个笔记简单记录如何做基 本混淆,算是给代码稍微加一些保护。 搜索Ⅴ isual Studio关于代码混淆的资料,发现其有自带的工具,即 Dotfuscator。该工 具是PreEmptive开发的,其宫网为htps:/www.preemptive.com/ PreEmptive Solutions PRODJC15 SLPPRI SOLUI IONS COMPANY The best way to stop dot/. hackers is before for. NDT/ Amarin/UWP/Unity3D they start. 4 out of 5 Fortune 500s rely on PreEmptive to sh0 guard their software IP and harden their apps or Java/ Androi d/ s t fraud, hacks and theft Pre Emptive Protection Learn Mor for ios 这个工具说是自带的是因为以前的版本是直接安装的,在Viua| Studio2017中没有直 接安装该工具,需要在 sual studio的联机项搜索并下载安装 扩展和更新 排子依石关 联机 Dotfuscator- PreEmptive Protection bfuscatcr App Self Protector for. NET 创建者 PreEmptive Solutions 4 visua Studio Marketplace Xamarn, UWP and Unity Apps. Lsed by over N:14385 评级★★★★(17投卖 细信是 向 Microsoft报按扩晨 该工具是收费的,一般使用的话可以下载社区版并注册账号。安装居然失败了 FF VSIX Installer 安装共败 安装无法将此扩展安装到所有选定的产品。有关详细信息,请单击 对话框底部的安装日志链接。 此包不包含扩展清单( zh-Hans/ zh-Hans\ License.txd中走 的软件许可协议 看家装系 关闭C 翻看官网文档,发现可以在 Visual studio installer中选择 正在修改 isual Studio Enterprise2017-15.2(26430.16) 工作负载单个组件语言包 实时依项验证 适用于 Visual stud的GHub扩展 适用于 Windows的Git 文本模板转换 Clickonce发布 Developer Analytics Tools √DGML编辑器 Help viewer LINQ to SQL工具 √ NuGet包管理器 Powershe具 PreEmptive Protection -Dotfuscator 调和测试式 编码的U测试 □则试工具核心功能 安装完成后可以看的已经有该工具项了 队(M)工目①测过(5)分析N窗M帮助H 乌扩展和更新(U 下连接至数据库D) 「〓连接到服务器(S Web代码分析 口代码片段管理器 Ctrl+K, Ctrl+B 选择工目箱项 NuGe包管理器(N PreEmptive Protection-Dotfuscator 创建 GUID(G 错误查找K Spy++(+) 外部工具(E 导入和导出设置(, 目是义(C 12基础介绍 注册后直接在工具栏找到 Dotfuscator打开 O PreEmptive Dot sator CE-Dotfuscatorl xm 文件(查看)生成{B)工具①帮助 1H幽p·叫 睡开始 最新版本: Dotfuscatcr ce5.300- Re ease Date May2017 Dotfuecator 1 圆入 感谢您注册 最新新闻 目厘性 当互置选项 Automati E Analytic 注册后可享受多项好处,包括 Wednesday 目重命名 命令行支持:这质需求里最大的cE功能将归您所有:将 Harden 字符串加密 Dotfuscator ce隼成到您的生成进程中 Wednesday 移除 链接 Dotfuscat E premade 更新和修补程序=在Bug修复和新力能推出时即刻取 Wednesday 开始使用需要根据官方文档来其地址为 https://www.preemptive.com/dotfuscator/ce/docs/help/gui_getstarted.html 文档介绍说 Dotfuscator项目是用xm标记的,也就是上面截图直接打开的时候就生成了 个新项目。点击输入 文件(查看生成)工具①帮助(出 口曰"幽則e 峰开始 O Dotfuscator1 输入 输入 目属性 4白配置选项 +×A白 国 Analytics 国重命名 控制流 目字符率加密 目移隆 目链接 目 PreMark 婴结果 添加一个d!或者exe文件 Dace\csharp\ TestMd5\ TestMd5\bin\ Debug\TestMd5exe 这是C的一个测试MD5的程序,在这里作为示例。点击该eXe会在右侧显示其基本信 性 考感检测特性(N 考虑模糊处理特性( 四库欖 √去除检测持性(S) 芸除模糊处理特性(P) v转换 XAMLT 输入信息 文件名: TestMd5 文件入路径:D: workspace\csharp\TestMd5 TestEd5 文件扩惡路径:D: workspace\csharp\ TestMd5 TestEd5 文件大小 5 KB 修攻日期 017/6/2415:28:39 版本; 1.000 这里由于是社区版无法对检测特性的两个选项进行修改。更具体的属性需要点击属性页 查看 项目属性 外部雷性( 程序集加载路径厘性 值 功能职射字符 pplicationdir CA\Program Files(x86 \Microsoft Visual Studid2017 Enterprise\Commo appdatadir C:Program Filer(x86)Microsoft Visual Studio \2017\Enterprise, Commor 生成置 生成事件 签名 顶目匾性(P 首先是项目属性,这里可以说是替换规则宏,可以作为模板控制多项目的配置。然后是 外部属性,该部分是只读的,主要是三个目录: application是 Dotfuscator的安装目录 appdatadir是 Dotfuscator本地数据目录, confider是当前项目所在的目录。最后是项目属 性,允许任意附加属性定义和值。这意味着可以构建引用第三方程序集的项目而不包含这些 程序集到项目中。 然后是程序集加载路径。该部分属于专业版特有,可以指定磁盘第三方程序集的位置 然后是功能映射字符申。在社区版中,该部分是唯一的可用特性,可用重命名等。 生成设置是设置一些路径的,包括临时目录和目标目录。生成配置中,仅做调查勾选的 话则没有程序集或者包的写出。发出调试信号勾选会将调试信息输出,这个选项在社区版中 无法勾选。 生成事件可用自定义预生成和后生成事件,允许在处理输入的前后执行指定的程序。 签名支持强名称程序集的自动重新签名,允许对已处理的程序集进行签名或重新签名 并允许使用 Authenticode数字签名选项。该特性社区版不支持 3重命名配置 由于NET应用程序被编译为中间语言,因此可用通过反编译工具轻易地对它们进行反 向工程 PreEmptive Dotfuscator CE通过重命名转换加大了对应用程序进行反向工程的难度, 从而保护知识产权。另外页提供了 Dotfuscator professional edition以满足要求最高的保护 和分析级别的组织和开发人员的需求。此版本通过添加控制流模糊处理、字符串加密、篡改 检测/报告、 Enhanced overload- nduction重命名和其他转换,使得反向工程变得更为困难。 此外,此版本还提供了应用程序打包、修剪、链接、存储期限、完整分析等更多功能 由于编码技术种类繁多(例如反射和数据绑定等功能的某些应用),一些标识符无法重 命名。因此,必须保留某些名称才能保留应用程序的功能。 PreEmptive Dorfuscator将自动 处理此问题的很多方面,并允许我们配置适用于我们的特定应用程序的其他排除规则。内置 规则是一组预配置重命名排除规则,适用于特定类型的应用程序或技术。每个规则包含一个 说明,且可用独立使用。智能模糊处理将分析代码的上下文,并尝试设置针对某些需要保留 标识符的情况的排除规则。智能模糊处理有时候会识别出其无法完全解决的有问題的模式 并发出警告来指示可能需要自定义排除规则。我们可用添加自己的排除规则以处理我们的应 用程序的特定情况。可通过选中输入树视图中的元素来指定特定的排除规则。还可以定义自 定义排除规则,以排除更多的选定项目而无需单独选中每个要排除的项目。可将规则定义为 根据命名空间、类、方法和字段的确切名称或正则表达式来排除这些项目。我们可用通过单 击预览按钮随时预览我们的自定义规则的累计效果。我们可用通过右击某个特定规则并选中 预览来预览该规则的效果。 排除页允许你排除要重命名的代码项。当这些代码项被其他脚本中被引用可能需要这么 做。这里界面会分为两部分,左侧是代码树,右侧是选项。如果勾选某个代码项,那么其不 会被混淆,也就是被排除了。也可以使用规则定义排除项,就在右侧的规则树中 Getting Started Check below to exclude specific items: Add custom exclusion rules below Exclusions 4 L-O S(configdir)\Helloworld.exe a System Reflection Assembly CompanyAttrib v tregex= "true" excludetype="true" speclist=", "applytoderi Built-in Rules a System Reflection Assembly Configuration sAy a System Reflection Assembly CopyrightAttrt v(regex="true" specis=",""signature=",""1 Options a System Reflection Assembly ProductAttribut a System Reflection Assembly TitleAttribute a System Reflection Assembly TrademarkAttri a System. Runtime CompilerServices. Compilat a System. Runtime CompilerServices Runtime Add Namespace Add TypeDeletePreview ∠口 Hello. exe □(He J Regular Expression 4 8s Friendly 口 Exclude Type Attribute specifier. vctor: void(string) a sAy Goodbye: void (string) Name +abstract as myName: string Signature +assemb t口Name assembly 前面说的勾选就是对特定项进行排除,当然除此之外还能对排除项设定规则统一排除。 这里新建规则 曰LJ T v [regex=true"excludetype="true speclist="." applytoderi 添加命名空间N][添加类型m」删除①]预P 正则表达式國排除关型 应用于派生关型A 特性说明符(A 名称M:Type abstract 签名S abstract Enum 回1。 右下角的特性说明符可用通过 contro键加单击来选择,比如 clist="-abstract, tenumapplytoderivedtypes="fal ][添美类型|[删赊」预览巴 √排除类型 坐A 符性说明符A tabs bstract 勾选之后上面的 speclist也会随之改变。 以上做的属于顶级操作,即添加命名空间或者类型进行排除,如果是要次级排除,可用 再点击 Add field, Add Method等。删除规则只要再其上右击选择 Delete即可。预览点击 后会再左侧的代码树上看到哪些勾选也就是会被排除的 使用“重命名排除"选项卡,您可以确定要从重命名过程中排除程序的哪些部分。您可以 通过浏览导航树并选中相应的项来从重命名操作中排除这些项。 使用“重命名排除"选项卡可以对希望从重命名过程中排除的所有程序部分进行完全精 细的控制。 您可以通过浏览应用程序的树视图并选中要排除的项来从重命名操作中排除特定的项。 此外,您还可以直观地创建您自己的自定义规则来选择要排除的多个项 可以定义自定义规则来选择排除较多的项,而不需要在树视图中分别选择这些要排除的 项。可以定义规则来基于名称排除命名空间、类、方法、属性、事件以及字段。此外,还可 以使用正则表达式来指定一种模式,与该模式匹配的所有项都将从模糊处理操作中排除。 为了微调排除规则,您可以随时通过单击“预览"按钮来预览其累积效果。应用程序树视 图会隐藏所有选定要排除的项。 要预览特定规则,请右击要查看其效果的规则,选择“预览”, Dotfuscator将突出显示根 据该规则要排除的项。 排除命名空间会排除指定命名空间中的所有类型及其成员。要排除命名空间,请选择“添 命名空间”按钮,然后在“名称”字段中输入要排除的命名空间的名称。如果您希望使用正则 表达式来匹配多个命名空间,请确保“正则表达式"框处于选中状态,并且“名称"字段包含您 要匹配的正则表达式。

...展开详情
试读 13P C#代码混淆
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
a445612838 差评,只是一个pdf介绍文档
2018-01-31
回复
差评接受,csdn改版分数这么高不是我原来设置的一两分,而且无法重新编辑。另外代码混淆是项目临时要求研究的,浅显确实是的,但是保证都是自己做一遍记录的,不是随便拉别人的介绍文档放这里赚积分
不是我抢积分,我积分够用的,只是设置一两分算是给伸手党加一点门槛。这个csdn不知道搞什么鬼,我的积分设置都被改掉了,让别人花冤枉分,还无法重新设置。这个我现在感觉是csdn想强推自己的vip下载,一两年前的资源分数暴涨,我还有几个资源被设置成了50分。目前新上传的资源都是一两分,最高也不能设置过5分。这里12分确实是csdn的锅,内容浅显是我的锅,我对c#代码混淆是项目要求简单学习了下,记录下来供大家参考学习的
上传资源赚积分or赚钱
最新推荐
C#代码混淆 50积分/C币 立即下载
1/13
C#代码混淆第1页
C#代码混淆第2页
C#代码混淆第3页

试读结束, 可继续读1页

50积分/C币 立即下载 >