脱壳系列_1_UPX壳_详细版
1 UPX壳的背景知识
UPX壳的功能有两种:给程序加壳、压缩程序
简述:将程序压缩(体积变小),在每次程序运行执行时实时的对程序解压缩。upx和普通的压缩区别就在于实时性
2 查看带壳程序信息
- 使用PeID查看
- 使用ExeInfoPE查看
分析:
使用两个PE分析工具可以看出入口点是 0X0006DFF80,链接器版本是2.25,以及UPX 0.89
3 使用OD打开
- 看到一个pushad
- 意味着我们可能使用平衡ESP的方法找到入口点
1. 搜索popad
分析:
在搜索指令的时候一般不要点上整个块,先默认往下搜
注意:我们看到有两个跳转,一般OEP的跳转都是无条件的,大致断定是0x0046e133这个地址上的指令跳转目标是OEP。检测一下:把鼠标放在第一个上你会发现这里是一个循环,额你看一下跳转目标 就在上面第一条指令哪儿。。。尴尬,那这就是一个循环。现在可以很确定第二个跳转指令是我们想要的。
鼠标双击一下那个跳转地址:
有点茫然的发现 这不像是OEP啊。
别慌,这里是UPX壳,有加密的在运行的时候实时解密。我这里的EIP还没有动过,所以还在壳入口还没有解压缩。
在跳转指令那儿下一个断点单步进去:
这下就对了。
然后ollyDump下来,用impREC修复一下IAT就行了。
有空的时候再追加上这里面算法的详细分析。。。
脱壳系列_1_UPX壳_详细版相关推荐
- 脱壳系列_0_FSG壳_详细版
1 查看信息 使用ExeInfoPe查看此壳程序 可以看出是很老的FSG壳. 分析: Entry Point : 000000154,熟悉PE结构的知道,入口点(代码)揉进PE头去了. 在WIN10 ...
- .ne中的控制器循环出来的数据如何显示在视图上_让不懂编程的人爱上iPhone开发系列2 iOS12+Swift4.2版-Checklists-16...
让不懂编程的人爱上iPhone开发系列2 iOS12+Swift4.2版-Checklists-16 添加导航栏按钮 说明: 本系列教程改编自raywenderlich.com中的iOS Appren ...
- 合泰单片机触摸例程_合泰触摸单片机新建工程步骤(自编详细版)
合泰触摸系列单片机新建工程步骤(自编详细版) 第一步: 新建一个工程文件夹,这里以 BS83B12A-3 单片机为实例,将文件夹 命名为 BS83B12A-3_Exam( 根据工程项目自定义,无要求 ...
- 脱壳的几种方法 详细操作步骤
脱壳的几种方法 详细操作步骤 常见脱壳知识: 1.PUSHAD (压栈) 代表程序的入口点 2.POPAD (出栈) 代表程序的出口点,与PUSHAD相对应,一般找到这个,说明OEP可能就在附近 3 ...
- 【YOLO系列】--YOLOv1超详细解读/总结
文章目录 前言 摘要 一.Introduction-介绍 二. Unified Detection-统一检测 三.Comparison to Other Detection Systems-与其他目标 ...
- 【转】VScode快捷键(超无敌详细版)
转自:VScode快捷键(超无敌详细版)_但行好事,莫问前程-CSDN博客 通用快捷键: 快捷键 作用 Ctrl+Shift+P,F1 展示全局命令面板 Ctrl+P 快速打开最近打开的文件 Ctrl ...
- 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...
- Jetson Xavier NX学习笔记(三)系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版)
Jetson Xavier NX 系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版) 文章目录 Jetson Xavier NX 系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版) ...
- Docker超详细版教程通俗易懂 -之- 入门篇
前言 学习Docker,你可以熟练的操作命令,能够把你的项目构建成Docker镜像! 是后端开发人员必备的技能!下面是自己的学习笔记,希望能帮助到需要的你! 特别感谢哔哩哔哩狂神:[狂神说Java]D ...
最新文章
- 组合特征(五)countvector(w)+doc(w)+hash(w)
- php 递归太多报错,PHP、递归 - 角落里的星辰的个人空间 - OSCHINA - 中文开源技术交流社区...
- 浏览器与服务器通信技术——Ajax详解
- IDA Pro 反汇编窗口基本操作
- 现代密码学8.1--密码学所涉及的数论和群论
- python中二分查找什么意思_python中二分查找法的实现方法
- MYSQL Incorrect string value: '\xE5\x8C\x97\xE4\xBA\xAC' for column
- 超简单的java爬虫
- 一流大学计算机专业,计算机专业一流大学太难考,不妨退而求其次,看看这5所大学...
- 使用Mac终端设置alias常用别名,以git提交为例
- WinAPI: Rectangle - 绘制矩形
- 计算机学科 集体备课记录,信息技术学科组集体备课活动记录
- mybatis 链接DB2查询报错,必需的字符转换器不可用。 ERRORCODE=-4220, SQLSTATE=null
- 去掉U盘写保护 修复u盘错误
- 【Microsoft Azure 的1024种玩法】三十四.将本地数据文件快速迁移到Azure Blob云存储最佳实践
- Linux下的常用软件集锦
- 3、NC系统接口集(持续更新)
- Android Wi-Fi Regulatory domain controlle the channel(以QCOM平台为例)
- 二叉树的基本性质及证明
- You-get 批量下载