逆向-加壳工具介绍

逆向-加壳工具介绍经过两周尝试手动编写加壳程序,目前也只是能实现给PE文件添加新区块,后面还有重定位表的修复,地址输入表的处理,虚拟机和花指令技术等反调试手段…一大串要学习的工作,几乎就是放弃了吧,通过这两周学习能让自己对PE文件和偏移地址、虚拟地址有一定了解也算不亏。目前就是转而向使用工具方向了。目前加壳的两个主要方向是压缩和加密。压缩壳压缩壳以UPX为代表,使用方法在前面的文章中有,此类壳的功能已压缩为主,对文件的加密效果几乎没有,Peid等侦壳工具可以轻而易举地发现这些壳,相应也有较成熟的脱壳机来实现。所以当文件

大家好,又见面了,我是你们的朋友全栈君。

经过两周尝试手动编写加壳程序,目前也只是能实现给PE文件添加新区块,后面还有重定位表的修复,地址输入表的处理,虚拟机和花指令技术等反调试手段…一大串要学习的工作,几乎就是放弃了吧,通过这两周学习能让自己对PE文件和偏移地址、虚拟地址有一定了解也算不亏。目前就是转而向使用工具方向了。
目前加壳的两个主要方向是压缩和加密。

压缩壳

压缩壳以UPX为代表,使用方法在前面的文章中有,此类壳的功能已压缩为主,对文件的加密效果几乎没有,Peid等侦壳工具可以轻而易举地发现这些壳,相应也有较成熟的脱壳机来实现。所以当文件有较高的存储性能要求,且代码保密程度是可以开源时,才比较适合使用此类壳处理。

加密壳

常见的加密壳有ASProtect和Armadillo穿山甲,这两种工具使用较为广泛,加密效果较强,但就像密码一样,没有激活成功教程不了的密码也没有脱不掉的壳,其使用的广泛性也增加了其关注度和可研究性,目前针对ASProtect好像已经有了可用的脱壳机。
本文把穿山甲的使用流程展示如下:
加壳流程与工程创建相似,首先在工具内创建工程
创建工程
然后输入工程名和版本号
输入信息
在第二栏中选择需要保护的文件,需保护的次要文件为主文件调用的DLL等,也可不选。
保护文件选择
后续可一直跳过使用默认,或自行更改,不影响加壳过程,重要的是证书的设置,在最后一栏证书选择新建后可看到如下页面:
新建证书
首先输入证书名称及加密模板,此处的模板不等于密码,版本密钥可根据提示选择,其余的设置根据需要选择或默认即可。注意此时不要选默认,否则会导致后面密码设置出错,证书设置如图:
证书设置
配置好后关闭设置页面可见如下界面:
界面
点击工具栏中的锁头按钮即可开始加壳,成功后弹出如下消息框:
加壳成功
此时运行加壳后的文件会需要用户名和密码,但我们还没设置呢,这时候的默认密码会是啥我也不知道,不管怎样需要我们先自行设置一个密码。点击如图按钮设置密码:
设置密码
点击后会出现如图设置界面:
密码设置界面
单击证书名选择证书,输入用户名后单击创建密钥即可见产生的密钥:
产生密钥
再次运行并输入用户名和密钥程序可成功运行:
程序成功运行
但是这种方法需要我们每次使用加壳后的文件都输入密钥,无疑降低了用户的使用体验,目前还没有找到其他的设置方法。

虚拟壳 VMProtect

这种壳其实是属于加密壳的一种,但是由于其特殊性值得拿出来单独说一下,使用计算机虚拟机技术,该技术与我们使用的VMware不大相同。前面两种保护技术虽然侧重点不同,但原理类似,都是给文件加上一层区块,本质没有修改文件源代码,使得文件被脱壳只是时间问题,但VMProtect是将被保护文件的代码转化到虚拟机下运行,虚拟机的编译器将指令编译成伪指令系统的指令执行,激活成功教程者很难理解虚拟机变换后的指令。目前对这种保护技术的评价是:以目前的激活成功教程理论来说,几乎不可能激活成功教程。
但是优异的保护以性能为代价,虚拟机处理后的文件,体积成倍上升,执行效率也大幅下降,所以只适合对关键代码进行保护。VMProtect界面如下:
选择打开文件后
选项中可用对保护的内容等信息进行设置:
设置
设置好后点击编译按钮即可生成文件,可以说比较简单易用了。

总结

  1. 压缩壳工具:UPX,该壳可以实现对文件的压缩功能,保护性较低,脱壳基本不用费什么周章,若对文件存储性能有要求,且代码可以开源的话再考虑采用。
  2. 加密壳工具:VM protect ,该工具使用虚拟机技术对代码进行加密,效果可以说是目前加壳领域最强,且资料显示以目前的激活成功教程理论解密VMP保护下的文件是几乎不可能的。但优异的保密性以性能为代价,虚拟机技术处理文件会使文件体积成倍上升,执行效率也显著下降,所以可以用于保护核心代码。
  3. 普遍应用的工具,ASP和穿山甲,这两种工具使用较多也较为普遍,性能和加密性比较平衡,但针对的研究也较多。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153647.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MinGW-w64的安装及配置教程

    步骤:1.下载MinGW-w642.安装MinGW-w643.配置MinGW-w64路径4.验证安装MinGW的全称是:MinimalistGNUonWindows。它实际上是将经典的开源C语言编译器GCC移植到了Windows平台下,并且包含了Win32API,因此可以将源代码编译为可在Windows中运行的可执行程序。而且还可以使用一些Windows不具备的,Linux平台下的开发工具。一句话来概括:MinGW就是GCC的Windows版本。MinGW

    2022年4月8日
    353
  • html怎么动态获取系统时间_代码实现获取当前的地理位置

    html怎么动态获取系统时间_代码实现获取当前的地理位置HTML+JS动态获取当前时间效果图:说明:JavaScript中Date对象创建Date对象的语法:varmyDate=newDate()常用Date对象方法:方法描述Date()返回当日的日期和时间getDate()从Date对象返回一个月中的某一天(1~31)getDay()从Date对象返回一周中的某…

    2022年9月23日
    0
  • arcgis python实例_arcgis二次开发_arcgis二次开发python_arcgis二次开发实例

    arcgis python实例_arcgis二次开发_arcgis二次开发python_arcgis二次开发实例[1.rar]-QQ连连看的源码.单消秒杀挂机等功能喜欢的朋友请拿去研究[qqCHAR.rar]-qq验证码识别程序可以叫准确的识别出qq登陆前的验证码[1.rar]-本书以Visualc++作为开发语言,结合大量实例,详细介绍了利用Arcobjects组件进行GIS二次开发的方法和过程。书中在讲述利用Arcobjects实现GIS功能的基础上,重点介绍了在Arcobjects环境…

    2022年6月17日
    25
  • android 6.0锁屏界面时间位置修改[通俗易懂]

    android 6.0锁屏界面时间位置修改[通俗易懂]在SystemUI里的Android.mk中LOCAL_STATIC_JAVA_LIBRARIES:=KeyguardLOCAL_STATIC_JAVA_LIBRARIES+=com.mediatek.systemui.extLOCAL_JAVA_LIBRARIES:=telephony-commonLOCAL_JAVA_LIBRARIES+=mediatek-

    2022年9月29日
    2
  • 跨平台移动APP开发进阶(二):HTML5+、mui开发移动app教程[通俗易懂]

    跨平台移动APP开发进阶(二):HTML5+、mui开发移动app教程[通俗易懂]前端开发APP,从HBuilder开始~序通过HTML5开发移动App时,会发现HTML5很多能力不具备。为弥补HTML5能力的不足,在W3C中国的指导下成立了www.HTML5Plus.org组织,推出HTML5+规范。HTML5+扩展了JavaScript对象plus,使得js可以调用各种浏览器无法实现或实现不佳的系统能力,设备能力如摄像头

    2022年5月31日
    36
  • IDEA热部署不生效解决方案

    IDEA热部署不生效解决方案今天尝试热部署,没想到弄了半天没反应,最后经查阅发现此问题,希望同样问题的这个没配置的去添加试下,希望能帮到你第一步pom文件引入坐标<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools…

    2022年6月3日
    315

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号