如何进行手动脱壳

2023-11-21 09:20
文章标签 进行 手动 脱壳

本文主要是介绍如何进行手动脱壳,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

脱壳的目的就是找到被隐藏起来的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定律进行脱壳是可以保证百分百把壳脱掉的,其他的方法根据情况而定。

这篇关于如何进行手动脱壳的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

如何在Mac上彻底删除Edge账户? 手动卸载Edge浏览器并清理残留文件技巧

《如何在Mac上彻底删除Edge账户?手动卸载Edge浏览器并清理残留文件技巧》Mac上的Edge账户里存了不少网站密码和个人信息,结果同事一不小心打开了,简直尴尬到爆炸,想要卸载edge浏览器并清... 如果你遇到 Microsoft Edge 浏览器运行迟缓、频繁崩溃或网页加载异常等问题,可以尝试多种方

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

Go语言中使用JWT进行身份验证的几种方式

《Go语言中使用JWT进行身份验证的几种方式》本文主要介绍了Go语言中使用JWT进行身份验证的几种方式,包括dgrijalva/jwt-go、golang-jwt/jwt、lestrrat-go/jw... 目录简介1. github.com/dgrijalva/jwt-go安装:使用示例:解释:2. gi

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见