当前位置: 首页 > news >正文

电子政务与网站建设的经验wordpress显示评论列表

电子政务与网站建设的经验,wordpress显示评论列表,大同滕佳科技网站建设,通过qq群可以进行友情链接交换本文来安利大家 Obfuscar 这个好用的基于 MIT 协议开源的混淆工具。这是一个非常老牌的混淆工具#xff0c;从 2014 年就对外分发#xff0c;如今已有累计 495.5K 的 nuget 下载量。而且此工具也在不断持续迭代更新#xff0c;完全支持 dotnet 6 版本#xff0c;对 WPF 和 … 本文来安利大家 Obfuscar 这个好用的基于 MIT 协议开源的混淆工具。这是一个非常老牌的混淆工具从 2014 年就对外分发如今已有累计 495.5K 的 nuget 下载量。而且此工具也在不断持续迭代更新完全支持 dotnet 6 版本对 WPF 和 WinForms 等等的支持也是非常好支持多个不同混淆方式和等级的配置支持混淆之后生成符号文件。本文将来告诉大家如何使用此混淆工具以及此工具能达成的效果和此工具混淆的原理开源此工具是由 Lex Li 主导开发的在 GitHub 上使用 MIT 最友好协议开源开源地址是 https://github.com/obfuscar/obfuscar使用方法此工具的使用方式有多个不同的方式比较推荐的是采用 dotnet tool 的方式进行使用。因为使用 dotnet tool 可以非常方便接入自己已有的 CI CD 上而且也可以实现非常方便的更新逻辑按照约定使用 dotnet tool 的第一步是进行安装安装的方法就是在命令行输入以下代码dotnet tool install --global Obfuscar.GlobalTool如此即可完成安装。安装完成之后的使用方法是调用 obfuscar.console 命令传入混淆配置 Obfuscar.xml 文件即可如下面命令行例子obfuscar.console Obfuscar.xml也就是说最关键的只有两点第一个就是命令行的工作路径另一个就是混淆配置 Obfuscar.xml 文件假定我有一个项目是 HeenerholiCeleehano 项目此项目我需要对他进行混淆。此项目输出的是 HeenerholiCeleehano.dll 文件放在 C:\lindexi\Code\lindexi\HeenerholiCeleehano\HeenerholiCeleehano\bin\Release\net6.0-windows\ 文件夹下那么在混淆之前请设置好命令行的工作路径如使用 cd 命令进入到输出文件夹如以下命令cd C\lindexi\Code\lindexi\HeenerholiCeleehano\HeenerholiCeleehano\bin\Release\net6.0-windows\接下来是要在 C:\lindexi\Code\lindexi\HeenerholiCeleehano\HeenerholiCeleehano\bin\Release\net6.0-windows\ 文件夹下放一个混淆配置 Obfuscar.xml 文件文件内容可以是如下?xml version1.0? ObfuscatorVar nameInPath value. /Var nameOutPath value.\Obfuscar /Var nameKeepPublicApi valuetrue /Var nameHidePrivateApi valuetrue /Var nameHideStrings valuefalse /Var nameUseUnicodeNames valuetrue /Var nameReuseNames valuetrue /Var nameRenameFields valuetrue /Var nameRegenerateDebugInfo valuetrue /Module file$(InPath)\HeenerholiCeleehano.dll /AssemblySearchPath pathC:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\6.0.1\ /AssemblySearchPath pathC:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.1\ / /Obfuscator以上配置文件的含义如下我一一带上注释标识?xml version1.0? Obfuscator!-- 输入的工作路径采用如约定的 Windows 下的路径表示法如以下表示当前工作路径 --!-- 推荐使用当前工作路径因为 DLL 的混淆过程需要找到 DLL 的所有依赖。刚好当前工作路径下基本都能满足条件 --Var nameInPath value. /!-- 混淆之后的输出路径如下面代码设置为当前工作路径下的 Obfuscar 文件夹 --!-- 混淆完成之后的新 DLL 将会存放在此文件夹里 --Var nameOutPath value.\Obfuscar /!-- 以下的都是细节的配置配置如何进行混淆 --!-- 使用 KeepPublicApi 配置是否保持公开的 API 不进行混淆签名如公开的类型公开的方法等等就不进行混淆签名了 --!-- 语法的写法就是 name 表示某个开关而 value 表示值 --!-- 对于大部分的库来说设置公开的 API 不进行混淆是符合预期的 --Var nameKeepPublicApi valuetrue /!-- 设置 HidePrivateApi 为 true 表示对于私有的 API 进行隐藏隐藏也就是混淆的意思 --!-- 可以通过后续的配置设置混淆的方式例如使用 ABC 字符替换或者使用不可见的 Unicode 代替 --Var nameHidePrivateApi valuetrue /!-- 设置 HideStrings 为 true 可以设置是否将使用的字符串进行二次编码 --!-- 由于进行二次编码将会稍微伤一点点性能二次编码需要在运行的时候调用 Encoding 进行转换为字符串 --Var nameHideStrings valuefalse /!-- 设置 UseUnicodeNames 为 true 表示使用不可见的 Unicode 字符代替原有的命名通过此配置可以让反编译看到的类和命名空间和成员等内容都是不可见的字符 --Var nameUseUnicodeNames valuetrue /!-- 是否复用命名设置为 true 的时候将会复用命名如在不同的类型里面对字段进行混淆那么不同的类型的字段可以是重名的 --!-- 设置为 false 的时候全局将不会有重复的命名 --Var nameReuseNames valuetrue /!-- 配置是否需要重命名字段默认配置了 HidePrivateApi 为 true 将都会打开重命名字段因此这个配置的存在只是用来配置为 false 表示不要重命名字段 --Var nameRenameFields valuetrue /!-- 是否需要重新生成调试信息生成 PDB 符号文件 --Var nameRegenerateDebugInfo valuetrue /!-- 需要进行混淆的程序集可以传入很多个如传入一排排 --!-- Module file$(InPath)\Lib1.dll / --!-- Module file$(InPath)\Lib2.dll / --Module file$(InPath)\HeenerholiCeleehano.dll /!-- 程序集的引用加载路径对于 dotnet 6 应用特别是 WPF 或 WinForms 项目是需要特别指定引用加载路径的 --!-- 这里有一个小的需要敲黑板的知识点应该让 Microsoft.WindowsDesktop.App 放在 Microsoft.NETCore.App 之前 --!-- 对于部分项目如果没有找到如下顺序将会在混淆过程中将某些程序集解析为旧版本从而失败 --AssemblySearchPath pathC:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\6.0.1\ /AssemblySearchPath pathC:\Program Files\dotnet\shared\Microsoft.NETCore.App\6.0.1\ / /Obfuscator详细的配置还请参阅官方文档执行如上的命令行进行混淆即可实现命名混淆效果使用 dotPeek 反编译可以看到字段被混淆为如下内容private readonly int \u00A0;private readonly short \u00A0;这里需要复习一下 IL 的知识在 IL 里面是允许不同的字段重名的只要字段的类型不相同即可。因为使用的时候是用类型名加字段名的方式使用的。这也能让代码更加混淆以上就是我推荐的使用 dotnet tool 的方式除了使用 dotnet tool 的方式之外还可以自己将混淆过程嵌入到构建过程里面如此可以实现在开发阶段对混淆的结果进行调试。也就是开发时调试的 DLL 就是混淆过后的使用构建过程的方式需要编辑一下 csproj 项目文件先在项目文件使用下面代码安装 Obfuscar 库代码如下ItemGroupPackageReference IncludeObfuscar Version2.2.33PrivateAssetsall/PrivateAssetsIncludeAssetsruntime; build; native; contentfiles; analyzers; buildtransitive/IncludeAssets/PackageReference/ItemGroup在需要写构建过程下预计实际需求都是千奇百怪的很难有统一的方式本文只是提供一个简单的例子完成安装之后在项目上放一个混淆配置 Obfuscar.xml 文件设置此文件如果较新则输出ItemGroupNone UpdateObfuscar.xmlCopyToOutputDirectoryPreserveNewest/CopyToOutputDirectory/None/ItemGroup最后编写一个 Target 用来在构建完成之后调用命令行进行混淆代码如下Target NameObfuscarTask AfterTargetsAfterBuildPropertyGroupObfuscateCommand$(Obfuscar) Obfuscar.xml/ObfuscateCommand/PropertyGroupExec WorkingDirectory$(OutputPath) Command$(ObfuscateCommand) //Target如此即可实现在构建完成之后自动调用以上的代码放在 github 和 gitee 欢迎访问可以通过如下方式获取本文的源代码先创建一个空文件夹接着使用命令行 cd 命令进入此空文件夹在命令行里面输入以下代码即可获取到本文的代码git init git remote add origin https://gitee.com/lindexi/lindexi_gd.git git pull origin b0b402abe4f32008d383d984bff677ac45cccde8以上使用的是 gitee 的源如果 gitee 不能访问请替换为 github 的源git remote remove origin git remote add origin https://github.com/lindexi/lindexi_gd.git获取代码之后进入 HeenerholiCeleehano 文件夹以上代码的混淆配置 Obfuscar.xml 文件里使用的程序集引用路径写的是 C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\6.0.1\ 路径这是因为代码是之前写的博客是鸽子很久才写的还请大家自行更新混淆原理此混淆工具底层使用 Mono.Cecil 进行程序集的读取和编织使用 Mono.Cecil 可以读取出程序集的信息从读取到的信息进行更改更改也就是混淆的核心逻辑更改完成之后再通过 Mono.Cecil 生成新的程序集文件如此即可完成混淆此工具在 GitHub 上完全开源请看 https://github.com/obfuscar/obfuscar更多细节逻辑还请自己去阅读源代码更多阅读其他的混淆工具还有非常多可以从 https://github.com/NotPrab/.NET-Obfuscator 找到更多的混淆工具列表当然有混淆工具也就有反混淆工具。可以从 https://github.com/NotPrab/.NET-Deobfuscator 找到更多反混淆列表
http://www.zqtcl.cn/news/266054/

相关文章:

  • 临海高端营销型网站建设地址免费网站alexa排名查询
  • 做企业网站的轻量级cms建设电子商务网站流程图
  • 淘宝网站设计分析国内在线免费服务器
  • wordpress网站文章加密网站建设 博采网络
  • 哪个网站做美食好一点网络运维个人工作总结
  • 做网红用哪个网站教人做策划的网站
  • 百度免费网站怎样建设wordpress模板目录结构
  • 长沙简单的网站建设公司wordpress+手机应用
  • 用spl做网站wordpress不用缓存
  • 微网站模板标签网站被攻击怎么让百度重新蜘蛛自动抓
  • 自己想做一个网站网页背景怎么设置
  • 国外做项目的网站软件定制外包平台
  • 做网站要用什么软件房地产建设网站
  • 龙岗爱联有学网站建设装饰公司简介
  • pc端网站怎么做自适应哪个公司网站备案快
  • 品牌网站建设黑白I狼J烟台开发区建设业联合网站
  • 做视频网站可以自学吗php html5企业网站源码
  • 阿里云怎么部署网站引流推广平台是什么意思
  • 江山建设工程信息网站营销网讯
  • 网站制作公司 沈阳上海建设主管部门网站
  • 网站建设前期如何做好市场定位分析网络推广主要工作内容
  • 做一个网站的流程是什么金融网站建设方案
  • 汽车维修保养网站模板北京网站建设知名公司排名
  • 网站建设案例分享网络推广网
  • 广州知名网站推广app软件开发制作公司电话
  • 泉州专业网站建设seo是指什么职位
  • 怎么做房产网站张家港高端网站制作
  • 做网站运营公司收费广东短视频seo搜索哪家好
  • 外贸网站 源码做的好详情页网站
  • 冀州网站制作邢台百姓网官网