银狐木马分析搞懂Shellcode的小端存储,这篇就够了

admin 2026-01-23 12:38:12 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章聚焦银狐远控木马Shellcode的小端存储机制,指出其并非反分析技巧而是Windows原生规则,梳理从C2下发、内存写入、XOR解密到执行的全流程,给出x64dbg/IDA手动提取与Python脚本批量还原、解密、反汇编的实操步骤,并附5条新手避坑要点,帮助分析师快速定位并解析小端加密Shellcode。 综合评分: 92 文章分类: 恶意软件,漏洞分析,逆向分析,实战经验,安全工具


cover_image

银狐木马分析 搞懂Shellcode的小端存储,这篇就够了

cyberpanda cyberpanda

SOC安全分析之旅

2026年1月22日 18:37 上海

做恶意代码分析、逆向的朋友,肯定绕不开银狐这类远控木马的分析。最近不少同行聊起,分析银狐时总被Shellcode的定位解密、小端存储的字节序绕晕,明明找到Shellcode的二进制数据了,反汇编执行却总出问题,内存里的字节串和解析后的指令完全对不上。 其实银狐Shellcode的小端存储,根本不是什么复杂的反分析手段,只是贴合Windows逆向的「标配设计」,抛开晦涩的理论,从实战视角捋一遍,实操起来特别顺。今天就把银狐木马中Shellcode的核心特性、小端存储的底层逻辑,以及二者结合的提取分析实操技巧讲透,都是日常逆向中天天用的干货,新手也能直接照着做。

直接上干货:

逆向中发现的 C2信息使用小端存储的,所以都是反着的。

直接上工具:是不是顺眼多了,C2的信息清清楚楚了

01

Shellcode:银狐木马的「隐形启动器」

先搞懂一个核心:银狐里的Shellcode,是能直接在内存执行的轻量二进制字节流,也是银狐实现无文件执行、进程注入的核心组件,说白了就是木马的「前置启动器」。

它没有系统库依赖、是位置无关的代码,扔到任意合法进程(比如explorer.exe、svchost.exe)的可执行内存段里都能跑,不会带完整的远控功能,只做「轻量化前置操作」:要么把木马主载荷反射加载到内存,要么完成进程注入,再或者简单做个反EDR检测(比如检测调试器、隐藏内存执行属性),核心作用就是为银狐主程序的运行铺路。

而且银狐的Shellcode从不会「裸奔」:一是会做简单加密,最常见的就是XOR异或(固定单字节密钥居多,比如0x12、0x3F),避过基础的特征检测;二是分架构,x86和x64的Shellcode完全不互通,银狐会根据目标系统下发对应的版本;三是全程以小端存储的形式存在,不管是C2下发的加密Shellcode,还是木马解密后写入内存的纯Shellcode,字节序都遵循小端规则,这也是逆向分析的关键。

02

小端存储:Windows逆向的「默认规则」

很多人分析银狐Shellcode时踩坑,核心是没搞懂:银狐Shellcode的小端存储,不是木马特意设计的,而是Windows x86/x64架构的原生标配。

小端存储的核心就一句话,记死就行:低字节在前,高字节在后。简单说,一段Shellcode的实际机器码十六进制值如果是0x9050E812(4字节,典型的NOP+压栈+调用指令),在银狐的内存、C2传输包中,实际存储的字节顺序就是0x12 E8 50 90,直接读取原始字节串反汇编,肯定会得到错误的指令,这也是很多人解析Shellcode失败的根本原因。

银狐的Shellcode全程用小端存储,就两个核心原因,全是为了「适配环境、提升效率」:

  1. 架构原生适配,无需转换:Windows x86/x64架构本身就是小端序,Shellcode按小端存储,木马写入内存后可直接执行,不用额外做字节序转换,减少代码量的同时,也避免了转换错误,契合恶意程序轻量化的需求;
  2. 跨端传输统一,解析无错:银狐C2服务器下发Shellcode时,按小端字节流发送,木马客户端接收后无需处理,可直接写入内存解密,两端无需约定字节序规则,避免通信解析出错。

至于说小端存储有「反分析效果」,其实只是附带的,对资深逆向来说根本不算事,新手只要记住「按小端规则还原字节序,再反汇编」,就能避开这个坑。

03

核心关联:银狐Shellcode的「小端执行全流程」

搞懂银狐Shellcode从下发到执行的完整流程,就能彻底理解小端存储的核心作用,这也是逆向分析的关键——银狐Shellcode从C2下发到内存执行,全程保持小端存储,无需任何字节序转换,完全贴合Windows架构的执行逻辑。

给大家捋一遍银狐Shellcode的完整执行步骤,看完就懂了:

  1. 银狐远控端根据目标主机架构,生成对应x86/x64的纯Shellcode,按小端序做简单XOR加密;
  2. C2服务器将小端存储的加密Shellcode下发给目标主机的银狐客户端;
  3. 银狐客户端接收后,直接将小端字节流写入申请的可执行内存(PAGEEXECUTEREADWRITE),无需字节序调整;
  4. 木马调用解密函数,对内存中的小端加密Shellcode解密,得到小端存储的纯Shellcode;
  5. 通过远程线程、进程空心化等方式,触发Shellcode执行,Windows架构原生识别小端字节流,直接解析为正确的机器指令,Shellcode完成前置启动操作。

这也是为啥分析银狐Shellcode时,小端存储是基础:如果拿到原始字节串后,不按小端规则还原就直接解密、反汇编,得到的必然是无效数据,根本无法分析其核心逻辑。

04

纯实操:银狐Shellcode(小端存储)提取分析

这部分全是硬干货,结合大家常用的x64dbg/IDA和Python脚本,分手动分析(单样本)和脚本批量处理(多样本/PCAP包),步骤极简,直接照着做就行,核心就两步:按小端截取完整字节串→还原字节序后解密/反汇编。

(一)手动分析:x64dbg/IDA实操(适合单样本逆向)

  1. 定位小端存储的加密Shellcode

核心断点技巧:挂钩Windows API VirtualAllocEx和WriteProcessMemory,重点盯内存权限为PAGEEXECUTEREADWRITE的申请——银狐写入Shellcode时,一定会申请可执行内存,这是最直接的特征。

• 断下WriteProcessMemory后,查看写入的内存数据,就是小端存储的加密Shellcode,按连续字节串完整截取即可(银狐Shellcode无固定长度,但会是连续非0字节);

• 回到IDA找解密函数,银狐多为简单的循环异或,找到异或的固定单字节密钥(比如0x12),这是后续解密的关键。

  1. 小端字节序还原+解密

拿到小端加密Shellcode和密钥后,先还原字节序,再解密,避免解密后数据错乱:

• 示例:内存中提取的小端加密Shellcode字节串为b’\x22\xF8\x60\xA0’,先按从后到前反转字节序,得到b’\xA0\x60\xF8\x22’;

• 用找到的XOR密钥对还原后的字节串解密,得到纯Shellcode的二进制数据。

  1. Shellcode反汇编与调试

这一步是验证结果的关键,确保解析后的Shellcode是有效指令:

• IDA:将解密后的纯Shellcode保存为二进制文件,选择对应架构(x86/x64),加载为「Binary File」,基址设为0x0,IDA会自动反汇编为正常的汇编指令,直接分析核心逻辑;

• x64dbg:要么跟踪银狐原进程,断下CreateRemoteThread的入口地址,直接调试解密后的Shellcode;要么把解密后的Shellcode写入calc.exe等测试进程,手动创建线程单步调试,验证指令执行是否正常。

(二)脚本批量处理:Python一键还原+解密(适合多样本/威胁狩猎)

日常分析中遇到批量银狐样本或PCAP网络包,手动处理太费时间,用Python写个简易脚本,一键完成Shellcode的小端字节序还原+XOR解密,直接复用就行,无需重复操作。

05

逆向避坑小技巧(新手必看)

  1. 银狐的Shellcode多以\x90(NOP空指令)开头,用于指令对齐,还原解密后看到连续\x90,大概率是Shellcode的起始位置,可作为验证依据;
  2. 定位Shellcode时,只要看到VirtualAllocEx申请PAGEEXECUTEREADWRITE权限,直接盯死这个内存地址,99%是银狐写入Shellcode的位置;
  3. 还原小端字节序时,必须完整截取Shellcode的连续字节串,不要分段反转,否则会导致解密后的指令完全错乱;
  4. 银狐的XOR解密密钥几乎都是单字节固定值,IDA中找到解密函数的循环语句,看异或操作的常量值,就是密钥,无需复杂推算;
  5. 遇到无法直接反汇编的Shellcode,大概率是加了花指令,不是字节序问题,用x64dbg单步跳过花指令段,再转储数据分析即可。

最后聊两句

其实银狐这类远控木马的Shellcode小端存储,本质都是适配Windows环境的基础设计,根本没有想象中复杂。

分析的核心就三点:找对位置(可执行内存中的Shellcode字节串)、还原对字节序(小端直接反转)、解对密(银狐多为简单XOR),实操多了,这些步骤就成了肌肉记忆,再复杂的银狐变种,也能快速突破。

后续还会继续更银狐木马的C2通信协议、主载荷加载逻辑的实操分析,都是逆向中能直接用的技巧。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:SOC安全分析之旅 cyberpanda cyberpanda《银狐木马分析 搞懂Shellcode的小端存储,这篇就够了》

评论:0   参与:  0