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. 脱壳系列_2_IAT加密壳_详细版解法1(含脚本)

    1 查看壳程序信息 使用ExeInfoPe 分析: 发现这个壳的类型没有被识别出来,Vc 6.0倒是识别出来了,Vc 6.0的特征是 入口函数先调用GetVersion() 2 用OD找OEP 拖进O ...

  2. 脱壳系列_2_IAT加密壳_详细版_解法1_包含脚本

    1 查看壳程序信息 使用ExeInfoPe 分析: 发现这个壳的类型没有被识别出来,Vc 6.0倒是识别出来了,Vc 6.0的特征是 入口函数先调用GetVersion() 2 用OD找OEP 拖进O ...

  3. Oracle_Database_11g_标准版_企业版__下载地址_详细列表

    Oracle_Database_11g_标准版_企业版__下载地址_详细列表 Oracle Database 11g Release 2 Standard Edition and Enterprise ...

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

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

  5. 《zw版·delphi与halcon系列原创教程》zw版_THOperatorSetX控件函数列表 v11中文增强版

    <zw版·delphi与halcon系列原创教程>zw版_THOperatorSetX控件函数列表v11中文增强版 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就 ...

  6. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(15)-用户登录详细错误和权限数据库模型设计

    原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(15)-用户登录详细错误和权限数据库模型设计     ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)    ...

  7. iOS App上架流程(2016详细版)

    iOS App上架流程(2016详细版) 原文地址:http://www.jianshu.com/p/b1b77d804254 感谢大神整理的这么详细 一.前言: 作为一名iOSer,把开发出来的Ap ...

  8. 《zw版·Halcon-delphi系列原创教程》 zw版-Halcon常用函数Top100中文速查手册

    <zw版·Halcon-delphi系列原创教程> zw版-Halcon常用函数Top100中文速查手册 Halcon函数库非常庞大,v11版有1900多个算子(函数). 这个Top版,对 ...

  9. Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例

    概要  前面,我们已经学习了ArrayList,并了解了fail-fast机制.这一章我们接着学习List的实现类——LinkedList.和学习ArrayList一样,接下来呢,我们先对Linked ...

随机推荐

  1. 常用的HTTP状态代码(4xx、5xx)详解

    HTTP状态代码常用的如下: 400 无法解析此请求. 401.1 未经授权:访问由于凭据无效被拒绝. 401.2 未经授权: 访问由于服务器配置倾向使用替代身份验证方法而被拒绝. 401.3 未经授 ...

  2. unity中实现物体在一定角度范围内来回旋转

    using System.Collections; using System.Collections.Generic; using UnityEngine; public class Rotate : ...

  3. Java学习笔记——设计模式之六.原型模式(浅克隆和深克隆)

    That there's some good in this world, Mr. Frodo. And it's worth fighting for. 原型模式(prototype),用原型实例指 ...

  4. 机器学习经典算法之Apriori

    一. 搞懂关联规则中的几个概念 关联规则这个概念,最早是由 Agrawal 等人在 1993 年提出的.在 1994 年 Agrawal 等人又提出了基于关联规则的 Apriori 算法,至今 Apr ...

  5. 2018.8.17 2018暑假集训 关于dp的一些感想(以目前的知识水平)

    学了这么长时间的dp似乎还是不怎么样 谨以此篇文字记录一年以来与dp斗智斗勇的各种经历 关于dp(也就是动态规划)似乎对于每个OIer来说都是一个永远的噩梦. 刚刚开始学dp的时候完全搞不明白(只是觉 ...

  6. centos7安装hadoop完全分布式集群

    groupadd test             //新建test工作组 useradd -g test phpq        //新建phpq用户并增加到test工作组 userdel 选项 用 ...

  7. Node热部署插件

    一.supervisor 首先需要使用 npm 安装 supervisor(这里需要注意一点,supervisor必须安装到全局) $ npm install -g supervisor Linux ...

  8. Bzoj 4582 [Usaco2016 Open] Diamond Collector 题解

    4582: [Usaco2016 Open]Diamond Collector Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 204  Solved: ...

  9. 【题解】危险的工作-C++

    Description 给出一个数字N,N<=11.代表有N个人分担N个危险的工作. 每个人对应每个工作,有个危险值 每个人担任其中一项,问每个人危险值相加,最小值是多少. Input 第一行给 ...

  10. Spring Cloud Alibaba | Sentinel: 服务限流高级篇

    目录 Spring Cloud Alibaba | Sentinel: 服务限流高级篇 1. 熔断降级 1.1 降级策略 2. 热点参数限流 2.1 项目依赖 2.2 热点参数规则 3. 系统自适应限 ...