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壳_详细版相关推荐

  1. 脱壳系列_0_FSG壳_详细版

    1 查看信息 使用ExeInfoPe查看此壳程序 可以看出是很老的FSG壳. 分析: Entry Point : 000000154,熟悉PE结构的知道,入口点(代码)揉进PE头去了. 在WIN10 ...

  2. .ne中的控制器循环出来的数据如何显示在视图上_让不懂编程的人爱上iPhone开发系列2 iOS12+Swift4.2版-Checklists-16...

    让不懂编程的人爱上iPhone开发系列2 iOS12+Swift4.2版-Checklists-16 添加导航栏按钮 说明: 本系列教程改编自raywenderlich.com中的iOS Appren ...

  3. 合泰单片机触摸例程_合泰触摸单片机新建工程步骤(自编详细版)

    合泰触摸系列单片机新建工程步骤(自编详细版) 第一步: 新建一个工程文件夹,这里以 BS83B12A-3 单片机为实例,将文件夹 命名为 BS83B12A-3_Exam( 根据工程项目自定义,无要求 ...

  4. 脱壳的几种方法 详细操作步骤

    脱壳的几种方法  详细操作步骤 常见脱壳知识: 1.PUSHAD (压栈) 代表程序的入口点 2.POPAD (出栈) 代表程序的出口点,与PUSHAD相对应,一般找到这个,说明OEP可能就在附近 3 ...

  5. 【YOLO系列】--YOLOv1超详细解读/总结

    文章目录 前言 摘要 一.Introduction-介绍 二. Unified Detection-统一检测 三.Comparison to Other Detection Systems-与其他目标 ...

  6. 【转】VScode快捷键(超无敌详细版)

    转自:VScode快捷键(超无敌详细版)_但行好事,莫问前程-CSDN博客 通用快捷键: 快捷键 作用 Ctrl+Shift+P,F1 展示全局命令面板 Ctrl+P 快速打开最近打开的文件 Ctrl ...

  7. 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...

  8. Jetson Xavier NX学习笔记(三)系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版)

    Jetson Xavier NX 系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版) 文章目录 Jetson Xavier NX 系统烧录+开机教程+YOLOv7环境搭建+错误总结(详细版) ...

  9. Docker超详细版教程通俗易懂 -之- 入门篇

    前言 学习Docker,你可以熟练的操作命令,能够把你的项目构建成Docker镜像! 是后端开发人员必备的技能!下面是自己的学习笔记,希望能帮助到需要的你! 特别感谢哔哩哔哩狂神:[狂神说Java]D ...

最新文章

  1. 组合特征(五)countvector(w)+doc(w)+hash(w)
  2. php 递归太多报错,PHP、递归 - 角落里的星辰的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. 浏览器与服务器通信技术——Ajax详解
  4. IDA Pro 反汇编窗口基本操作
  5. 现代密码学8.1--密码学所涉及的数论和群论
  6. python中二分查找什么意思_python中二分查找法的实现方法
  7. MYSQL Incorrect string value: '\xE5\x8C\x97\xE4\xBA\xAC' for column
  8. 超简单的java爬虫
  9. 一流大学计算机专业,计算机专业一流大学太难考,不妨退而求其次,看看这5所大学...
  10. 使用Mac终端设置alias常用别名,以git提交为例
  11. WinAPI: Rectangle - 绘制矩形
  12. 计算机学科 集体备课记录,信息技术学科组集体备课活动记录
  13. mybatis 链接DB2查询报错,必需的字符转换器不可用。 ERRORCODE=-4220, SQLSTATE=null
  14. 去掉U盘写保护 修复u盘错误
  15. 【Microsoft Azure 的1024种玩法】三十四.将本地数据文件快速迁移到Azure Blob云存储最佳实践
  16. Linux下的常用软件集锦
  17. 3、NC系统接口集(持续更新)
  18. Android Wi-Fi Regulatory domain controlle the channel(以QCOM平台为例)
  19. 二叉树的基本性质及证明
  20. You-get 批量下载

热门文章

  1. Axure中继器-数据查询
  2. CVS文件导入SQL
  3. Linux 比较两个文件命令
  4. 我国在计算机科学领域故事,【校史故事365】333 胡正家:我国著名计算机专家...
  5. SAS ARMA模型拟合预测
  6. [数据可视化] 矩形树图(Treemap)
  7. 基于混合策略改进的蝴蝶优化算法
  8. 数据结构课设之家谱管理系统
  9. qpython 3h怎么使用_彭州混凝土表面气孔处理怎么施工
  10. 分布式Session共享(二):tomcat+memcached实现session共享 - 萝卜兔子 - 博客园