【干货】浅谈如何给.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软件作者的一些建议,保护自己的知识产权,让自己的劳动成功开花结果,而不是败在破解者无情的屠刀之下!
【干货】浅谈如何给.net程序加多层壳达到1+1>2的效果的更多相关文章
- (转)浅谈MD5加密算法中的加盐值(SALT)
我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码. 加Salt可以一定程度上解决这一问题.所谓加Salt方法,就 ...
- Web应用你加盐了吗?——浅谈MD5加密算法中的加盐值(SALT)
转自:http://blog.csdn.net/blade2001/article/details/6341078 我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散 ...
- 【原】从一个bug浅谈YUI3组件的资源加载
篇前声明:为了不涉及业务细节,篇内信息统一以某游戏,某功能代替 前不久,某游戏准备内测客户端,开发人员测试过程中发现某功能突然不灵了,之前的测试一切ok,没有发现任何异常,第一反应是,游戏内浏览器都是 ...
- 05 入门 - 浅谈 ASP.NET MVC程序的工作原理
目录索引:<ASP.NET MVC 5 高级编程>学习笔记 本篇内容 1. Global.asax文件 2. RouteConfig.cs文件 3. 视图命名和寻址的规则 前面创建了一个简 ...
- 浅谈如何正确给table加边框
一般来说,给表格加边框都会出现不同的问题,以下是给表格加边框后展现比较好的方式 <style> table,table tr th, table tr td { border:1px so ...
- 浅谈Android移动开发程序员的职业发展之路
现在几乎每个it公司都在开发移动产品,我最早知道Android还是在09年成都某学院上大学的时候,从新闻上知道有这么一家公司,创始人安迪·鲁宾很有名,但安卓到底是做什么的,我并没有关注. 到2010年 ...
- 干货|浅谈iOS端短视频SDK技术实现
短视频SDK主要包含"视频录制"和"视频编辑"这两个核心功能. 视频录制包括:视频采集.美颜.滤镜.摄像头切换.视音频采集参数设置等功能: 视频编辑包括:视频导 ...
- 浅谈C语言中断处理机制
一.中断机制 1.实现中断响应和中断返回 当CPU收到中断请求后,能根据具体情况决定是否响应中断,如果CPU没有更急.更重要的工作,则在执行完当前指令后响应这一中断请求.CPU中断响应过程如下:首先, ...
- 浅谈iOS需要掌握的技术点
鉴于很多人的简历中的技术点体现(很多朋友问我iOS需要知道注意哪些)! 技术点: 1.热更新 (及时解决线上问题) 2.runtime(json解析.数据越界.扩大button点击事件.拦截系统方法) ...
- [nRF51822] 14、浅谈蓝牙低功耗(BLE)的几种常见的应用场景及架构(科普类干货)
蓝牙在短距离无线通信领域占据举足轻重的地位—— 从手机.平板.PC到车载设备, 到耳机.游戏手柄.音响.电视, 再到手环.电子秤.智能医疗器械(血糖仪.数字血压计.血气计.数字脉搏/心率监视器.数字体 ...
随机推荐
- count(列名)、count(1)和 count(*)有什么区别?
在MySQL中,这几个都是统计操作,很多人在使用的时候,都使用的是count(1),这有没有问题?使用正确?达到了统计效果? 我们从效果和效率两方面来分析下 执行效果 count(*) 包括了所有的列 ...
- SDK日志上传性能优化
问题描述 在SDK初始化时,会在init方法中开启一个倒计时,在5s倒计时结束后使用子线程将本地保存的历史日志信息上传到后台. 因业务需要,在日志在发送上传前,对日志数据上传时需要对日志数据做编码和特 ...
- 【Java】GridBagLayout布局笔记
参考博客: 样例解释:https://blog.csdn.net/wstz_5461/article/details/78067176 参数解释:https://blog.csdn.net/shiSh ...
- javaer你还在手写分表分库?来看看这个框架怎么做的 干货满满
java orm框架easy-query分库分表之分表 高并发三驾马车:分库分表.MQ.缓存.今天给大家带来的就是分库分表的干货解决方案,哪怕你不用我的框架也可以从中听到不一样的结局方案和实现. 一款 ...
- 值得推荐的Blazor UI组件库
前言 本文主要是推荐一些开源.免费.实用.美观的Blazor UI组件库,提供给广大C#/.NET开发者们学习和使用(注意:排名不分先后,都是十分优秀的开源框架和项目).本文中的所有框架都已经收录到适 ...
- Spectre.Console-处理依赖注入
引言 之前说的做自动记录 Todo 执行过程中消耗的时间的Todo 项目,由于想持续保持程序执行,就放弃了 Spectre.Console.Cli,后来随着命令越来越多,自己处理觉得很是麻烦,想了想要 ...
- Hybrid 实验
实验拓扑 实验需求 按图示给各 PC 配置 IP 地址 PC1属于 VLAN 10 : PC2 与 PC5 属于 VLAN 20:PC4属于 VLAN 30 实现全网互通 实验步骤 1.配置链路聚合 ...
- 拥抱jsx,开启vue3用法的另一种选择🔥🔥
背景 公司高级表单组件ProForm高阶组件都建立在jsx的运用配置上,项目在实践落地过程中积累了丰富的经验,也充分感受到了jsx语法的灵活便捷和可维护性强大,享受到了用其开发的乐趣,独乐乐不如众乐乐 ...
- 驱动开发:内核LoadLibrary实现DLL注入
远程线程注入是最常用的一种注入技术,在应用层注入是通过CreateRemoteThread这个函数实现的,该函数通过创建线程并调用 LoadLibrary 动态载入指定的DLL来实现注入,而在内核层同 ...
- CKS 考试题整理 (08)-Pod指定ServiceAccount
Context 您组织的安全策略包括: ServiceAccount 不得自动挂载 API 凭据 ServiceAccount 名称必须以 "-sa" 结尾 清单文件 /cks/s ...