逆向学习第二天如何手动脱UPX、Aspack壳
UPS、AsPack压缩壳介绍:
UPX 、AsPack是一款先进的可执行程序文件压缩器。压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间、网络上传下载的时间和其它分布以及存储费用。 通过压缩过的程序和程序库完全没有功能损失,和压缩之前一样可正常地运行。对于支持的大多数格式没有运行时间或内存的不利后果。
压缩的原理是什么呢?
压缩就好像把 可执行文件中的 123456 用字母%A代替,789ABC用字母%C代替,这样程序代码的体积不久变小了很多。(要是可以这样压缩,这不都只有三分之一了,好机智)。
实际上现在网络有很多UPX、Aspack脱壳器,但是入门学习一定要从头学习手动脱壳,学习原理,我会将我近期学习到的4种方法总结于本文。
首先使用PEiD或者EXEInfoPE查壳,这里我使用PEiD。
可见此程序加的是UPX壳,接下来我们手动将它脱掉。
1、单步跟踪法
此方法是将向上跳转设置断点让它不能实现,向下跳转不执行动作让它实现。
将程序拖入OP,可以看到Pushad是这个程序的入口点。接下来按F8(单步步过)或者点击此按钮即可。
单步跟踪法是将向上跳转设置断点,所以我们就用F8逐一的找向上跳转。
红色椭圆框住的就是向上跳转,每当遇见的时候通常我们都在下一句设置断点,所以我们可以直接在下一句(即红色矩形框框住部分)按F4,逐步向下寻找。
这个跳转因为下一句是一个“CALL”所以我们在CALL下面的一句设置断点。这里注意一下popad。这个是“出站口”,注意到前面pushad是“入站口”,有入站口就会有出站口即popad。再看popad下面的语句,98E1EFFF,0047738C,这个跨度比较大,典型的Delphi程序,一般再单步步进一次就可以进入到程序的真正程序段。
接下来我们进行脱壳,可以直接用OD脱壳插件脱壳,右键用OllyDump脱壳调试进程。
可以用方式1,也可以用方式2,都可以进行脱壳。
2、ESP大法
ESP大法相比于单步跟踪法来说简便,利用寄存器ESP的值来进行脱壳。
首先来看程序入口点,关键语句Pushad。
ESP大法是在关键语句的下一句如果ESP颜色突变进行操作,我们来看一下下一语句的ESP。
这里我们看到寄存器里只有ESP是红色的,那我们就可以操作了。右键数据窗口中跟随。
在数据窗口中进行如下操作,word Dword都可以。
然后我们F9运行,来到了我们刚才熟悉的界面,单步步进,来到了主程序程序段,脱壳即可。
3、内存2次镜像法
点击m进入内存界面,接下来我们找在内存中的本程序段的.rsrc,F2设置断点,运行。
所谓2次镜像法就是要进行2次内存操作,接下来我们再点m进入内存信息界面,找到地址00401000,F2设置断点,运行。又来到了我们熟悉的语句popad,设置断点,单步步进,脱壳。
4、一步直达法
此方法适用于UPX,Aspack壳,前面说过pushad为入口点,那么它必定有一个出口点popad,所以我们只需要Ctrl+f查找popad即可。
转载于:https://www.cnblogs.com/Ryancxyxx/p/8242093.html
逆向学习第二天如何手动脱UPX、Aspack壳相关推荐
- 【原创】脱UPX加壳的notepad.exe
[文章标题]: 脱UPX加壳的notepad.exe [文章作者]: 微微虫[S.T.C][DCT] [作者邮箱]: ]nuxgod@163.com [作者主页]: http://wwcgodsoft ...
- 手动脱Mole Box壳实战总结
作者:Fly2015 这个程序是吾爱破解脱壳练习第8期的加壳程序,该程序的壳是MoleBox V2.6.5壳,这些都是广告,能够直接无视了.前面的博客手动脱Mole Box V2.6.5壳实战中已经给 ...
- 用ollydbg手脱UPX加壳的DLL
用Ollydbg手脱UPX加壳的DLL 作者:fly [目标程序]:UPX加壳的EdrLib.dll.附件中还有输入表.重定位数据.UPXAngela以及UnPacked以供参考. [作 ...
- 手动脱UPX壳的几种方法
UPX是一种常见的压缩壳.通过PEID检测到是UPX的壳的话,可以用如下四种方式来脱壳: 单步跟踪法.ESP定律.内存镜像法.POPAD查找法. 1.单步跟踪法.就是使用ollydbg(简称OD)加载 ...
- 手脱UPX壳的几种方法
最近在研究各个壳的脱壳方法,有些心得,和大家分享一下如何手脱UPX的壳 我们的流程是 PEID查壳 得知壳的形式为 UPX 0.89.6 - 1.02/ 1.05 - 2.90 -> Marku ...
- 逆向学习1:52pojie第二课
52pojie第二课 去广告.弹窗及主页锁定 例子一 1.脱壳 2.C32asm搜索字符串 3.OD 例子2 脱壳 OD 去广告.弹窗及主页锁定 所用到的windows API: 1.消息框 Mess ...
- 逆向-新年快乐(UPX加壳)-学习笔记
先用IDA打开 查看段信息 UPX加壳了. 用Ollydbg调试: 从内存视图,UPX0入口调试,设置内存访问断点,进入CPU视图,F9运行. 不知如何跳转(应该在另一个段中): 设置断点: F9运行 ...
- [免费专栏] Android安全之静态逆向APK应用浅析「手动注入smali」+「IDA Pro静态分析so文件」+「IDA Pro基础使用讲解」
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...
- RE入门之脱壳——手脱UPX壳
很多加了壳的软件是很难逆向分析的,需要手脱.下面以UPX壳为例简单介绍一下如何手动脱壳 需要工具:x64dbg. 以buuctf中re的新年快乐为例 拿到程序以后使用x64dbg打开. F9运行到程序 ...
- c++ vector 一部分_C++逆向学习(二) vector
此文为原创文章 作者:ret2nullptr@先知社区 恭喜作者获得 价值100元的天猫超市享淘卡一张 欢迎更多优质原创.翻译作者加入 ASRC文章奖励计划 欢迎多多投稿到先知社区 每天一篇优质技术好 ...
最新文章
- 5s的app显示无法连接服务器,苹果5s无法连接app store解决方法汇总
- joda time, jackson 与 scala 反射
- 客服人员控制台Console,Salesforce Service Cloud的核心
- 数据结构——绪论以及线性表的顺序表示
- apache 配置文件内使用 8080 端口_【SpringBoot 框架】- SpringBoot 配置文件
- 包头昆区多大面积_包头地铁“胎死腹中”,何时“卷土重来”?
- java快捷键设置sop,今日工作总结|sop整理
- linux 黑苹果 win7双系统,学习笔记:安装黑苹果和win双系统(基础篇)
- C#编程,byte 与 int 相互转换
- matlab中nc值是什么意思,科学网-.nc数据读取详细资料matlab2010a及后面的版本-张凌的博文...
- 设计模式实例php,PHP三种设计模式实例教程
- linux 注释批处理,Linux_批处理 正则表达式(findstr) 整理,语法 findstr [/b] [/e] [/l] [/r] [/s] - phpStudy...
- 7 展讯Sprd设置-电池-关联自启动-跟踪代码
- 关闭防火墙之后docker要重启,不要问,问就是坑
- win7系统提示未识别网络无Internet访问,169.254.x.x
- 用JavaScript七夕表白,旋转的爱情魔方!
- 官宣了!大杀四方的 Master 就是阿尔法狗
- thinkphp 重构
- 这半年没批版号了,那些手游是怎么通过广电审核这一关并成功上架的?
- 字节跳动宣布以每股155美元回购员工期权 较上一轮上涨9%
热门文章
- ADC0804工作原理及过程
- 程序员版--致青春(一)——facejoking刷票工具(谈刷票原理)
- 计算机桌面个性化怎样设置方法,终于知晓如何设置个性化电脑桌面?
- 2021年茶艺师(中级)考试总结及茶艺师(中级)证考试
- 为什么一打电话就显示服务器故障,手机打电话黑屏怎么回事?手机打电话时出现黑屏情况的解决办法介绍...
- 基于halcon的HSV颜色匹配实例
- 无盘Linux详解:硬盘启动Knoppix的前前后后
- 程序语言的自我意识与仿他意识
- php mysql常见面试题_PHP常见面试题总结
- 12个用一条语句写成的有关日期函数