软件保护方式:

:外壳程序先于原有程序运行,在内存中解密还原原始程序后恢复原始程序的执行。

压缩壳
加密壳
虚拟机保护:将已知程序代码翻译虚拟机自定义的字节码,然后再虚拟机中执行程序。给跟踪程序带来难度,但是增加了程序的体积,同时降低了程序的运行效率

脱壳过程

  1. 保存入口参数
  2. 获取API地址
  3. 解密区段并还原
  4. 重建IAT表
  5. 重定位项处理
  6. HOOKAPI
  7. 跳转至OEP

查找OEP
跨区段(外壳段跳到分配的段,再跳到原程序段)
内存访问断点(外壳程序解压.text段需要访问访问.text内存区域,跳回OEP时再次访问.text节)

堆栈平衡原理(ESP定律)
外壳程序在运行前需要保存栈帧信息,在释放出原程序之后,会恢复栈帧信息,而大多数程序的第一条汇编语句是push操作,会向ESP所指向区域写入数据,那么在程序运行前在ESP处设置内存访问断点,当程序再次访问ESP处时,表明即将进入OEP。

重建输入表:
加壳时,源程序的输入表会被加壳程序破坏。在进行脱壳时需要重建。重建输入表的原理如下:

首先通过dump的内存程序映像,识别出IAT表(识别方法为通过call指令的跳转进行查找,IAT表中数据为连续的函数地址,不同dll的函数地址以00隔开)。

识别出IAT表后,在dump程序中构造出输入表的IMAGE_IMPORT_NAME struct,包含加载的dll名称和引入的函数列表,然后填充一个 IMAGE_DATA_TRUNK结构充当INT表,INT表的内容根据上面的结构体进行创建.

最后,构建IID数组,依据以上内容填充数组内容,并将firsttrunk 指向原来的IAT,originalfirsttrunk指向刚才创建的INT表,同时将INT表的内容拷贝至IAT表
以上工作完成之后,修改PE头中的输入表地址,这样在加载器加载PE文件时会根据上述内容重新构建IAT表内容

DLL重定位表的构建:
根据OEP识别出源程序区段,并通过引用重定位数据的指令处下断点的方式,找到外壳程序进行重定位的代码。并在重定位处加入补丁代码,获取到需要重定位的所有条目的RAV。然后通过ReloREC程序将这些重定位条目的RAV写入到dump.dll中重定位表中。

加密与解密——软件保护方式相关推荐

  1. 文件加密和解密软件:AutoCrypt for mac

    为大家推荐一款好用的文件加密和解密软件,AutoCrypt for mac具备强大的AES-256算法,只需点击一下,即可加密并保存在自定义位置,能够轻松帮助用户加密或解密文件,而且autocrypt ...

  2. Java课程设计——文本文件加密与解密软件设计与实现

    源文件链接: Java文本文件加密与解密-其它文档类资源-CSDN文库 摘要 随着现代网络技术的飞速发展,人们的个人信息.文件传递以及电子商务等方面都需要大力的保护,文件加密技术也应运而生.本次使用J ...

  3. 让U盘变成安全的加密便携式绿色软件盘

    QQ.MSN.RTX的聊天历史记录,有时候在处理问题时,想查看一下,但换台电脑,就查看不到了,怎么办?Foxmail在公司收取的邮件,在家就看不到了,怎么解决?SecureCRT存放大量服务器SSH密 ...

  4. 《软件加密与解密》第三版学习日志二

    一 常见软件保护技术 1.序列保护方式 注册过程一般是用户把自己的私人信息,如用户名.邮件地址.及其特征码等,告诉软件公司,软件公司根据用户的信息利用预先写好的一个计算注册程序,称为注册机keygen ...

  5. 使用WPF开发文件加密解密软件

    应用场景 在很多情况下,我们希望对一些比较私密的文件进行加密,当自己需要查看的时候,再解密出来.因此,今天与大家分享一款自己以前用WPF开发的文件加密解密软件. 准备工作 开发环境:VisualStu ...

  6. 基于加密软件的加密和解密

    对于加密,很多编程语言都可以加密,软件也可以,下面解说一下两个工具用来加密和机密 加密工具 算法 Apocalypso软件 HNC.DES等 RSA-TOOL软件 RSA Apocalypso软件可用 ...

  7. 【转】软件狗[Dongles]的加密与解密技术

    软件狗[Dongles]的加密与解密技术 软件狗采取了各种的加密技术,目前较先进的加密技术有以下几种: AS技术:API函数调用与SHELL外壳加密结合,即使外壳被破坏,加密程序依然不能正常运行. 反 ...

  8. 一种混合加密方案在软件授权中的应用

    拥有知识产权的软件一般采取软件保护手段,需要使用某种方式激活软件才可以使用.软件激活本质是对密文数据进行比较,而密文数据是由软件开发商根据目标机器的特征数据进行加密产生的.激活过程是在认证服务器或者目 ...

  9. Sql存储过程加密和解密

    可用于加密SQL存储过程或者触发器(这是SQL Server本身提供的,也就是说这是微软的加密算法) http://www.mscto.com 使用 WITH ENCRYPTION 选项 WITH E ...

最新文章

  1. 《剑指offer》第1~11题:刷题week1[C++题解]
  2. CTF-MISC杂项题2
  3. 已被骗数百万美金!App Store 中诈骗应用横行,网友:“苹果只顾抽成!”
  4. mybaits.xml文件约束,头部
  5. PDF Candy Desktop(全能PDF工具箱)官方中文版V2.91 | pdf candy desktop官网下载 | 含pdf candy desktop使用教程
  6. 用QT实现一个简单的桌面宠物
  7. html+JS+Jquery实现视频/图片上传并预览
  8. vue实现在线客服功能(附完整代码)
  9. 图像处理系列——图像融合之加权平均(WA)
  10. table 手机 滑动_【推荐下载】html5手机端手指滑动选项卡滚动切换效果(转)
  11. 多媒体计算机在教学中的应用,浅析计算机多媒体在教学中的应用
  12. java方法怎么用?【java方法使用教程】
  13. LTE(4G) - NR(5G) NSA Transfer (RRC UL Information transfer)
  14. 假设银行定期存款年利率rate为2.25%,已知存款本金capital元,尝试编程计算n年后可得到的本利之和deposit为多少?
  15. 备份基础知识及容量测算
  16. 罗伯沃茨机器人_罗伯沃茨CSO张东芙:无人驾驶的下个十年,依旧沧海桑田 | GGAI专访...
  17. 【Python小游戏】一只大猩猩“刷”爆了朋友圈?敢玩这个游戏不?(附源码)
  18. .Net Core 2.2.6安装sfx_86.cab has an invalid digital signature错误解决方案
  19. linux 管理员身份执行命令,如何快速以管理员权限运行Linux命令?
  20. pycharm社区版在Python Interpreter没有找到manage repositories按钮

热门文章

  1. 关于fi dd ler 手机抓包 网卡地址地址_大年别闲着,跟我来学tcpdump抓包
  2. js根据url获取html页面,JS 通过url地址栏获取html页面名称
  3. 华为荣耀3C_XPosed安装流程
  4. 半入耳蓝牙耳机哪个好?音质好的半入耳式蓝牙耳机推荐
  5. 最新版海豚调度dolphinscheduler-3.1.3配置windows本地开发环境
  6. 带孩子们做环球旅行的读后感_带孩子爬山可以这样做,让孩子每次爬山都有不一样的收获...
  7. 【机器人】满级码农入门ROS1机器人编程QA
  8. 计算机网络英文缩写词大全——搭配英文全称更好记(辽宁大学任秀丽)
  9. oracle12 se1和se2,小屏手机的巅峰对决:iPhone12mini和iPhoneSE2,谁更适合你?
  10. python里try和except用法_Python中的错误和异常处理简单操作示例【try-except用法】...