脱壳总结之 - upx,aspack, FSG,PECompact2.X,WinUpack脱壳
1. 单步执行法
- OD加载程序,F8单步步入程序,向上返回的要按键F4跳转到向上返回的下一句语句
- 特征代码是 popad , 执行下一句语句,会有一个很大的跳转,执行次跳转语句,即会进入压缩程序的真正入口
- 右键点击 用OD脱壳调试进程,下面有方式一和方式二,任选一种,点击脱壳,保存到文件夹
2. 使用工具 - LoadPE
- 打开目标程序的进程
- 右键修正镜像大小
- 右键完整转存
3. 命令查找法(upx,aspack)
- 查找命令popad
- 参考单步执行法
4. esp定律法
- 单步执行一步
- 选择ESP的数值,右键数据窗口中跟随
- 数据窗口中选中ESP的数值,设置硬件访问断点
- 直接运行,断点处就是要跳转到程序真正入口的jmp语句
- 单步执行,进入真正的入口
5. 两次内存镜像法
- 打开查看内存窗口,或点击快捷键M进入内存查看
- 在 .rsrc 处(一般是第一个)设置访问断点,并运行至断点处
- 在 .text 处(一般是第一个)设置访问断点,并运行至断点处
- 接着线下就能进入真正的入口
6. 模拟跟踪(aspack压缩壳可用)
- 打开内存查看窗口,找到第一个 .aspack 区段, 记录最前面的地址为addr(区段可以是对应壳的名字)
- tc eip<addr,此方法很慢
7. SFX
- 打开 选项 - 调试设置
- 点击SFX,选中块方式跟踪真正入口处
- 点击重新运行程序
- 注意:此方法不一定准确
8. 手动修复IAT
- 通过OD找到脱壳后的程序入口
- 随便找一个call的地址addr,OD使用命令 d addr,向上滚动,一直到上面的地数值都是0000 0000,记录当前 addr1
- 然后向下滚动, 一直到下面都是0000,记录当前地址 addr2
- 打开 Import Reconstructor软件,在IAT的RVA填入addr1-基址,size填入addr2-addr1(或者直接填1000)
- 点击无效函数,右键剪切
- 转存到文件
OD的数值窗口打开方法,数据窗口中,右键 - 长型 - 地址
9. 最后一次异常法;
打开OD选项,选择异常,取消勾选所有异常。
记录跑飞次数 n
找SE句柄,即第 n-1 处
转到SE xxxx处下断点,sheft+F9后单步调试
10. BP VirtualFree
- BP VirtualFree,下断点
- SHIFT+F9,取消断点SHIFT+F9,取消断点
- ALT+F9
- 查找 push 8000(特征码),并运行到这
- 单步跟
11. bp VirtualAlloc
- bp VirtualAlloc 下断点
- SHIFT+F9运行SHIFT+F9运行
- 取消断点
- ALT+F9
- 向下拉,看到JMP。运行到这
12. at GetVersion
- at GetVersion 下断点
- 单步调
13. 条件断点脱壳(WinUpack)
在大跳转的代码处,程序不一定会直接跳转到入口处(比如FSG壳),会有很多次循环才会跳转到入口处,因为程序要建立输入表,此时可以看大跳转上面的一句判断语句
- 单步执行,然后,有一个大跳转,不会跳转
- 该跳转上面有一句test eax, eax
- 到跳转到真正入口处下条件断点 eax==0,也可能是地址([eax]==0)
- 下面很多循环都是在重建输入表
14. 附加数据处理
工具为 HexWorkshop
- 使用HexWorkshop,在原 exe 程序中寻找要附加的数据(从最后往前找,一直到全部为0的地方)
- 从找到的第一个不为0的地方开始,按住sheft键,一直复制到最后
- 使用HexWorkshop打开脱壳后的 exe 程序
- 在数据的最后粘贴复制的数据
- 另存为exe文件到文件夹
脱壳总结之 - upx,aspack, FSG,PECompact2.X,WinUpack脱壳相关推荐
- RE入门之脱壳——手脱UPX壳
很多加了壳的软件是很难逆向分析的,需要手脱.下面以UPX壳为例简单介绍一下如何手动脱壳 需要工具:x64dbg. 以buuctf中re的新年快乐为例 拿到程序以后使用x64dbg打开. F9运行到程序 ...
- Android APK脱壳--腾讯乐固、360加固一键脱壳 亲测可用
日期:2019年8月28日 设备:win木木模拟器2.2.16 脱壳教程:https://www.jianshu.com/p/138c9de2c987 adb连接木木模拟器教程:https://www ...
- 【脱壳-寻找OEP】通过内存定位OEP实现脱壳
这个方法使用的是特殊OD,这个OD也叫VBOD 这个OD只会在执行的时候断点,其他异常之类的操作都不会进行断点. 这个方法是通过运行壳后壳会对原来的代码段进行 解密 还原 写入 这三个步骤,我们通过在 ...
- [加壳脱壳] 手写自己的壳子,并尝试脱壳
请到下面链接食用
- NOD32 2.70.32 Full ( Информация по инсталяции + Фикс + Обновления )
NOD 32 Antivirus System от Eset Software обеспечивает безупречную защиту персональных компьютеров и ...
- 35. 脱壳篇-UPX和WinUpack压缩壳的使用和脱法
UPX官网:http;//upx.sourceforge.net UPX加壳 通过cmd窗口执行,进入upx目录,执行: upx.exe fishc.exe 或者直接将exe拖至upx.exe上即可 ...
- 【How2RE】 UPX壳及脱壳方式
0x00 什么是壳 壳是另外在PE文件中包含的代码,并且不影响PE文件正常的执行.而壳也分为很多种,这里从UPX壳开始介绍. 0x01 压缩壳 压缩的分类 压缩的目的就是将体积大的可执行文件缩小的过程 ...
- LyScript 插件实现UPX脱壳
LyScript 插件可实现对压缩壳的快速脱壳操作,目前支持两种脱壳方式,一种是运用API接口自己编写脱壳过程,另一种是直接加载现有的脱壳脚本运行脱壳. 首先准备一个加了UPX压缩壳的程序,然后我们通 ...
- 手工脱壳之AsPack压缩脱壳-随机基址
一.工具及壳介绍 二.脱壳 1.ESP定律脱壳 2.单步跟踪脱壳 3.基址重定位的修复 一.工具及壳介绍 使用工具:Ollydbg.PEID.ImportREC.LoadPE.010 Editor 查 ...
- 实验四:使用UPX加壳与脱壳
一.实验目的 了解程序加壳.脱壳原理 掌握PE文件结构 学习利用UPX Shell.LoardPE.IDA等工具完成软件的加.脱壳操作 二.实验题目 UPX加壳:对crackme加上UPX壳,用 Lo ...
最新文章
- 文件管理服务器主机,通过BlueHost主机文件管理器上传文件
- laravel5.8笔记一:安装与服务器环境配置
- 【重磅直播预告】IDC提效分享
- 自动化用户特定实体的访问控制
- SpringMVC学习笔记整理
- ptmalloc堆内存管理机制(主要讨论Linux x86下32位系统)
- shell if判断语句
- Delphi的StringReplace 字符串替换函数
- Hive排名函数入门
- Kernel启动时 驱动是如何加载的module_init,加载的次序如何;略见本文
- H5网页漫画小说苹果cms模板源码/支持对接公众号/支持三级分销
- 英语简历计算机能力描述,简历计算机水平描述
- gpgga格式读取MATLAB,GPGGA格式解析
- HTML单选框-多选框-按钮
- 灵越7590BIOS升级到1.6版本无法回退
- 【Python】 第5章-1 输出星期名缩写 (70分)
- 动态指针时钟:利用pyqt5制作指针钟表显示实时时间
- 腾龙视觉设计学院孙姣老师讲pscs6艺术照片课录屏
- onetab丢失崩溃怎么办?快试试我这个类似功能的插件吧,也可以当做插件开发入门教程
- java依赖什么意思,JavaEE中的依赖性——依赖查找
热门文章
- 笔记本电脑WIFI图标消失解决方案大全,无WIFI图标也能自由连WIFI上网。
- Weka的全名是怀卡托智能分析环境
- SQL- With as 用法
- WPBeginner年满10岁-反思,更新和WordPress赠品(奖金124,000美元以上)
- WTL for MFC Programmers, Part VI - Hosting ActiveX Controls
- Web前端大作业—— 饮食餐饮网站 咖啡网站pc端带轮播(5个页面)HTML+CSS+JavaScript 学生美食网页设计作品 学生餐饮文化网页模板
- Visual Studio 2019 企业版 16.9.x 创建离线包并安装教程(带百度网盘下载地址和序列号)
- iOS10 更新后问题,获取相册,录音时候闪退问题
- WPF Behavior 行为
- dba成长随笔 -- 深入了解Oracle