部分壳与脱壳

article/2025/9/12 22:34:16

壳与脱壳

对网上部分壳与脱壳的摘录与总结,仅供参考,侵删
参考链接1

https://www.52pojie.cn/thread-138380-1-1.html

参考链接2

https://www.cnblogs.com/milantgh/p/3869083.html

参考链接3

http://blog.sina.com.cn/s/blog_3e28c8a5010132m6.html


摘自链接3,详情请看链接3
从功能上抽象,软件的壳和自然界中的壳相差无几。无非是保护、隐蔽壳内的东西。而从技术的角度出发,壳是一段执行于原始程序前的代码。原始程序的代码在加壳的过程中可能被压缩、加密……。当加壳后的文件执行时,壳-这段代码先于原始程序运行,他把压缩、加密后的代码还原成原始程序代码,然后再把执行权交还给原始代码。 软件的壳分为加密壳、压缩壳、伪装壳、多层壳等类,目的都是为了隐藏程序真正的OEP(入口点,防止被破解)

查壳

查壳原理:查找关键字、匹配特征码等等
利用软件查壳
1.Detect it Easy

https://github.com/horsicq/Detect-It-Easy

2.ExeinfoPe

http://exeinfo.atwebpages.com/
https://github.com/ExeinfoASL/ASL

脱壳方法

一、单步跟踪法
1.OD载入,点 “不分析代码“
2.单步向下跟踪F8,实现向下的跳。也就是说向上的跳转不让其实现(通过F4)
3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4 (或者右健单击代码,选择断点一一>运行到所选)
4.绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现!
5.如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑飞,这样很快就能到程序的OEP
6.在跟踪的时候,如果运行到某个CALL程序就运行的:就在这个CALL中F7进入
7.一般有很大的跳转(大跨段),比如jmp xxxxxx 或者JE xxxxxx或者有RETN的一般很快就会到程序的OEP。

备注:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键–>“跟随”,然后2下断,Shift+F9运行停在“跟随”置,再取消断点,维续F8单步跟踪。一般情况下可以轻松到达OEP。

二、ESP定律法
ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一-下来到程序的OEP了! )

1.开始就点F8,注意观察0D右上角的寄存器中ESP有没突现(变成红色)。(这只是-般情况下,更确切的说我们选择的ESP值是关键句之后的第一个ESP值)
2.在命令行下: dd XXXXXX (指在当前代码中的ESP地址,或者是hr XXXXXXX),按回车!
3.选中下断的地址,断点—>硬件访问—>WORD断点。
4.按一下F9运行程序,直接来到了跳转处,按下F8,到达程序OEP。

三、二次内存镜像法
1.用OD打开软件
2.点击选项–>调试选项–>异常,把里面的忽略全部打上,然后CTRL+F2重载下程序
3:按Alt+M,打开内存镜像,找到程序的第一个.rsrc.按F2下断点,然后按SHIFT+F9运行到断点,接着再按Alt+M,打开内存镜象,找到程序的第一个.rsrc.上面的.CODE (也就是00401000处),按F2下断点,然后按SHIFT+F9 (或者是在没异常情况下按F9),直接到达程序OEP

四、一步直达法(Popad法)
1.开始按Ctrl+F,输入:popad(只适合少数壳,包括UPX、ASPACK壳)。按下F2,F9运行到此处
2.来到大跳转,点下F8,到达OEP

五、最后一次异常法
1.用OD打开软件
2.点击选项–>调试选项–>异常,把里面的√全部去掉,CTRL+F2重载下程序
3.开始程序就是一个跳转,在这里我们按SHIFT+F9,直到程序运行,记下从开始按SHIFI+F9到程序运行的次数m
4.CTRL+F2重载程序,按SHIFT+F9 (这次按的次数为程序运行的次数(m-1)次)
5.在D的右下角我们看见有一个 ”SE句柄”,这时我们按CTRL+G,输入SE句柄前的地址
6.按F2下断点!然后按SHIFT+F9来到断点处
7.去掉断点,按F8慢慢向下走
8.到达程序的OEP

五、模拟跟踪法
1:先试运行,跟踪一下程序,看有没有SEH暗桩之类
2:ALT+M打开内存镜像,找到(包含=SFX,imports,relocations)

内存镜像,项目 30
地址=0054B000
大小=00002000 (8192.)
Owner=check 00400000
区段=.aspack
包含=SFX,imports,relocations
类型=Imag 01001002
访问=R
初始访问=RWE

3:地址为0054B000,如是我们在命令行输入tc eip<0054B000,回车,正在跟踪

备注:大家在使用这个方法时,要理解它要在什么样的情况下才可以使用
参考链接:

https://bbs.pediy.com/thread-119676.htm

六、“SFX"法
1.设置OD,忽略所有异常,也就是说异常选项卡里面都打上勾
2.切换到SFX选项卡,选择“字节模式跟踪实际入口(速度非常慢)”,确定。
3:重载程序(如果跳出是否“压缩代码?”选择“否”,OD直接到达OEP )

Btw:这种方法不要滥用得好,锻炼能力为妙。

七、利用软件或者脚本脱壳
如脱壳机等

壳与脱壳

各种常见压缩壳的入口点以及ESP定律脱法 (见链接)

链接:https://blog.51cto.com/yuncx/86330

1.UPX

手动脱壳
1.单步跟踪法
2.ESP定律
3.内存镜像法
4.Popad法
5.模拟跟踪法
6.SFX法

脱壳机
1.UPXShell
2.PEID等
linux下UPX脱壳
upx -d
或者手脱,详见

链接:https://bbs.pediy.com/thread-255519.htm

2.ASPack
手动脱壳
1.单步跟踪法
2.ESP定律
3.内存镜像法
4.模拟跟踪法
5.SFX法
脱壳机
1.PEID(PEID Generic Unpacker)
2.AspackDie
3.UnAspack等

3.FSG
手动脱壳
1.单步法(忽略所有异常)
2.ESP定律(忽略所有异常)
3.模拟跟踪法(忽略所有异常)
4.SFX法
5.内存镜像法
脱壳机
1.PEID
2.UnFSC2. 0(只针对FSG2.有效)等

4.PECompact
手动脱壳
1.单步法(忽略所有异常)
2.ESP定律(忽略所有异常)
3.模拟跟踪法
脱壳机
1.PEID(PEID Generic Unpacker)
2.DePeCompact1. xDeP eCompact2. xDePeCompact3. xDePeCompact2. x-3.x等
5.Armadillo
手动脱壳
见穿山甲脱壳总结
脱壳机
穿山甲脱壳机很少,且很难脱干净.
6.Acprotect
手动脱壳
在这里插入图片描述脱壳机
ACKiller
ASProtect
手动脱壳
在这里插入图片描述
在这里插入图片描述

脱壳机
AsProtect Unpack


http://chatgpt.dhexx.cn/article/Ax3jRter.shtml

相关文章

谷粒商城项目学-分布式基础

项目框架图 分布式基础概念 • 微服务、注册中心、配置中心、远程调用、Feign、网关 • 2、基础开发 • SpringBoot2.0、SpringCloud、Mybatis-Plus、Vue组件化、阿里云对象存储 • 3、环境 • Vagrant、Linux、Docker、MySQL、Redis、逆向工程&人人开源 • 4、开发规范 •…

【笔记/后端】谷粒商城基础篇

目录 一、环境配置1 Docker1.1 Docker是什么&#xff1f;1.2 安装&启动1.2.1 阿里云镜像加速 1.3 安装MySQL1.4 安装Redis 2 开发环境2.1 Maven2.2 Git2.3 Node 二、创建微服务项目1 内容2 问题记录3 renren-generator 三、分布式组件1 Nacos1.1 注册中心1.2 配置中心1.2.1…

谷粒商城(二)

谷粒商城&#xff08;二&#xff09; 后台商品服务 - 三级分类1、查询1&#xff09;、接口编写2&#xff09;、树形展示三级分类数据3&#xff09;、配置网关路由1 更改前端 base 路径2 将服务注册进nacos3 网关模块配置路由4 测试 4&#xff09;、解决跨域 2、删除1&#xff0…

谷粒商城(五)

谷粒商城&#xff08;五&#xff09; 订单服务1、环境搭建1&#xff09;、页面2&#xff09;、代码 2、订单登录拦截3、订单确认页1&#xff09;、VO模型2&#xff09;、订单确认页数据查询1 接口编写2 调用远程服务 3&#xff09;、Feign远程调用丢失请求头启动服务报错解决 4…

谷粒商城(一)

谷粒商城&#xff08;一&#xff09; 1、环境搭建安装 dockerdocker 安装 mysqldocker 安装 redis安装配置 git准备工具 IDEA、VsCode从 gitee 初始化项目 2、创建微服务项目1&#xff09;、创建项目2&#xff09;、初始化数据库 3、使用人人开源搭建后台管理系统1&#xff09;…

谷粒商城:如何通过笔记复盘实现事半功倍?

前言 把谷粒商城做了一遍&#xff0c;其中遇的困难也记录了一下。将零散的笔记整理成有顺序的目录结构。方便自己回看、以及快速定位文章。特此记录、大部分在CSDN博客里边都可以搜索到。 大家想看的话也可以去这里看看&#xff1a;笔记地址传送门 后续还会继续维护这个笔记…

查壳、加壳、脱壳详细教程

查壳教程 1、打开软件后我们点击右上角的三个点&#xff0c;会弹出一个选择文件的窗口&#xff0c;我们选择要查壳的文件&#xff0c;同样也可以直接把需要查壳的软件拖到PEID页面里 2、这里拖入一个程序后出现如下信息页面 这里我们看到Borland Delphi 3.0,他不是一种壳&…

分布式项目-谷粒商城。

分布式项目一&#xff0c;分布图 二&#xff0c;环境搭建 1.安装linux 2.安装docker 1 卸载系统之前的docker sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine2 设…

竞业限制是什么意思?

竞业限制是指用人单位与掌握商业秘密的职工约定在劳动合同解除或终止后的一定期限内&#xff0c;劳动者不得到有竞争关系的其他用人单位任职&#xff0c;也不得自己生产与原单位有竞争关系的同类产品或经营同类业务。 竞业限制对不同的人意义是不同的&#xff0c;比如&#xf…

所谓的1261考核法算不算是末尾淘汰?

【问题】 有无精通劳动法的老哥&#xff0c;分析一下所谓的1261考核法算不算是末尾淘汰&#xff1f; 已知最后考核的那个1会被约谈&#xff0c;连续两次都是最后就会调岗或者解除劳动合同 【解析】 算的&#xff01; 应该是“末位淘汰制” 劳动法不支持“末位淘汰制”&…

数字滤波器的实现——低通滤波器再探究

在探究完滤波器原理之后&#xff0c;又面临一个问题就是数字滤波器如何实现的问题&#xff0c;因为在实际应用过程中&#xff0c;如果不接触硬件的话&#xff0c;低通滤波器一般都是通过编程实现的&#xff0c;具体代码应该怎么编写&#xff0c;在应用过程中又应该注意什么问题…

数字图像处理之低通滤波器实现原理及方法(Matlab)

1.傅里叶变换与频域 在之前的文中&#xff0c;我们已经进行过一些基本的图像处理。比如&#xff0c;使用低通滤波可以将图像模糊&#xff0c;也有些许降噪的作用。这些都是在空间域内进行的滤波处理&#xff0c;这个处理主要是依靠卷积来进行计算的。首先&#xff0c;从连续的一…

滤波器_理想低通/高通滤波器原理

1.滤波器作用 消除干扰杂讯噪声&#xff0c;对信号进行频率成分的选择2.高通滤波 过滤低频信息&#xff0c;让高频信息通过3.低通滤波 过滤高频信息&#xff0c;让低频信息通过4.理想低通滤波 D0表示通带半径&#xff0c;D(u&#xff0c;v)是到频谱中心的距离(欧式距离),公式…

带通滤波器电路图大全(三款带通滤波器电路设计原理图详解)

带通滤波器电路图设计&#xff08;一&#xff09; 传统的带通滤波器设计方法中涉及了很多复杂的理论分析和计算。针对上述缺点&#xff0c;介绍一种使用EDA软件进行带通滤波器的设计方案&#xff0c;详细阐述了使用FilterPro软件进行有源带通滤波器电路的设计步骤&#xff0c;…

T滤波器(低通滤波器)

1.电路原理 T滤波器&#xff0c;其基本原理是基于低通滤波器设计&#xff0c;实现阻高频通低频的需求&#xff0c;其电路图及传递函数如下。 2.传递函数 r(t)为输入,c(t)为输出&#xff0c;从电路原理我们得到输入输出公式&#xff1a; 将公式进行拉氏变换得到&#xff1a; 3.系…

低通滤波器和高通滤波器的程序实现原理推导

傅立叶变换,拉普拉斯变换和Z变换 对于信号分析而言,傅立叶变换是必不可少的,我们都知道傅立叶变换是把系统从时域变换到频域进行分析,那么拉普拉斯变换和Z变换是干什么的?简单的来说,由于傅里叶变换的收敛有一个狄利克雷条件&#xff0c;要求信号绝对可积/绝对可和。对于那些…

数字低通滤波器的原理及实现

首先说一下&#xff0c;数字滤波器是怎么实现的 1.首先根据电路建立低通滤波器时域系统微分方程&#xff0c;得出低通滤波器t域模型 2.其次将对时域微分方程进行拉式变换&#xff0c;得出低通滤波器的s域模型 3.将模拟滤波器转换为数字滤波器&#xff0c;对连续系统进行离散化…

简单易理解的RC滤波器(含电路仿真)

滤波器 滤波器是对波进行过滤的器件&#xff0c;是一种让某一频带内信号通过&#xff0c;同时又阻止这一频带外信号通过的电路。 滤波器主要有低通滤波器、高通滤波器和带通滤波器三种&#xff0c;按照电路工作原理又可分为无源和有源滤波器两大类。本文主要对低通、高通还有带…

一文读懂:常见低通、高通、带通三种滤波器的工作原理

滤波器 滤波器是对波进行过滤的器件&#xff0c;是一种让某一频带内信号通过&#xff0c;同时又阻止这一频带外信号通过的电路。 滤波器主要有低通滤波器、高通滤波器和带通滤波器三种&#xff0c;按照电路工作原理又可分为无源和有源滤波器两大类。今天&#xff0c;小编主要…

利用Excel对数据进行标准化处理

采用的公式为x&#xff08;x-min&#xff09;/(Max-min),这样标准化后的数据最大值为1&#xff0c;最小值为0。