为什么要保护DLL,我就不多说了,各人有各人的理由.总的来说,就是不想核心逻辑泄露及授权验证被破解两大方面的因素.市面上的混淆加密工具对.NET源码保护的效果天差地别,很多网上下到的混淆工具破解版对.NET源码混淆保护的效果通常都不行(能找到对应的反混淆工具进行脱壳),而保护效果较好的混淆工具,收费比较高昂且也没有破解版,导致很多小企业或个人开发者为.NET的源码的知识产权保护绞尽脑汁. 首先,我来介绍一下发布出去的DLL所面临的风险: 一.直接引用 二.反编译 三.反射 如果DLL一点措施都不…
先说结果: 加了缓存的结果与C#原生代码差异不大了 我对三种方式进行了测试: 第一种,每次调用均动态编译 第二种,缓存编译好的对象 第三种,直接调用原生C#代码 .net dll保护系列 -------------------------------------------------------------------------------------------- .NET DLL 保护措施详解(一)(非混淆加密加壳) .NET DLL 保护措施详解(二)关于性能的测试 .NET DLL…
针对.NET DLL 保护措施详解所述思路完成最终的实现,以下为程序包下载地址 下载 注意: 运行环境为.net4.0,需要安装VS2015 C++可发行组件包vc_redist.x86.exe.然后运行NetProtect.ConsoleApplication1.exe即可查看运行结果 NetProtect.CoreClr.dll类库提供了加密.解密.获取一段密钥的功能封装且指定了只能由NetProtect.ConsoleApplication1.exe及NetProtect.BLLDemo.…
我准备了WEB应用程序及WinForm应用程序,分别在WIN SERVER 2012/2008/2003.Win7/10上实测,以下为实测结果截图: 2012 2008 2003 WIN7 WIN10 .net dll保护系列 -------------------------------------------------------------------------------------------- .NET DLL 保护措施详解(一)(非混淆加密加壳) .NET DLL 保护措施详解…
为了证实在常规手段破解下能有效保护程序核心功能(演示版本对AES加解密算法及数据库的密钥(一段字符串)进行了保护),特对此DLL保护思路进行相应的测试,包含了反编译及反射测试,看是否能得到AES加解密算法的密钥及数据库字符串. 反编译: 我这里使用了.net dll反编译工具ILSpy,以下为真实截图. 1. NetProtect.BLLDemo.dll 2. NetProtect.ConsoleApplication1.exe 3. NetProtect.CoreClr.dll 综合上图,可以…
最近有很多朋友通过BLOG找到我询问我的相关细节,其实相关的实现细节我早已把源码上传到51aspx上面了,地址是http://www.51aspx.com/code/codename/56949 也有部份朋友对这个特别感兴趣,付费购买了.…
最近做了个小工具,将保护措施思路全部应用到了此工具中. 点我下载 “百度分享工具”介绍 大家都知道,在百度云盘中分享文件,只能手工一条条地点击“分享”,如果想分享很多文件,操作会非常辛苦.“百度云分享工具”,是一款专门用于自动批量分享百度云文件的软件.    本软件完全模拟在网页上登录百度云盘,模拟手工点击,将分享的“公共链接”或“私密链接”保存起来,供查询导出,极大地解放人工操作 ,提高工作效率. 本软件特点: 一.完全模拟人工操作,不会被百度云盘识别为机器操作: 二.可以批量分享,并保存分享…
SynchronousQueue原理详解-非公平模式 开篇 说明:本文分析采用的是jdk1.8 约定:下面内容中Ref-xxx代表的是引用地址,引用对应的节点 前面已经讲解了公平模式的内容,今天来讲解下关于非公平模式下的SynchronousQueue是如何进行工作的,在源码分析的时候,先来简单看一下非公平模式的简单原理,它采用的栈这种FILO先进后出的方式进行非公平处理,它内部有三种状态,分别是REQUEST,DATA,FULFILLING,其中REQUEST代表的数据请求的操作也就是take…
上一篇文章介绍了RSA涉及的数学知识,本章将应用这些知识详解RSA的加密与解密. RSA算法的密钥生成过程 密钥的生成是RSA算法的核心,它的密钥对生成过程如下: 1. 选择两个不相等的大素数p和q,计算出n=pq,n被称为RSA算法的公共模数: 2. 计算n的欧拉数φ(n),φ(n)=(p-1)(q-1): 3. 随机选择一个整数e作为公钥加密密钥指数,1< e < φ(n),且e与φ(n)互质: 4. 利用同余方程ed≡1 (mod φ(n))计算e对应的私钥解密指数d.由于GCD(e,…
通常我们通过代码混淆.加密的形式达到软件保护的目的.在Web开发里我们接触过的可能就是JS代码加密了,可以通过对JS代码进行混淆.加密从而实现对核心JS代码的保护.如果没有接触过的可以在这里简单了解一下,这次我们就不去细说了. 在以前Win32的软件中,加壳脱壳的技术已经发展的非常成熟,国内有大名鼎鼎的看雪.吾爱破解等论坛,三四年前还在上学时,论坛里的大牛一直都是自己的偶像. 而.NET程序因为编译结果不是机器代码语言,而是IL语言,所以加壳脱壳相关的软件还不是很多,我搜索到了一些,如VS自带的…
.NET产品源码保护产生的背景: .NET源码加密方案支持C#及VB.NET等语言开发的ASP.NET及WINFORM应用.利用.NET支持托管代码与非托管代码共存的特性,将C#代码经过处理放于非托管代码中,防止通过常规方式反编译DLL,能有效保护.NET产品版权,防止反编译破解.      市面上的混淆加密工具对.NET源码保护的效果天差地别,很多网上下到的混淆工具破解版对.NET源码混淆保护的效果通常都不行(能找到对应的反混淆工具进行脱壳),而保护效果较好的混淆工具呢,收费比较高昂且也没有破…
最近做了个小工具,将保护措施思路全部应用到了此工具中. 点我下载   百度云批量保存工具是一款专门用于自动批量保存百度云分享的软件. 本软件特点:1:完全模拟人工操作:2:可以批量保存百度分享的文件(支持公开分享及私密分享)并对保存记录了日志:3:一次注册,永久授权,提供永久免费升级(未激活用户每天可保存三条分享). 百度云批量保存工具安装使用步骤:本软件为绿色软件,无需安装,但在使用前需要安装运行环境.1:安装.Net Framework 4.5.2:2:安装VS2015 C++可发行组件包"…
文章大纲 一.Redis介绍二.Redis安装并设置开机自动启动三.Redis文件结构四.Redis启动方式五.Redis持久化六.Redis配置文件详解七.Redis图形化工具八.Java之Jedis连接Redis单机九.项目源码与资料下载十.参考文章   一.Redis介绍 1. 什么是Redis   Redis是用C语言开发的一个开源的高性能键值对(key-value)数据库.建议在linux上运行,它通过提供多种键值数据类型来适应不同场景下的存储需求,数据存储在内存中,也可持久化到磁盘中…
文章大纲 一.搜索引擎框架基础介绍二.ElasticSearch的简介三.ElasticSearch安装(Windows版本)四.ElasticSearch操作客户端工具--Kibana五.ES的常用命令六.Java连接ElasticSearch进行数据操作七.项目源码与参考资料下载八.参考文章   一.搜索引擎框架基础介绍 相关基础学习可参考:https://www.cnblogs.com/WUXIAOCHANG/p/10855506.html 二.ElasticSearch的简介 1. El…
https://blog.csdn.net/lis_12/article/details/54618868 Python 详解命令行解析 - argparse Python 详解命令行解析 - argparse sys.argv why choice argparse ? 创建解析器 - ArgumentParser 添加参数选项 - add_argument 解析参数 example sys.argv 适合解析简单的命令行 filename = arg_sys.py #!/usr/bin/py…
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. 本章将系统地讲述Cookie与Session机制,并比较说明什么时候不能用Cookie,什么时候不能用Session. 1.1  Cookie机制 在程序中,会话跟踪是很重要的事情.理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个…
文章大纲 一.数据库简介二.Mysql数据库简介三.Mysql安装与服务启动(Windows版本)四.Mysql图形化工具五.Mysql存储引擎精讲六.Mysql数据类型介绍七.Mysql主要专业名称介绍八.Mysql常见sql语句九.Mysql设计与语句优化十.事务介绍十一.Mysql数据库备份与恢复十二.Mysql分库分表十三.Mysql权限管理十四.Mysql数据库之阿里云十五.资料下载十六.参考文章   一.数据库简介 1. 数据库是什么   数据库是数据管理的有效技术,是由一批数据构成…
一.Tomcat简介二.Tomcat安全设置三.Tomcat优化四.参考文章   一.Tomcat简介 Tomcat 是 Apache软件基金会下的一个免费.开源的WEB应用服务器,它可以运行在 Linux 和 Windows 等多个平台上,由于其性能稳定.扩展性好.免费等特点深受广大用户喜爱.目前,很多互联网应用和企业应用都部署在 Tomcat 服务器上, 之前我们 tomcat 都采用的是默认的配置,因此在安全方面还是有所隐患的.tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是…
  一.dll的定义 DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型.在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中.当我们执行某一个程序时,相应的DLL文件就会被调用.一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件. 如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Windows…
DLL注入是一种允许攻击者在另一个进程的地址空间的上下文中运行任意代码的技术.攻击者使用DLL注入的过程中如果被赋予过多的运行特权,那么攻击者就很有可能会在DLL文件中嵌入自己的恶意攻击代码以获取更高的执行权限. 具体而言,该技术遵循以下步骤: 1. 需要将DLL写入磁盘中: 2. “CreateRemoteThread”调用“LoadLibrary”: 3. 反射加载程序功能将尝试使用适当的CPU寄存器找到目标进程的进程环境块(PEB),并从中尝试查找内存中的kernel32dll和任何其他必…
文章大纲 一.权限框架介绍二.Shiro基础介绍三.Spring Boot整合Shiro代码实战四.项目源码与资料下载五.参考文章   一.权限框架介绍 1. 什么是权限管理   权限管理属于系统安全的范畴,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户可以访问而且只能访问自己被授权的资源.  权限管理包括用户身份认证和授权两部分,简称认证授权.对于需要访问控制的资源用户首先经过身份认证,认证通过后用户具有该资源的访问权限方可访问.1.1 用户身份认证  身份认证,就是判断一…
概述 并发编程中,ReentrantLock的使用是比较多的,包括之前讲的LinkedBlockingQueue和ArrayBlockQueue的内部都是使用的ReentrantLock,谈到它又不能的不说AQS,AQS的全称是AbstractQueuedSynchronizer,这个类也是在java.util.concurrent.locks下面,提供了一个FIFO的队列,可以用于构建锁的基础框架,内部通过原子变量state来表示锁的状态,当state大于0的时候表示锁被占用,如果state等…
文章大纲 一.maven功能介绍二.maven整合javaweb案例三.私服应用(了解)四.总结五.相关资料下载六.参考文章 一.maven功能介绍 1. maven基本介绍   Maven的Apache公司开源项目,是项目构建工具.用来依赖管理.1.1 maven的好处使用传统项目开发crm项目,项目大小: 同样的项目使用maven开发 同样的代码,实现功能都一样,maven项目如何做到的?可以初步推断maven项目中一定没有jar包.没有jar包的maven项目如何运行?Maven项目找ja…
文章大纲 一.Spring介绍二.Spring的IoC实战三.IoC常见注解总结四.项目源码及参考资料下载五.参考文章 一.Spring介绍 1. 什么是Spring   Spring是分层的Java SE/EE应用 full-stack轻量级开源框架,以IoC(Inverse Of Control:反转控制)和AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层Spring MVC和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技…
@Entity //继承策略.另一个类继承本类,那么本类里的属性应用到另一个类中 @Inheritance(strategy = InheritanceType.JOINED ) @Table(name="INFOM_TESTRESULT") public class TestResult extends IdEntity{} 1 @Entity(name="EntityName") 必须 name为可选,对应数据库中一的个表 @Table(name="&…
Namenode 1.namenode是一个中心服务器,单一节点(简化系统的设计和实现),负责管理文件系统的命名空间(namespace)以及客户端对文件的访问. 2.文件操作:namenode负责对元数据的操作,datanode负责处理文件内容的读取请求,跟文件内容相关的数据流读取操作不会经过namenode,只会询问它跟哪个datanode联系,否则namenode会成为系统的瓶颈. 3.副本存放在哪些datanode上由namenode来控制,根据全局情况做成块放置决定,client读取文…
文章大纲 一.Spring Boot 概述二.Spring Boot 入门案例三.Spring Boot核心功能代码实战四.项目源码与资料下载五.参考文章   一.Spring Boot 概述 1. 什么是 Spring Boot   Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.简单的来说 Spring Boot 这个项目整合目前很多的…
文章大纲 一.什么是RESTful二.为什么要使用RESTful三.RESTful实战四.项目源码下载五.参考文章   一.什么是RESTful 1. RESTful概念   REST 是面向资源的,这个概念非常重要,而资源是通过 URI 进行暴露.  URI 的设计只要负责把资源通过合理方式暴露出来就可以了.对资源的操作与它无关,操作是通过 HTTP动词来体现,所以REST 通过 URI 暴露资源时,会强调不要在 URI 中出现动词. 比如:左边是错误的设计,而右边是正确的 GET /rest…
 加密芯片是对内部集成了各类对称与非对称算法,自身具有极高安全等级,可以保证内部储存的密钥和信息数据不被非法读取与篡改的一类安全芯片的通称.使用到安全加密芯片的产品:银行加密U盾.刻录机.加密硬盘.PC锁.手机.智能门锁.公交地铁等.在使用到安全加密芯片这些产品中,储存在安全芯片里面的数据会进行高可靠性加密处理,使得这些数据很难被非法窃取.         如天嵌i.MX6UL核心板,CPU自带安全启动防窃取机制,可以使客户面向高度安全的应用进行设计,适用于交易类设备.embedsky.com下…
目录 简介 加载 运行时常量池 类加载器 链接 验证 准备 解析 初始化 总结 简介 有了java class文件之后,为了让class文件转换成为JVM可以真正运行的结构,需要经历加载,链接和初始化的过程. 这三个过程是怎么工作的呢?在本文中你将会找到答案. 加载 JVM可以分为三大部分,五大空间和三大引擎,要讲起来也不是特别复杂,先看下面的总体的JVM架构图. 从上面的图中,我们可以看到JVM中有三大部分,分别是类加载系统,运行时数据区域和Execution Engine. 加载就是根据特定…