惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
P
Proofpoint News Feed
The Hacker News
The Hacker News
Know Your Adversary
Know Your Adversary
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
AWS News Blog
AWS News Blog
S
Securelist
T
Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
IT之家
IT之家
腾讯CDC
WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
C
Check Point Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Engineering at Meta
Engineering at Meta
Latest news
Latest news
A
About on SuperTechFans
The Register - Security
The Register - Security
L
LINUX DO - 热门话题
T
The Exploit Database - CXSecurity.com
C
Cisco Blogs
T
Tailwind CSS Blog
Simon Willison's Weblog
Simon Willison's Weblog
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
T
Tor Project blog
L
Lohrmann on Cybersecurity
G
GRAHAM CLULEY
B
Blog RSS Feed
Scott Helme
Scott Helme
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
NISL@THU
NISL@THU
P
Privacy International News Feed
Security Latest
Security Latest
Recorded Future
Recorded Future
L
LangChain Blog
Cyberwarzone
Cyberwarzone
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
F
Fortinet All Blogs
O
OpenAI News
T
Threat Research - Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale

博客园 - 上善若水-water

TextBox 的 KeyEventArgs事件触发 【转】- 回车键触发Button按钮事件 【转】- 按回车键实现登录-- JS实现 【转】silverlight中文英文版本不匹配问题解决方法 【转】-ajax中Accordion动态生成菜单代码 【转】大白话之C#系列-- C#委托与事件 【转】【收藏】- LINQ体验(7)——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains 【转】十天学会php【之前收藏,出处未知】 【转】仿google首页下端图片文字导航下载-【之前收藏,出处未知】 【转】Visual Studio 快捷键 【转】10 个强大的开源 Web 流量分析工具 【转】ubuntu下PHP环境搭建 安装HDwiki 【转】 推荐几款功能强大的PHP编辑器 【转】.NET开源项目介绍及资源推荐:日志记录 【转】【ObfusPro 2010】 .NET混淆保护工具发布 【转】工作感言:任务分配及管理 - 上善若水-water - 博客园 OpenExpressApp 框架 ,是一个组合体 【转】Sandcastle----强大的C#文档生成工具 JS 显示/隐藏 的例子 - 上善若水-water
【转】使用Dotfuscator混淆处理融入DotNet ClickOnce发布(超经典,测试已通过,转发的,吐血推荐,不看也收藏了)简称:混淆发布
上善若水-water · 2010-05-29 · via 博客园 - 上善若水-water

出处:http://topic.csdn.net/u/20100117/00/5395816c-2a16-45bb-9a14-b1fb5e367887.html

使用Dotfuscator混淆处理融入DotNet ClickOnce发布(超经典,测试已通过,转发的,吐血推荐,不看也收藏了)简称:混淆发布

1------------2010-01-17 00:55:37

 原文地址:http://www.xzcms.cn/blog.aspx/view/63
我自己测试了,全部通过,太H了

使 Dotfuscator混淆处理融入 DotNet发布

大家可能都已经知道如何使用Dotfuscator作混淆处理,但是可能还不清楚如何将混淆过程融入项目的发布过程中,使其能顺利地通过ClickOnce 项目部署时的hash code的验证。早在2006年有位名为Judah的高人曾在msdn中指出如何将 XenoCode 的混淆处理过程融入到DotNet的项目发布过程中 [ 可以在msdn中以关键字查找 ClickOnce deployment and Dotfuscator ],本文是根据这篇帖子照猫画虎而来的。

首先,在项目文件夹(即项目文件 .csproj 或 .vbproj 所在的目录下)下建立一个名为 temp 的目录,该目录用于临时保存混淆结果文件。

然后,启动Dotfuscator,为要混淆的DotNet项目新建一个Dotfuscator工程。
(1)这里需要注意,选择要混淆的目标文件应该是在DotNet项目的 obj\release目录中的文件,而非 bin\release目录下的那个。
(2)将Dotfuscator的输出路径指到刚才建立的temp目录下,使将来作完混淆的文件保存到该位置。
(3)然后保存Dotfuscator工程到DotNet项目(.csproj 或 .vbproj)所在的目录下,命名为obfuscator。然后关闭 Dotfuscator。

接下来用文本编辑器打开DotNet项目文件(扩展名为 .csproj 或 .vbproj)。在项目文件的尾部你会看到以下注释:
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
……

-->

意思是:欲练此功,必先自Cut! ^_^ 开个玩笑,意思是若想修改编译进程,你可以添加任务到下面一个目标项中,并将其注释解除。存在其它类似的扩展结点,参见 Microsoft.Common.targets。

用下面的xml代码段替换掉这部分注释,或者直接插入到注释上方,紧挨着注释的位置。

<PropertyGroup>
<XenocodeLocation>"C:\Program Files\PreEmptive Solutions\Dotfuscator Professional Edition 4.2\Dotfuscator.exe"</XenocodeLocation>
<XenocodeProjectLocation>"$(ProjectDir)obfuscator.xml"</XenocodeProjectLocation>
<XenocodeOutputLocation>"$(ProjectDir)temp"</XenocodeOutputLocation>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<Target Name="BeforeBuild" Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<CreateProperty Value="true">
<Output TaskParameter="Value" PropertyName="Obfuscate" />
</CreateProperty>
</Target>
<Target Name="AfterCompile" Condition=" '$(Obfuscate)' != '' ">
<Exec Command="$(XenocodeLocation) $(XenocodeProjectLocation)" />
<Copy SourceFiles="$(ProjectDir)temp\$(TargetFileName)" DestinationFiles="$(IntermediateOutputPath)$(TargetFileName)" />
</Target>

(代码段的缩进都没有了,没办法谁叫俺寄人篱下呢。)
其中,
第二行的<XenocodeLocation>标记代表Dotfuscator的启动路径。在应用前,应当改成自己机器上的实际路径。
第三行<XenocodeProjectLocation>标记代表了前面Dotfuscator工程文件所在路径。
第四行<XenocodeOutputLocation>标记代表了混淆后的输出位置。

将上面Dotfuscator的路径改成自己机器上Dotfuscator的安装路径后,其它的应该不用改了。保存项目文件的更改。
这样每当在发布项目时,项目中的敏感文件就被混淆,而且文件也将有正确 Hash Code,所以在“一键部署”(ClickOnce Deployment)时也能通过验证。

注意 xml 文档的格式,在从网页复制到文本编辑器的过程中,可能会出现问题。应检查文档中尖括号还是不是半角的尖括号了,内容是否与看到的内容相符。空格还是不是半角的空格等等。
还有,应当保证Dotfuscator项目在创建时(在UI界面下)能够成功完成混淆后才能保证其在命令行情况下也能顺利完成混淆。否则,有可能在dotNet项目的发布过程中出现Dotfuscator返回-1的错误。说明,混淆过程没能成功完成。

太H了,不好意思,我太澎湃了。

2------------2010-01-17 02:28:59

有点遗憾,多个项目的时候失败了。

期待CSDN的高手完善。

3------------2010-01-17 04:35:28

OK,哥们自己搞定了

多项目需要注意2点
1,用 Dotfuscator 建立混淆项目文件的时候,选择所有需要混淆的程序集,还是保存为 obfuscator.xml,位置也不变
2,添加 N(程序集个数总和-1)个拷贝文件的代码,假设我还有一个名为 HRD.dll 的net程序集
  <Target Name="AfterCompile" Condition=" '$(Obfuscate)' != '' ">
  <Exec Command="$(XenocodeLocation) $(XenocodeProjectLocation)" />
  <Copy SourceFiles="$(ProjectDir)temp\$(TargetFileName)" DestinationFiles="$(IntermediateOutputPath)$(TargetFileName)" />
//注视语句,下面是单独拷贝 HRD.dll 程序集的代码
//目的,将混淆完成的 HRD.dll 拷贝到 HRD 项目的 bin\Release目录下 等待发布调用
  <Copy SourceFiles="$(ProjectDir)temp\HRD.dll" DestinationFiles="$(SolutionDir)HRD\bin\Release\HRD.dll" />
  </Target>

就这样了,睡觉了。各位好运。