本文分为两部分,一部分是介绍使用 DotNetReactor6.0 及以上版本混淆.netcore项目的dll。
另一部分是介绍将混淆后的dll,放入打包好的deb安装包中。这里需要在deepin(unbuntu)下解压deb包,替换文件后重新打deb包。
这部分采用avalonia应用程序在deepin上演示。
一、dll混淆
.NetCore 所创建的类库项目,是可跨平台的.Net Standard类库,DotNetReactor6.0 及以上版本可混淆.Net Standard类库生成的dll。经过测试,使用ILSpy,
.NET Reflector 以及JetBrains dotPeek 反编译后,无法看到源码。本次演示使用ILSpy反编译工具。
(一)创建.netcore 的类库,编译生成dll,不经过混淆用ILSpy 查看。
(二)用ILSpy打开 hello.dll,查看class1,可以看到源码。
(三)将dll混淆,然后再用ILSpy查看该dll
1.混淆dll:
2.ILSpy反编译浏览混淆后的dll
二、deb安装包解压、替换混淆后的dll,重新打deb包。
这部分将用avalonia应用程序的deb包,在deepin系统上进行演示
1.新建一个文件夹,比如 在桌面新建一个文件夹app
2.在app文件夹内,再新建文件夹。将要重新打包的deb包放入app文件夹中。
3.解压deb安装包:将要重新打包的 deb安装包,放入 app文件夹中,执行解压缩命令。解压后,可修改、替换解压出来的文件
dpkg -X testapp.1.0.0.linux-x64.deb extract/ 将deb包解压出来的文件,放入extract文件夹中。
dpkg -e testapp.1.0.0.linux-x64.deb extract/DEBIAN/ 解压出包的控制信息 文件放入 app/extract/DEBIAN文件夹中。
4.重新打deb包。重新打包,会根据解压出来的控制信息重新打包,并将打包后的deb安装包,放入到app/build文件夹中。