1.     FSG壳:

针对FSG壳 一般的思路是F8一路向下,遇见向上的跳转,直接在跳转语句后面下断点F9跳过,一路循环此过程,知道程序的OEP处,(自己先去查看内存中各段的内存地址区间判断程序的OEP大概位置)

针对FSG壳另一种快捷的方式(使用OD),首先打开OD载入FSG壳程序,点击“选项“”界面调试“  ”SFX“    选择”字节方式跟踪真正入口处“

点击之后确定,然后从新载入程序,然后从新点开如图所示的界面选中”停在自解压器的入口处“点击确定,然后你会发现OD在运作某种东西,从下面的跳动的字符可以看出,(跟踪SFX:read=。。。 write=。。。),稍等之后,就会进入走到程序的OEP。

2. UPX壳:

利用常用的方法:堆栈平衡来脱壳。

3. winupack壳:利用堆栈平衡脱壳。

4.  几种一般通用的脱壳方法:

第一种:堆栈平衡:用OD载入程序,一边点击F8,一边观察右边的寄存器区域,观察ESP的变化如果ESP发生变化,立刻在ESP处单击,然后右键点击”数据窗口中“

然后在此时跳转到的数据窗口中前几个字节处选中一个Byte或者Word或者Dword  ,然后右键”断点“  ”硬件访问“  根据之前选过的字形选择Byte,Word,Dword。然后F9

(有时候需要F9不止一次),然后就会跳转到OEP处。

第二种:        在OEP所在的代码段下访问断点ALT+M  进入内存区段界面,在OEP所在的段下访问断点,然后ALT+c   回到cpu界面 F9跳,重复如此的过程,如果中途遇见循环,则直接在循环后下断点F9走过(一般遇到循环,跳过循环再下访问断点再跟进,很快就会到OEP)

目前自己的几种脱壳方式相关推荐

  1. Android 加壳与脱壳方式总结

    介绍 说到加壳,之前接触的主要都是pc端的壳,当时的脱壳就是用的esp脱壳法,大概意思就是程序运行到将当前环境保存之后,在当前的esp指向的地址下硬件断点,然后再次运行到该点时,进行dump内存,即可 ...

  2. Hive metastore三种配置方式

    Hive的meta数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储.远端存储比较适合生产环境.Hive官方wiki详细介绍了这三种方式,链接为:Hive Metastore. 一.本地d ...

  3. c语言程序设计分段定时器,单片机C语言编程定时器的几种表达方式

    原标题:单片机C语言编程定时器的几种表达方式 吴鉴鹰单片机开发板地址 店铺:[吴鉴鹰的小铺] 地址:[https://item.taobao.com/item.htm?_u=ukgdp5a7629&a ...

  4. C++中的两种绑定方式(静态绑定、动态绑定)

    两种绑定方式 静态绑定:在编译时刻,根据指针或引用变量的静态类型来决定成员函数属于哪一个类. 动态绑定:在运行时刻,根据指针或引用变量实际指向或引用的对象类型(动态类型)来确定成员函数属于哪一个类. ...

  5. python数据结构与算法:二叉树及三种遍历方式(先序遍历/中序遍历/后序遍历)

    树的实现采用queue的形式: 树的三种遍历方式(广度优先白能力法):先序遍历(根左右),中序遍历(左根右)以及后序遍历(左右根) ######################P6.4 数据结构### ...

  6. Java多线程的11种创建方式以及纠正网上流传很久的一个谬误

    创建线程比较传统的方式是继承Thread类和实现Runnable,也可以用内部类,Lambda表达式,线程池,FutureTask等. 经常面试会问到继承Thread类和实现Runnable的区别,然 ...

  7. C/C++中switch用法的一种替换方式

    在C/C++中,switch语句是经常被用到的,当switch内的case语句较多时程序有时显得比较繁乱,此种情况下可以用另外一种实现方式替代switch.详细用法见例子: #include &quo ...

  8. 分布式锁的三种实现方式_基于 redis 的分布式锁实现

    云龙 资深运维开发工程师,负责游戏系统配置管理平台的设计和开发,目前专注于新 CMDB 系统的开发,平时也关注运维自动化,devops,python 开发等技术. 背景 CMDB 系统里面的机器数据会 ...

  9. LVS原理详解(3种工作方式8种调度算法)--老男孩

    一.LVS原理详解(4种工作方式8种调度算法) 集群简介 集群就是一组独立的计算机,协同工作,对外提供服务.对客户端来说像是一台服务器提供服务. LVS在企业架构中的位置: 以上的架构只是众多企业里面 ...

  10. (C++)string 的两种输入方式和输出方式

    注:头文件如下 #include<string> #include<cstdio> #include<iostream>using namespace std; 注 ...

最新文章

  1. oracle数据类型之number/char浅析
  2. 一站式开源测试平台:MeterSphere
  3. 三星I9100[4.0 固件ROM] [2012.03.15]万众期待的欧版官方4.0.3完美汉化完美教程
  4. SQL Server 2005无法输入中文的解决方案
  5. resultmap拿不到数据_阿里巴巴国际站每日电商运营工作数据表格
  6. 大卸iphone十八块..iphone 3GS 拆机..有图有真相...附拆机步骤!
  7. svn回退到上一个版本_Git实用教程(一) | 为什么需要版本控制?(以嵌入式项目开发为例)...
  8. Android 系统(216)---Android坐标分析过程
  9. Asp学习者完整攻略之三:操作SQL:SQL基础:
  10. samba服务器_win10 更新导致无法连接samba服务器
  11. SQLite 之 C#版 System.Data.SQLite 使用
  12. python清屏失败,如何在 Python 中清屏
  13. 有限元法基本思想和分类
  14. 【经验分享】用PS如何将图片的四角做成圆弧角
  15. 非线性思维 -- 大前研一
  16. cuda compute capability
  17. Linux socket跨局域网聊天和文件传输
  18. VB6下如何获得硬盘序列号
  19. 服务器系统可以重装系统,服务器上可以重装操作系统吗
  20. 集成模型Bagging和Boosting的区别

热门文章

  1. python按键退出循环_Python的for循环退出
  2. java中对象的克隆
  3. 小菜找实习——阿里3月27日场笔试第一题
  4. java 加入音乐_如何实现java插入背景音乐
  5. No module named ‘gym‘
  6. matlab灰色关联分析,灰色关联度分析(为什么不显示图像)大佬们帮我看看
  7. 小程序快速入门:wxss的使用
  8. 如何为我们的程序编写开发文档——Java文档注释
  9. 万无一失,网站的高可用架构
  10. 对编程语言的数据类型的理解