1 查看信息

  • 使用ExeInfoPe查看此壳程序

  • 可以看出是很老的FSG壳。

分析:

Entry Point : 000000154,熟悉PE结构的知道,入口点(代码)揉进PE头去了。

在WIN10 以来在(被限制了)PE 头中不能有执行代码,只有在WIN7 及其以前的机器上,此程序才能执行。所以用虚拟机来脱这个很老的壳,在目前(本人)win10的机器上无法运行。

2 使用LordPE 观察以下PE结构

  • 点击查看区段 信息:

  • 分析:

发现区段有两个,都把区段名抹去了;且第一个区段的虚拟大小虽然0x17000 但是实际大小(文件中的大小)是0

3 使用OD调试此程序尝试找OEP

3.1 打开OD定位壳

  • 用Nop 破坏花指令使得反汇编正确解析后,添加注释、标签 - "FSG壳"

分析: 我们发现一进来,壳早就准备好了全部寄存器数据在地址0x4219D8的位置,把当前位置保存环境的地址放到当前的ESP寄存器,那就能POP栈操作,操作壳保存好的数据了。为啥我们看不到它之前的操作? 之后写壳的时候再分析

3.2 尝试找 OEP

  • 单步运行
  • 遇到第一个call (字符操作核心部分)

0x000400160:

CALL DWORD PTR DS:[EBX];此时EBX是 0x4219dc --- [EBX]:是0x4001e8

进入 0x4001e8:

结合 call 的下一句 大致理解这个算法

分析:

这个字符串拷贝的算法,(浅淡的观测下)不可逆的拷贝,而且信息不全,所以可能不重要。

我们可以先忽略这个拷贝循环 -----》 跳过这个拷贝算法: 我们在后面的每个 jmp/call 鼠标点过去一下看会不会跳回去之类的,直到找到了。

或者你安装了高亮插件(asmHighLight.dll):由于我们分析出这个拷贝的核心调用函数是 地址为 0x400160 这句opcode,那鼠标点在上面查看后面在哪里没有该高亮色,就大致找一下就能跳过这个算法部分了。

然后我们在壳代码后面部分找到了最后一个高亮。其实这个无条件跳转流这就是我们这个算法部分的最后一句了。

  • 跳出字符串拷贝算法之后,我们发现代码只有10来行了。直接断点关键的跳转行,我们直接找OEP。

  • 然后我们发现跳转到 OEP的是这一句:

4 Dump

  • 进入入口函数后,我们点几个跳转点数据等 并没有发现有异常数据(异常数据)等。直接使用OD提供的插件ollyDump ,dump到本地。

分析:

观察其实地址 、入口点这些 头没有错。如果没有就点击脱壳

5 修复IAT

  • 这里使用impREC 来修复IAT

我们发现这里查找出来的IAT信息不完全,那就需要观察IAT表是否有异常了。

分析:

通过这里找到的函数偏移,可以迅速定位到IAT表。

比如这里的rva为B000。那么再虚拟空间中的地址就是40B000,在OD中观察如下:

  • 我们向下滑动,发现:

这两个异常值阻止了impREC的解析:我们该为正常的0000000间隔:

我们修改后再次用impREC解析 得到的IAT表目前来看貌似完成了

  • 最后点击修复转储到我们刚才用OD,dump出来的的程序

6 检测我们的脱壳之后的程序

yes!!!

---恢复内容结束---

脱壳系列_0_FSG壳_详细版相关推荐

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

    1 UPX壳的背景知识 UPX壳的功能有两种:给程序加壳.压缩程序 简述:将程序压缩(体积变小),在每次程序运行执行时实时的对程序解压缩.upx和普通的压缩区别就在于实时性 2 查看带壳程序信息 使用 ...

  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. 学习在Unity中创建一个动作RPG游戏
  2. 数据库连接字在Web.config里的用法
  3. 知道邻边和斜边求角度_从数学史角度看数系发展
  4. python中的pandas的两种基本使用_pandas中join()的两种应用方法
  5. IE9下apply的使用方式
  6. 斐波那契数列求解+尾递归
  7. java只修改变的字段_java注解之运行时修改字段的注解值操作
  8. python隐藏启动台_如何在Python中启动后台进程?
  9. python用符号计算检验多维数组的计算
  10. vi/vim使用进阶: quickfix
  11. 回到顶部 jquery
  12. nodejs项目实例医生预约平台宠物医院预约挂号网
  13. 叮咚志汇超级外卖餐饮 6.3.8 + 超级跑腿 v2.0.3 打包下载 小程序模块
  14. 远程医疗作用_是远程医疗保健的未来
  15. 2019年11月中华人民共和国县以上行政区划代码(用于身份证前六位判断户籍所在地)
  16. VPX视频叠加板卡学习资料第199篇:基于Xilinx FPGA XC5VFX100T的6U VPX视频叠加板卡
  17. 我所理解的Reed solomon 算法
  18. Unity2D游戏程序设计——打地鼠
  19. Linux下四款Web服务器压力测试工具…
  20. 《抗倭英雄戚继光》 郦波

热门文章

  1. tensorflow学习笔记(七):CNN手写体(MNIST)识别
  2. GITHUB开源SpringBoot2.0权限管理系统
  3. 国内七大免费网络硬盘横向评测
  4. Java实现图片复制
  5. 华为云——线性回归实验
  6. python同步枚举(遍历)两个list_拔剑-浆糊的传说_新浪博客
  7. 【iToday】涵盖100+技术网站的一站式资讯平台 | 文末送书
  8. BGW协议(算数共享)
  9. HTML|文本框和单选框
  10. android 自定义表情包,Android 端如何添加自定义表情