文章目录

  • 声明
  • 单步跟踪
    • 第一个js
    • 第二个jnz
    • 第三个jmp(跳往OEP处)
  • ESP定律
    • 执行到特定位置
    • Dump数据区
    • 设置硬件访问断点
  • FSG2.0专属搞法
    • 执行完pop语句后
    • follow in Disassembler
    • 设置硬件执行断点

声明

记住起始ESP值 0x18FF8C

单步跟踪

还是那句话,向下跳转执行,向上跳转直接F4
。前面看过我单步执行的都能运行到下图这里


这里得注意了,有三个跳转。。这就是FSG壳的坑点处

第一个js


向上跳的,不执行的,直接看第二个jnz。

第二个jnz


它直接跳过了下一个jump指令。。这就是坑点。。(因为第三个jump就是跳往OEP处),千万不能执行这个指令,很多操作,直接F4,或者直接改动标志寄存器让这个条件跳转不成立即可。

第三个jmp(跳往OEP处)


OEP处,ESP值 0x18FF8C,找到OEP,直接dump即可,不要怕看不见,脱壳后再次载入就能看见了,而且和未加壳时一模一样

脱壳后:

ESP定律

执行到特定位置

Dump数据区


设置硬件访问断点



然后运行就到达了这里:

紧接着单步跟踪,注意三跳转坑即可

最后记得删除硬件访问断点。

FSG2.0专属搞法

执行完pop语句后


观察栈中第四个参数。它就是OEP的地址,即0x401686

follow in Disassembler

设置硬件执行断点



然后执行后

然后dump即可

手撕FSG2.0壳(有坑点)相关推荐

  1. 手撕Redis6.0

    文章目录 简介 安装 下载 解压 编译 启动和关闭 配置用户名和密码 版本`6.0`之前 版本`6.0`之后 ACL常用命令 多线程 Redis6.0配置文件解读 简介 Redis 是完全开源免费的, ...

  2. 手撕 Golang 高性能内存缓存库 bigcache! #4

    1. 前言 你好哇!我是小翔.之前写了三篇 #Golang 并发编程 的文章了,这次来换换口味,开个 手撕源码 的新坑!一起来扒一扒 Go 语言高性能 local cache 库 bigcache,看 ...

  3. Python3《机器学习实战》学习笔记(八):支持向量机原理篇之手撕线性SVM

    原 Python3<机器学习实战>学习笔记(八):支持向量机原理篇之手撕线性SVM 置顶 2017年09月23日 17:50:18 阅读数:12644 转载请注明作者和出处: https: ...

  4. java手撕KMeans算法实现手写数字聚类(失败案例)

    最近几天刚刚接触机器学习,学完K-Means聚类算法.正好又赶上一个课程项目是识别"手写数字",因为KMeans能够实现聚类,因此自然而然地想要通过KMeans来实现. 前排提示: ...

  5. 深度学习之手撕深度神经网络DNN代码(基于numpy)

    声明 1)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除. 2)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢 ...

  6. 和12岁小同志搞创客开发:手撕代码,做一款遥控灯

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  7. 和12岁小同志搞创客开发:手撕代码,做一款声控灯

    机缘巧合在网上认识一位12岁小同志,从零开始系统辅导其创客开发思维和技巧. 项目专栏:https://blog.csdn.net/m0_38106923/category_11097422.html ...

  8. 手撕代码之七大常用排序算法 | 附完整代码

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑ 0.导语 本节为手撕代码系列之第一弹,主要来手撕排序算法,主要包括以下几大排序算法: 直接插入排序 冒泡 ...

  9. 手撕面试题:多个线程交替打印问题

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 第一篇打算总结下阿里最喜欢问的多个线程顺序打印问题,我遇到 ...

最新文章

  1. 用eclipse阅读编辑android和kernel,uboot的源代码
  2. 实战并发编程 - 09多线程Guarded Suspension模式案例实战
  3. 动态代理的两种方式_动态代理是基于什么原理?
  4. clion phpstorm 等jetbrains编辑器激活教程
  5. windows和linux共同分区格式,Linux和Windows共存的模式下分区要小心
  6. dbus-python指南
  7. js----与浏览列表有关的对象(浏览器对象)
  8. ECMAScript 6 之 let 和 const 命令
  9. c语言程序结果 856400,《C语言程序设计教程》习题参考解析1.doc
  10. CentOS 6.5 安装mysql5.5
  11. css卷轴动画小程序,微信小程序登录页:CSS实现动画云层漂浮
  12. IP地址,子网掩码,默认网关,DNS服务器是什么意思?
  13. 住在我隔壁储藏室的大学刚毕业的小夫妻
  14. 给俺老婆的一封信(太有才了!)
  15. 元宇宙的第一步,应该在汽车里迈出去?
  16. mmdetection3d的安装和使用
  17. 2021年中国集成电路重点企业对比(光迅科技VS大唐电信VS士兰微VS中芯国际)[图]
  18. WebRtC视频jitterbuffer原理机制
  19. 1.8 正则表达式【匹配一个或多个字符】
  20. 小米彷徨:股价与业绩的自我救赎

热门文章

  1. ML之API:国内外各大人工智能平台(百度云/华为云/阿里云/Face++等)及其API的简介、使用方法之详细攻略
  2. OpenCV官方文档 理解k - means聚类
  3. shp文件导入数据库
  4. python thrift demo
  5. js Array.prototype.slice.call(arguments,0) 理解
  6. SSM框架整合(一)
  7. FormView里用FindControl找不到控件的解决方法
  8. FORMS变量类型和消息提示
  9. 对于58同城自动登陆的补充【主要是代码】
  10. POJ1988 Cube Stacking