逆向-加壳工具介绍

逆向-加壳工具介绍经过两周尝试手动编写加壳程序,目前也只是能实现给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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • datagrip激活码文本2021破解方法「建议收藏」

    datagrip激活码文本2021破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    243
  • git上项目代码拉到本地方法

    git上项目代码拉到本地方法1、先在本地打开workspace文件夹,或者自定义的文件夹,用来保存项目代码的地方。2、然后登陆GitHub账号,点击复制项目路径3、在刚才文件夹下空白处点击鼠标右键,打开Git窗口4、在以下页面中输入命令gitclone加刚才复制的路径,如下图(可能Ctrl+V用不了,可以用右键选择Paste完成复制)5、输入完命令行之后回车就行,等待下载完毕,然后是切换…

    2022年5月29日
    106
  • Mac更新idea永久激活码_通用破解码[通俗易懂]

    Mac更新idea永久激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    99
  • Git创建远程分支并提交代码到远程分支

    Git创建远程分支并提交代码到远程分支1、可以通过gitbranch-r命令查看远端库的分支情况如图所示,远程仓库只有一个master分支2、从已有的分支创建新的分支(如从master分支),创建一个dev分支但此时并没有在远程仓库上创建分支如图所示还是只有一个master分支3、建立本地到远端仓库的链接–这样代码才能提交上去使用命令行gitpush–set-…

    2022年6月30日
    35
  • flash 外国小游戏教程网站[通俗易懂]

    flash 外国小游戏教程网站[通俗易懂]http://www.tutorialized.com/tutorial/game-tutorial-part-1-character-movement/44240  相关的小游戏制作教程:有兴趣可以看看 http://www.emanueleferonato.com/2007/05/15/create-a-flash-racing-game-tutorial/

    2022年10月29日
    0
  • SAE J1939协议(一)

    SAE J1939协议(一)SAEJ1939是基于CAN总线的协议,波特率可达250Kbps,是一种传输速率较高的C类通信网络协议。SAEJ1939主要用于卡车、客车等的网络系统控制与通信。

    2022年5月13日
    152

发表回复

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

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