SmartAssembly 使用方法

对于混淆工具,勇哥看到网上最多的是介绍 ConfuserEx的,可能因为是开源免费的原因吧。

但是这个工具对于有些dll会报一个编译错误,而且网上找不到错误原因。

然后是DotNETReactor,对于某些dll也会报一些错误,居然是软件内部崩溃的错误信息。

所以免费的工具真得是也只能做到这个份上了,咱也不好说些什么了。

SmartAssembly是商业工具,而且有天朝版本,所以,重点看看这个吧!

================================================


SmartAssembly加壳工具,我还真的是不太喜欢给自己的程序加壳,觉得开源才是王道,但是没办法工作需要,需要有个加壳后与加壳前的对比,好吧谁叫咱只是程序员呢。

开始埋头苦干,找了半天也没找到合适的,后来有群里大佬告诉我是“流程混淆”并且告诉了我SmartAssembly这个工具。

let‘s 干活

安装好之后才发现 需要sql server 尼玛 这么大玩意 可不好整 最后仔细看了看 说用sqllocal 也可以,但是咱不了解sqllocal 啊 又开始百度问 终于问出个好消息来 只要是vs2015或者以上版本默认都安装好了 太好了 让我拿过来直接用,下面是配置步骤

第一步设置数据库:

image.png

勇哥在这一步的实践如下,其中map file指定为本地磁盘上的目录即可。

image.png


第二步,新建工程

image.png

设置输出目录

image.png


设置加壳的选项

添加依赖库文件

image.png

 pruning 精简代码,这一步将从程序集中删除一些没有用的代码和元数据。smartassembly将检查程序集中的代码,自动判定哪些代码是有用的,哪些代码是从不会执行到的。同时,也将移除没有用的元数据。并可以分别选择对主程序集和依靠的程序集进行精简代码操作。可以根据自己的具体需要选择

image.png

obfuscation 混淆代码

混淆代码是保护你的程序集最重要的方法。它将类和方法的名称更改为不可读的字符,但不会改变代码的功能,达到保护代码的目的。同时,也可以减少元数据,减小程序集的大小

image.png

image.png

build 输出混淆后的程序集

点击build 按钮,就输出混淆后的程序集了,并且所有依靠的程序集都合并在一起了,这样在发布的时候,只需要发布合并后的一个程序集和第三方的程序集了

 

最后我们用ILSpy反编译工具测试一下效果

加壳前:

image.png

image.png


几个异常问题的解决:

(1)dll的依赖项目丢失

如下图所示,缺少依赖项目 log4Net。

image.png

解决办法是把log4net.dll拷贝到要混淆的dll所在的目录即可。


(2)smartAssembly遇到无效符号


错误信息提示:

最可能的原因是,smartAssembly使用的依赖项版本与netMarketing.dll使用的verison不同。

image.png

经过摸索,勇哥发现在依赖项中不要勾选项目

image.png

在混淆页面只选择最初想混淆的dll,则可以避免出现上面的无效符号的问题。

image.png



本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864