如何进行手动脱壳

脱壳的目的就是找到被隐藏起来的OEP(入口点)

这里我一共总结了三种方法,都是些自己的理解希望对你们有用

单步跟踪法

一个程序加了壳后,我们需要找到真正的OEP入口点,先运行,找到假的OEP入口点后,单步调试,我们不能让程序向上调试,只能让程序向下调试,遇到向上调试的将鼠标光标指到下一个,按F4,或者下个断点运行也可以跳过向上调试的点。当我们遇到有很大跨度的调试时,有可能就是真的OEP入口点

利用ESP定律进行脱壳

这里的ESP定律进行脱壳就是要下硬件断点,从而找到真正的OEP位置

这里先将程序用x86dbg运行起来,然后找到假的oep入口点,进行单步调试,看寄存器中的ESP,是否变红,一般只有当ESP变红后,步骤如下

然后点击运行跳到刚才打的断点处,到了断点处后,一般来说就已经找到真的oep入口点了,但还是得看当时所在得函数,一个模块程序得入口点的函数push(入栈),万一跳转到这个断点处没有看到push也没关系,因为真正的eop已经在附近了,再次点击运行,看会跳转到哪,是否有push字样,同时看程序是否真正进入且运行起来,注意看call这个汇编代码,这个意思是调用子函数的意思,可能这个子函数就是真正eop入口点。

一步直达法

这里的方法就是先找到程序假的oep(入栈)点,因为有入栈点,那必然是有出栈点的,而我们的一步直达就是如此,按ctrl+f查找函数的位置,这个时候不要着急,因为真正的oep已经在附近了,然后一直向下步过,注意call这个函数,因为有些会直接调用子函数,而某些子函数中就是我们要找的真正oep入口点

以上是我自己的个人理解,没有加图片进去,大家看着来就好,但注意,利用ESP定律进行脱壳是可以保证百分百把壳脱掉的,其他的方法根据情况而定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/167652.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【2023云栖】大模型驱动DataWorks数据开发治理平台智能化升级

随着大模型掀起AI技术革新浪潮,大数据也进入了与AI深度结合的创新时期。2023年云栖大会上,阿里云DataWorks产品负责人田奇铣发布了DataWorks Copilot、DataWorks AI增强分析、DataWorks湖仓融合数据管理等众多新产品能力,让DataWorks这款已经…

文档明明在桌面上却不显示?5个方法轻松解决!

“我之前保存文档的时候明明选择保存在桌面,上次看的时候文件还在,但是今天打开电脑后发现我保存在桌面的文档不见了,这是为什么呢?还有机会找回我的文件吗?” 在日常使用电脑时,有些用户为了方便&#xff…

SAP权限设计简介

介绍 小技巧 -ERP 权限控制 繁中求简 , 闲聊一下 SAP 复杂权限设计的基本思想。 特别是适合大集团业务的 ERP 系统 , 应该提供一个非常完善的权限控制机制 , 甚至允许将权限控制字段细到字段级别,如果权限控制都做不到这点,估计产品销售就够呛&#x…

来聊聊阿里1688 /拼多多API接口接入| 让需求回到产品端

昨儿办公室讨论起了1688。 对,就是阿里搞批发的那个网站。 在上面,你可以买到各种各样价格低廉的产品,比如,办公用具、女孩子的皮筋、小孩子的玩具等等。 在小批量上,它和拼多多定价类似,但二者的赛道却不同…

物流实时数仓:采集通道搭建

系列文章目录 物流实时数仓:环境搭建 文章目录 系列文章目录前言一、环境准备1.前置环境2.hbase安装1.上传并解压2.配置环境变量3.拷贝jar包4.编写配置文件5.分发配置文件 3.Redis安装1.安装需要的编译环境2.上传并解压文件3.编译安装4.后台访问 4.ClickHouse安装5…

抽象类和接口

抽象类和接口 文章目录 抽象类和接口抽象类抽象类概念抽象类语法抽象类特性抽象类的作用 接口接口的概念语法规则接口使用接口特性接口类型是一种引用类型,但是不能直接new接口的对象接口中每一个方法都是public的抽象方法.接口中的方法是不能在接口中实现的&#x…

(亲测有效)VMware Windows虚拟机扩容

场景: VMware安装了一个windows系统,现在windows系统剩余空间不足,需要扩容。 解决步骤: 关闭虚拟机,状态如下: 2、点击编辑虚拟机设置-》扩展 3、输入最大磁盘大小-》点击扩展 4、等待成功后&#xff0c…

Python爬虫实战-批量爬取豆瓣电影排行信息

大家好,我是python222小锋老师。 近日锋哥又卷了一波Python实战课程-批量爬取豆瓣电影排行信息,主要是巩固下Python爬虫基础 视频版教程: Python爬虫实战-批量爬取豆瓣电影排行信息 视频教程_哔哩哔哩_bilibiliPython爬虫实战-批量爬取豆瓣…

光伏拉晶厂RFID智能化生产工序管理

一、项目背景 随着全球能源短缺和气候变暖的挑战日益突显,清洁能源已成为国内能源发展的主要目标之一,作为清洁能源的重要组成部分,光伏行业在过去几十年中取得了巨大的发展,成为我国的战略性新兴产业之一。在智能制造的大环境下…

Git 提交竟然还能这么用?

大家好,我是鱼皮。Git 是主流的代码版本控制系统,是团队协作开发中必不可少的工具。 之前已经给大家分享过 Git / GitHub 的学习指南,感兴趣的同学可以先看视频了解:https://www.bilibili.com/video/BV1KZ4y1e7cG。 这篇文章&am…

企业微信机器人定时发送图文信息,后续无需人工操作

企业微信群机器人是企业微信的内置功能,可以理解为是一个群提醒通知工具,接收数据并自动发送信息到企业微信群中。 数环通实现打通定时器和企业微信机器人的对接,定时执行自动化流程,无需人工干预,实现工作流程自动化&…

Thales安全解决方案:国家网络安全的关键

随着信息技术的飞速发展,网络安全问题日益凸显。在这个背景下,Thales安全解决方案正成为提高国家网络安全的关键。本文将探讨Thales安全解决方案如何为国家网络安全保驾护航。 一、Thales安全解决方案概述 Thales安全解决方案是一种全方位的网络安全防护…

《微信小程序开发从入门到实战》学习十八

3.3 开发创建投票页面 3.3.5 数据的双向传递 通过上一小节的代码和预览效果可以看到使用时间函数可以将视图层传递到逻辑层。 视图层数据由小程序管理,逻辑层通常保存在data对象,必须由开发者自己管理。 微信开发工具的AppData的面板可以实时查看到页…

使用 uWSGI 部署 Django 应用详解

概要 部署 Django 应用到生产环境是一个至关重要的步骤,其中选择合适的 WSGI 服务器对于确保应用的稳定性和性能至关重要。uWSGI 是一个流行的选择,它不仅高效、轻量,还非常灵活。本文将详细介绍如何使用 uWSGI 来部署 Django 应用&#xff…

【Linux】C文件系统详解(四)——磁盘的物理和抽象结构

文章目录 磁盘结构磁盘物理结构磁盘的具体物理结构磁盘结构的逻辑抽象 文件系统BootBlockSuperBlockGroupDescriptorTableinode tableDataBlocksinodeBitmapblockBitmaplinux中的inode 和文件名如何理解文件的增删查改删 补充细节1.如果文件误删了,我们该怎么办?2.inode确定分…

电脑监控软件都有哪些,哪款好用丨全网盘点

电脑监控软件是一种用于监视和控制计算机的软件工具,可以帮助企业和个人了解计算机的使用情况,保护数据安全,提高工作效率等。 电脑监控软件都有哪些: 1、域之盾软件 这是一款功能强大的电脑监控软件,可以实时监控电脑…

python绘图常见问题及解决方法总结

文章目录 1. 多个图片绘制到一起时出现title和xstick重合 1. 多个图片绘制到一起时出现title和xstick重合 fig, axes plt.subplots(6, 2, figsize(20, 40)) # Adjust the layout padding plt.subplots_adjust(hspace0.5, wspace0.4) # Plotting scatter plots for Tiu and ws_…

详解使用asyncio实现playwright并发操作(复制源码即可运行)

asyncio实现并发 我们可以使用asyncio来解决palywright中并发的问题,asyncio即Asynchronous I/O是python一个用来处理并发(concurrent)事件的包,是很多python异步架构的基础,多用于处理高并发网络请求方面的问题。给大家举一个经典的应用场景…

开源vs闭源大模型如何塑造技术的未来?开源模型的优劣势未来发展方向

开源vs闭源大模型如何塑造技术的未来?开源模型的优劣势&未来发展方向 写在最前面一、开源与闭源:定义与历史背景开源和闭源的定义开源大模型:社区驱动的创新 二、开源和闭源的优劣势比较开源大模型(瓶颈)数据&…

yolov8使用opencv2实时检测,两种物品,左上角显示信息

效果为: 左上角显示 帧率:FPS 序列号:SN 两种物品的检测数量和总数 可以应用于工业检测 import cv2 from ultralytics import YOLO from cv2 import getTickCount, getTickFrequency # 加载 YOLOv8 模型 model YOLO("weights/yolov8s.…