发布时间:2026/8/16 20:47:38
解密OWASP ZSC六大编码算法:XOR/ADD/SUB/INC/DEC原理与绕过思路 解密OWASP ZSC六大编码算法XOR/ADD/SUB/INC/DEC原理与绕过思路【免费下载链接】ZSCOWASP ZSC - Shellcode/Obfuscate Code Generator https://www.secologist.com/项目地址: https://gitcode.com/gh_mirrors/zs/ZSCOWASP ZSC 是一款开源的 Shellcode 生成与混淆编码工具常被安全研究人员用来研究恶意代码免杀与编码绕过技术。它的核心能力之一就是把一段普通的 Linux x86 汇编 Shellcode改写成带有 XOR、ADD、SUB、INC、DEC 运算的变形代码从而隐藏特征码、绕过来自杀毒软件与入侵检测系统的静态查杀。本文面向刚接触 Shellcode 编码的新手用通俗的语言拆解 OWASP ZSC 最常用的六大编码算法XOR 随机密钥、XOR 自定义密钥、ADD 加法、SUB 减法、INC 递增、DEC 递减并解释它们背后的绕过思路。为什么需要给 Shellcode 编码先理解特征码查杀在进入算法之前先想清楚一个关键问题杀毒软件凭什么能认出 Shellcode答案通常是特征码。一段经典的/bin/sh执行代码反汇编出来就是\x6a\x0b\x58\x99\x52\x68...这串固定字节。杀软数据库里存着它的指纹扫描时一比对就命中。OWASP ZSC 的编码器干的活就是把这段一眼可辨的字节流变成一串运行时才还原的指令组合。它用到的核心思想只有一个不要在代码里直接写真实数值而是把一个数拆成两个数运行时通过算术/逻辑运算还原。这样磁盘上的字节流完全变了样静态特征码自然失效。六大编码算法速览一张表看懂差异编码算法源码文件还原运算密钥来源特点XOR 随机密钥xor_random.py异或每次运行随机生成一次一密抗特征分析XOR 自定义密钥xor_yourvalue.py异或用户指定可复现便于测试ADD 加法编码add_random.py相加随机拆分指令温和不触发异常SUB 减法编码sub_random.py相减随机拆分配合 neg 处理负数INC 递增编码inc_timesyouwant.py逐次加 1次数由用户指定指令序列冗长迷惑性高DEC 递减编码dec_timesyouwant.py逐次减 1次数由用户指定同上逆向思维另外还有 mix_all.py——它每次运行随机挑一种算法相当于编码器的俄罗斯轮盘进一步增加随机性。算法一XOR 异或编码——最经典的万能还原术异或XOR是绕过技术里的老朋友。它的数学性质非常漂亮A ^ B C反过来C ^ B A同一个数异或两次等于什么都没做OWASP ZSC 的 XOR 编码正是利用这个性质。以 Linux x86 的chmod任务为例真实值0x0f会被拆成两个随机数汇编层面变成push $0x1d ; 随机数 A pop %eax push $0x12 ; 随机数 B pop %ebx xor %eax,%ebx ; A ^ B 0x0f push %ebx两个随机数每一行代码都是重新生成的所以每次生成的 Shellcode 字节都不一样。更妙的是代码中还专门避免了00字节的出现——因为很多字符串处理函数比如strcpy会把00当成字符串结尾Shellcode 里出现它往往直接导致执行失败。 想深入研读的同学直接看这两个源码lib/encoder/linux_x86/xor_random.pylib/encoder/linux_x86/xor_yourvalue.py算法二ADD 加法编码——把数值拆开再拼回ADD 编码的思路更朴素假如真实值是0x0f就随机拆成0x1d和0x12让0x1d - 0x12 0x0f然后运行时用加法还原push $0x1d pop %eax push $0x12 pop %ebx add %eax,%ebx ; 相加还原 push %ebx注意源码里拆数时用的是减法来求差值最终用add拼回去。当差值出现负数时还会引入neg指令取反兜底——这个细节说明 ZSC 在边界情况处理上相当用心。 源码参考lib/encoder/linux_x86/add_random.py算法三SUB 减法编码——与 ADD 恰好相反SUB 编码是 ADD 的镜像把真实值拆成两个随机数后运行时用减法还原。对应关系是较大数 - 较小数 真实值所以拆数时用的是加法。push $0x2a ; 随机数 pop %eax push $0x1b ; 另一个随机数 pop %ebx sub %eax,%ebx ; 相减还原 push %ebx代码里同样做了00字节过滤并且会检查结果是否为负数保证生成的指令序列始终合法可执行。 源码参考lib/encoder/linux_x86/sub_random.py算法四与算法五INC / DEC 递增递减——用次数说话如果觉得加减乘除太直白OWASP ZSC 还准备了更有迷惑性的 INC 和 DEC 编码。它们的思路是INC先把真实值减 N 再压栈运行时连续执行 N 次inc1还原DEC先把真实值加 N 再压栈运行时连续执行 N 次dec-1还原N 就是编码器名字里的timesyouwant你想要多少次比如inc_100表示连续自增 100 次。汇编展开后是一长串密集的递增指令push $0xffffff91 ; 预先减好的值 pop %eax inc %eax ; ×100 次 inc %eax ... inc %eax push %eax这种做法的杀伤力在于指令序列极其冗长、机械重复没有经验的逆向工程师一眼看过去只会觉得这是什么鬼代码特征提取难度也大幅上升。 源码参考lib/encoder/linux_x86/inc_timesyouwant.pylib/encoder/linux_x86/dec_timesyouwant.py算法六mix_all 混合编码——随机挑一种防模板指纹细心的读者可能发现如果每次都固定用 ADD 编码那么虽然字节变了但ADD 模板本身还是可能被安全厂商做成新特征。怎么办OWASP ZSC 的答案是 mix_all.py它内部维护了add_random、sub_random、xor_random、inc_timesyouwant、dec_timesyouwant五种算法的候选池每次运行用random.choice随机挑一种。这样同一份原始 Shellcode每次产出的编码风格都不同彻底打乱模板指纹。除了 x86还有哪些编码方向OWASP ZSC 的价值不止于 Linux x86。它的编码器还覆盖了Windows x86 / x86_64目录 lib/encoder/windows_x86/macOS (OSX x86)目录 lib/encoder/osx_x86/脚本语言JavaScript、Python、PHP、Ruby、Perl 的混淆比如大名鼎鼎的 jsfuck.py 可以把任意 JavaScript 转成只有[]()!六个字符的火星文不同平台的指令集不同但拆分—运算—还原的编码哲学完全一致值得触类旁通。如何快速上手 OWASP ZSC想亲手实验这些编码算法最快的方式是克隆项目本地运行git clone https://gitcode.com/gh_mirrors/zs/ZSC cd ZSC python zsc.py启动后进入交互式菜单依次选择系统类型如 Linux x86、生成任务如chmod、编码算法如xor_random工具就会输出一段全新的、编码后的 Shellcode并支持直接编译成可执行文件验证效果。官方使用文档见 doc/README.md。绕过思路总结四个关键点回顾六大算法可以提炼出四条通用的绕过思路这也是任何 Shellcode 编码器设计的底层逻辑消除固定特征真实字节永不直接出现运行时才在寄存器里还原。规避坏字符全程过滤00等危险字节保证 Shellcode 在各种环境下都能执行。引入随机性密钥、拆分数值、编码方式全部随机化让同源不同形样本库难以归类。增加分析成本INC/DEC 的重复指令、混合编码的随机模板都让静态分析和人工逆向的代价大幅上升。写在最后安全研究的边界最后必须提醒一句OWASP ZSC 是面向安全研究的开源工具其官方文档明确声明用于挑战杀毒技术、研究新型加密方法、保护敏感开源文件贡献者与 OWASP 基金会不对任何非法使用负责。理解编码原理、搭建检测对抗实验、提升防御能力才是学习这套算法的正确打开方式——毕竟只有真正读懂攻击者的变形手法才能写出更坚固的检测规则。【免费下载链接】ZSCOWASP ZSC - Shellcode/Obfuscate Code Generator https://www.secologist.com/项目地址: https://gitcode.com/gh_mirrors/zs/ZSC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

2026/8/16 20:47:38

企业级智能体构建:跨越从OpenClaw工具到业务智能的语义层鸿沟

1. 项目概述:从工具到智能的鸿沟 最近和几个做企业级应用的朋友聊天,大家不约而同地提到了一个现象:很多团队在尝试构建自己的“智能体”时,一开始都信心满满,觉得有了像 OpenClaw 这样的开源工具,或者接入…

2026/8/16 20:47:38

打通告警最后一公里:基于腾讯云ADP与OpenClaw的智能告警实践

1. 项目概述:为什么“最后一公里”是告警系统的痛点? 在运维和开发领域,我们常说“告警不是目的,解决问题才是”。但现实情况往往是,告警信息像雪花一样飘向各种渠道——邮件、短信、钉钉、飞书、企业微信(…

2026/8/16 21:47:46

【无标题】大陆地区如何安装istio以及kind如何导入镜像

大陆如何下载istio压缩包wget --no-check-certificate https://github.com/istio/istio/releases/download/1.30.3/istio-1.30.3-linux-amd64.tar.gz带国内镜像仓库安装demo配置istioctl install --set profiledemo --set hubm.daocloud.io/docker.io/istio -y把本地 Docker 里…

2026/8/16 21:47:46

嵌入式系统C语言资源分类与内存分布分析

1.C语言存储分类总览在C语言/嵌入式程序运行中,内存通常被划分为以下几个主要区域:代码段(Code Segment / .text): 用于存放程序的机器指令(即编译后的代码)。这部分通常是只读的,以…

2026/8/16 0:00:35

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/16 0:00:35

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/15 9:46:39

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/16 16:53:03

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/15 9:46:30

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…