拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Zydis:x86 反汇编与代码生成,零依赖免 malloc

Zydisx86 反汇编与代码生成零依赖免 malloc【免费下载链接】zydisFast and lightweight x86/x86-64 disassembler and code generation library项目地址: https://gitcode.com/gh_mirrors/zy/zydisZydis 是纯 C11 实现的 x86/x86-64 反汇编与代码生成库零第三方依赖不需要 libc也不做任何 malloc 调用可把内存缓冲区中的字节解码为指令文本也能从助记符、操作数等语义描述反向生成机器码。核心能力速览覆盖全部 x86/x86-64 指令与指令集扩展零第三方依赖甚至不需要 libc无动态内存分配设计上线程安全解码与编码双向支持指令可往返转换二进制体积开销小任何 C11 编译器可编译从 0 到 1 跑通构建并验证反汇编获取源码--recursive会拉入 zycore 子库git clone --recursive https://gitcode.com/gh_mirrors/zy/zydis cd zydis构建并验证第二条命令直接运行编译产物里的官方示例cmake -B build cmake --build build -j4 ./build/examples/DisassembleSimple示例的完整写法可对照examples/DisassembleSimple.c核心就是下面这个循环把字节缓冲逐条喂给ZydisDisassembleIntel直到缓冲区耗尽。ZydisDisassembledInstruction instruction; ZyanU64 runtime_address 0x007FFFFFFF400000; ZyanUSize offset 0; while (ZYAN_SUCCESS(ZydisDisassembleIntel( ZYDIS_MACHINE_MODE_LONG_64, runtime_address, data offset, sizeof(data) - offset, instruction))) { printf(%016 PRIX64 %s\n, runtime_address, instruction.text); offset instruction.info.length; runtime_address instruction.info.length; }你会看到控制台按地址顺序打印每条指令形如push rcx、lea eax, [rbp-0x01]末行是相对跳转js 0x007FFFFFFF42DB15。典型应用场景调试器的指令窗口x64dbg 等调试器用它实时解码目标进程内存中的指令免 malloc 和低开销让反汇编视图在频繁刷新时依然轻快。二进制插桩与运行时 Hook结合编码器可把指令重编码后原地打补丁。仓库里的 RewriteCode 示例演示了逐条移动指令以腾出空间插入跳转的完整流程。CI 流水线中的静态分析ZydisDisasm工具从文件或 stdin 读取原始字节流并打印文本化结果可直接挂到自动化任务里扫描可疑二进制。生态与周边Zydis 被 x64dbg、Mozilla FirefoxJavaScriptCore和 WebKit 等知名开源项目依赖相比常见反汇编库它同时提供解码器与编码器且无需 libc、无动态分配。维护节奏体现在 v3/v4 多条长期维护分支与持续的 fuzz 测试上官方还提供 Rust、Python 绑定与 C 前端 zasm。更多示例见 examples/解码器实现见 src/Decoder.c。完整 API 与高级用法请查阅官方仓库中的 Doxygen 文档。【免费下载链接】zydisFast and lightweight x86/x86-64 disassembler and code generation library项目地址: https://gitcode.com/gh_mirrors/zy/zydis创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门