文章总结: 文章聚焦银狐远控木马Shellcode的小端存储机制,指出其并非反分析技巧而是Windows原生规则,梳理从C2下发、内存写入、XOR解密到执行的全流程,给出x64dbg/IDA手动提取与Python脚本批量还原、解密、反汇编的实操步骤,并附5条新手避坑要点,帮助分析师快速定位并解析小端加密Shellcode。 综合评分: 92 文章分类: 恶意软件,漏洞分析,逆向分析,实战经验,安全工具
银狐木马分析 搞懂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全程用小端存储,就两个核心原因,全是为了「适配环境、提升效率」:
- 架构原生适配,无需转换:Windows x86/x64架构本身就是小端序,Shellcode按小端存储,木马写入内存后可直接执行,不用额外做字节序转换,减少代码量的同时,也避免了转换错误,契合恶意程序轻量化的需求;
- 跨端传输统一,解析无错:银狐C2服务器下发Shellcode时,按小端字节流发送,木马客户端接收后无需处理,可直接写入内存解密,两端无需约定字节序规则,避免通信解析出错。
至于说小端存储有「反分析效果」,其实只是附带的,对资深逆向来说根本不算事,新手只要记住「按小端规则还原字节序,再反汇编」,就能避开这个坑。
03
核心关联:银狐Shellcode的「小端执行全流程」
搞懂银狐Shellcode从下发到执行的完整流程,就能彻底理解小端存储的核心作用,这也是逆向分析的关键——银狐Shellcode从C2下发到内存执行,全程保持小端存储,无需任何字节序转换,完全贴合Windows架构的执行逻辑。
给大家捋一遍银狐Shellcode的完整执行步骤,看完就懂了:
- 银狐远控端根据目标主机架构,生成对应x86/x64的纯Shellcode,按小端序做简单XOR加密;
- C2服务器将小端存储的加密Shellcode下发给目标主机的银狐客户端;
- 银狐客户端接收后,直接将小端字节流写入申请的可执行内存(PAGEEXECUTEREADWRITE),无需字节序调整;
- 木马调用解密函数,对内存中的小端加密Shellcode解密,得到小端存储的纯Shellcode;
- 通过远程线程、进程空心化等方式,触发Shellcode执行,Windows架构原生识别小端字节流,直接解析为正确的机器指令,Shellcode完成前置启动操作。
这也是为啥分析银狐Shellcode时,小端存储是基础:如果拿到原始字节串后,不按小端规则还原就直接解密、反汇编,得到的必然是无效数据,根本无法分析其核心逻辑。
04
纯实操:银狐Shellcode(小端存储)提取分析
这部分全是硬干货,结合大家常用的x64dbg/IDA和Python脚本,分手动分析(单样本)和脚本批量处理(多样本/PCAP包),步骤极简,直接照着做就行,核心就两步:按小端截取完整字节串→还原字节序后解密/反汇编。
(一)手动分析:x64dbg/IDA实操(适合单样本逆向)
- 定位小端存储的加密Shellcode
核心断点技巧:挂钩Windows API VirtualAllocEx和WriteProcessMemory,重点盯内存权限为PAGEEXECUTEREADWRITE的申请——银狐写入Shellcode时,一定会申请可执行内存,这是最直接的特征。
• 断下WriteProcessMemory后,查看写入的内存数据,就是小端存储的加密Shellcode,按连续字节串完整截取即可(银狐Shellcode无固定长度,但会是连续非0字节);
• 回到IDA找解密函数,银狐多为简单的循环异或,找到异或的固定单字节密钥(比如0x12),这是后续解密的关键。
- 小端字节序还原+解密
拿到小端加密Shellcode和密钥后,先还原字节序,再解密,避免解密后数据错乱:
• 示例:内存中提取的小端加密Shellcode字节串为b’\x22\xF8\x60\xA0’,先按从后到前反转字节序,得到b’\xA0\x60\xF8\x22’;
• 用找到的XOR密钥对还原后的字节串解密,得到纯Shellcode的二进制数据。
- Shellcode反汇编与调试
这一步是验证结果的关键,确保解析后的Shellcode是有效指令:
• IDA:将解密后的纯Shellcode保存为二进制文件,选择对应架构(x86/x64),加载为「Binary File」,基址设为0x0,IDA会自动反汇编为正常的汇编指令,直接分析核心逻辑;
• x64dbg:要么跟踪银狐原进程,断下CreateRemoteThread的入口地址,直接调试解密后的Shellcode;要么把解密后的Shellcode写入calc.exe等测试进程,手动创建线程单步调试,验证指令执行是否正常。
(二)脚本批量处理:Python一键还原+解密(适合多样本/威胁狩猎)
日常分析中遇到批量银狐样本或PCAP网络包,手动处理太费时间,用Python写个简易脚本,一键完成Shellcode的小端字节序还原+XOR解密,直接复用就行,无需重复操作。
05
逆向避坑小技巧(新手必看)
- 银狐的Shellcode多以\x90(NOP空指令)开头,用于指令对齐,还原解密后看到连续\x90,大概率是Shellcode的起始位置,可作为验证依据;
- 定位Shellcode时,只要看到VirtualAllocEx申请PAGEEXECUTEREADWRITE权限,直接盯死这个内存地址,99%是银狐写入Shellcode的位置;
- 还原小端字节序时,必须完整截取Shellcode的连续字节串,不要分段反转,否则会导致解密后的指令完全错乱;
- 银狐的XOR解密密钥几乎都是单字节固定值,IDA中找到解密函数的循环语句,看异或操作的常量值,就是密钥,无需复杂推算;
- 遇到无法直接反汇编的Shellcode,大概率是加了花指令,不是字节序问题,用x64dbg单步跳过花指令段,再转储数据分析即可。
最后聊两句
其实银狐这类远控木马的Shellcode小端存储,本质都是适配Windows环境的基础设计,根本没有想象中复杂。
分析的核心就三点:找对位置(可执行内存中的Shellcode字节串)、还原对字节序(小端直接反转)、解对密(银狐多为简单XOR),实操多了,这些步骤就成了肌肉记忆,再复杂的银狐变种,也能快速突破。
后续还会继续更银狐木马的C2通信协议、主载荷加载逻辑的实操分析,都是逆向中能直接用的技巧。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:SOC安全分析之旅 cyberpanda cyberpanda《银狐木马分析 搞懂Shellcode的小端存储,这篇就够了》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论