Corax的博客

“我想做我能做的事 ”

【加密与解密】第六章 4

READ

##加密算法在软件保护中的作用 我们需要把软件保护的概念和范围扩大一些,不仅包括软件的注册激活系统、软件的防逆向和防破解机制,还包括对一个软件或应用所涉及的所有数据的安全保护。 软件保护方案非常多,技术上的实现方法更是多种多样,有的是软件作者自己设计的,有的采用商业软件保护方案。一个成熟、健壮、安全、攻破难度大的保护方案离不开信息安全的基石——密码学。加解密算法保护了基本的软件数据安全,例如...

【加密与解密】第六章 3

READ

####4.攻击RSA保护 一般先通过跟踪分析得到n,再将n因式分解,求出私钥d。 ###ElGamal公钥算法 安全性依赖于在有限域上计算离散对数的困难性。 ####1.算法原理 ####2.算法在加密上的应用 ###DSA数字签名算法 尽管对DSA算法的工具还在继续,但一直没有充分的证据证明其安全性有很大的问题。因此使用也是很广泛的。 ####1.算法原理 ####2....

【加密与解密】第六章 2

READ

###BlowFish算法 这是一个64位分组及可变秘钥长度的分组密码算法,非专利。 ####1.算法原理 给予feistal网络(替换/置换网络的典型代表),加密函数迭代执行16轮。分组长度为64位。秘钥长度可32到448位。算法由两部分组成,分别是秘钥扩展部分和数据加密部分。每一轮由一个秘钥相关置换和一个秘钥与数据相关的替换组成。 ####2.实例分析 ###AES算法 支持1...

【加密与解密】第六章 1

READ

现有的系列号加密算法大都是软件开发者自行设计的,大部分都相当简单。此外还有很多成熟的算法可以使用,例如密码学中一些强度比较高的算法。 ##单向散列算法 单向散列算法也称hash(哈希)算法,是一种将任意长度的消息压缩到某一固定长度的函数,其过程不可逆。Hash函数可用于数字签名,消息的完整性测试,消息起源的认真检测。常见的散列算法有MD5,SHA,RIPE-MD等等。 由于hash函数是不可...

【加密与解密】第五章 2

READ

前面几天过年去了,直接他妈摆了小半个月,要死,最近继续之前的进度。 ##警告窗口 Nag的意思是烦人。Nag窗口是软件设计者用来不时提醒用户购买正式版本的窗口。 去除Nag窗口常用的办法有三个:1.修改程序的资源2.静态分析3.动态分析 使用资源修改工具去除窗口是不错的方法。可以通过将可执行文件中警告窗口的属性改成透明或者不可见来变相去除警告窗口。若要完全去除警告窗口,只需要找到创建该窗口的...

【加密与解密】第五章 1

READ

#序列号保护方式 ##序列号保护机制 软件验证序列号,其实就是验证用户名和序列号之间的数学映射关系。 ###1.将用户名等信息作为自变量,通过函数F变换之后得到注册码 这是非常不安全的,因为无论F有多么复杂,只要解密者把他从软件中提取出来就可以编制一个通用的计算注册码程序了。 ###2.注册码验证用户名的正确性 跟上一种差不太躲,就是要求F是一个可逆变换。 不同的是这里的F未直接出现在软...

【加密与解密】第二章 5

READ

###2.别名 执行的时候直接用内容替换原始操作数。别名有一种固定别名,另一种是自定义别名。 有10个固定别名,为$u0~$u9.在定义固定别名时要用r命令,同时要在字母u前面加一个. 用于自定义别名的命令有3个,分别是as,ad和al。as命令可以为内存中的一些字符串定义别名,ad用于删除别名,ad Name表示删除某个别名,ad *删除所有别名,al是列出别名。格式如下 我们现在查看...

【加密与解密】第二章 4

READ

##调试过程 WDG支持多种调试模式,既可以以打开,附加的方式调试应用,也可以分析Dump文件,还可以进行远程调试,内核调试。内核调试分为NET,USB,1394,COM和本地调试,前四种是双机调试,名称指明了双机间的连接方式。附加进程时的非入侵模式调试,Dump文件调试,本地内核调试都是非实时调试模式,不能直接控制应用的中断与执行,一般用来观察内存,分析数据结构,也可以修改内存数据。本节介...

【加密与解密】第二章 3

READ

##表达式 调试中也经常需要查看内存地址或者反汇编地址,这些地址一般通过一些表达式参与计算来获得。其中复杂表达式由基本元素与“(”“)”“】”“【”“+”“——”“^”“|”等符号组合。MDG支持的表达式如下 ##调试 MDG支持多种调试,有之前学的启动一个进程,有附加到一个进程,还有调试DLL模块,调试服务,调试一段独立的shellcode,也支持子进程调试。 ###1.调试服务 文件-...

【加密与解密】第二章 2

READ

##加载程序 OllyDbg有两种方式加载目标程序调试,一种是通过CreatProcess创建进程,另一种是利用DebugActiveProcess函数将调试器捆绑到一个正在运行的进程上。 ###1.利用CreatProcess创建进程 直接按Open打开一个用于调试的进程。 也支持带参数的调试程序,如图。 ###2.将OllyDbg附加到一个正在运行的进程上 ODG有一个使用的功能是调试...