4

【干货】浅谈如何给.net程序加多层壳达到1+1>2的效果

 1 year ago
source link: https://www.cnblogs.com/chaego/p/17607339.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

【干货】浅谈如何给.net程序加多层壳达到1+1>2的效果

  软件破解分白盒和黑盒两种方式。

  白盒破解:白盒破解是指对软件进行破解时,攻击者可以访问软件的内部结构和源代码。这种破解方式通常发生在软件的开发者、技术人员或软件公司内部。攻击者使用这些详细信息来理解软件的工作原理,并针对其中的漏洞或保护机制进行攻击。白盒破解比较复杂,需要对编程和软件系统有深入的了解。

  黑盒破解:黑盒破解是指对软件进行破解时,攻击者无法访问软件的内部结构或源代码。攻击者只能通过分析软件的可执行文件、输入和输出来进行破解。这种方法主要依赖于逆向工程技术,通过对软件进行逆向分析和漏洞挖掘来找到弱点,实现破解。

  理论上没有100%安全的保护方案。加壳主要是增加破解的难度、时间和成本。

  首先需要在程序本身执行逻辑结构上进行改进,让逻辑尽可能避免有重大漏洞,避免破解者通过抓包、修改配置文件、注册表等方式轻易饶过。

在程序改进基础上尽可能可以添加暗桩,所谓暗桩是指“陷阱”,这里指的是程序作者自定义的一些反抗破解者的一些逻辑。比如增加对一些常见抓包软件如filddler、Wireshark、HTTP Analyzer,反编译软件ilspy、dnspy等进程的检测。如果检测到攻击者使用此类软件,则可以“保留现场”后将程序强制退出。

  然后再从加壳方面增加,这是很重要的一步,因为.net软件一旦破解,源代码都可以反编译出来,可以直接将程序逻辑完全展现出来,更别说破解了。

  加壳软件目前市面上免费的也有,商业版也很多,到底那种加壳工具更安全呢?答案我给你吧,没有百分比安全的壳,这篇文章主要介绍的是怎么让自己.net软件的破解难度达到最大,也就给软件加是接近百分百安全的壳子。
  对于.net程序集一般建议采用多层加壳方式——两层甚至三层

第一层:可以采用纯混淆工具进行代码流和名称的混淆(如confusex,eazfusctor,dotfuscator等)

第二层:使用DNGuard进行加密保护(建议同时开启HVM和HVMII保护技术)

第三层:使用传统win32本地的加壳工具进行外壳保护。(如themida/winlicense)

多层加壳可以达到1+1>2的效果,它对破解者的技能和经验要更高,这会导致破解者在时间、难度上挫败,当前成本就会指数型增长!

以上就是我给一些.net软件作者的一些建议,保护自己的知识产权,让自己的劳动成功开花结果,而不是败在破解者无情的屠刀之下!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK