当前位置:首页 > 报告详情

站在巨人的肩膀上:使用 LLVM 对 WebAssembly 进行反混淆.pdf

上传人: 竿*** 编号:981804 2025-11-29 80页 12.36MB

1、Standing on the Shoulders of GiantsDe-Obfuscating WebAssembly Using LLVMVikas Gupta&Peter GarbaThales Cybersecurity&Digital Identity(CDI)Agenda2About UsVikas GuptaSenior Security Researcher at Thales CDI,previously with Google.Masters in information security,OSCP CertifiedCo-Author OWASP Mobile Secu

2、rity Testing Guide(MSTG)Interests:Reverse engineering,mobile securityPeter GarbaPrincipal Software Security Engineer at Thales CDI,SingaporeProduct OwnerAuthor of the Thales internal obfuscation toolsPassionate reverse engineer at night.3Motivation4Problem Statement1.Is Wasm secure for us?2.Obfuscat

3、e Wasm binaries3.Lifting Wasm to LLVM IR4.Deobfuscate Wasm binaries&recover original logic 5AchievementsDemonstrating use of existing tooling for WasmObfuscationDeobfuscationLifting Wasm to LLVM IR-SquanchyAutomated deobfuscation of Wasm6WebAssembly Essentials7WebAssembly EssentialsAnnounced in 2015

4、,a high-performance,secure,and portable compilation target.Binaries that are compact and quick to parse.Runs in a stack based virtual machine(think JVM)Communicates with host program using well defined exports and importsWide adoptionGamesBig web apps-Google EarthBlockchain smart contracts.8WebAssem

5、bly EssentialsEach Wasm program is a single file of code-Module.Module is organized in sections.Sections-Export,imports,globals,functions etc.Indexed SpacesItems can be accessed by a 0-based integer indexCode and data spaces are disjoint compiled programs cannot corrupt their execution environmentCa

6、n not jump to arbitrary locationsPerform other undefined behaviour9WebAssembly Tooling10WebAssembly ToolingWebAssembly Binary Toolkit Wasm-toolsGhidraUsing a Wasm pluginUsed to view decompiled Wasm IDA Pro v9 It is hit-n-miss with WasmUsing to view object filesJEB Pro11WebAssembly Obfuscation12Obfus

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
根据《De-Obfuscating WebAssembly Using LLVM》的内容,以下是全文关键点的概括: 1. **作者背景**:Vikas Gupta 和 Peter Garba,来自 Thales Cybersecurity & Digital Identity,专注于安全研究和软件安全工程。 2. **Wasm 简介**:WebAssembly 是一种高性能、安全且可移植的编译目标,广泛应用于游戏、大型网络应用和区块链智能合约。 3. **Wasm 工具**:介绍了 WebAssembly 工具链,包括 WebAssembly Binary Toolkit、Wasm-tools、Ghidra、IDA Pro 和 JEB Pro。 4. **Wasm 混淆**:讨论了混淆技术,如 O-LLVM、Hikari 和 Polaris,以及它们如何增加代码复杂性。 5. **Wasm 反混淆**:介绍了反混淆技术,包括基于模式匹配、源代码级别和中间表示级别的现代方法。 6. **LLVM IR 转换**:使用 Squanchy 工具将 Wasm 转换为 LLVM IR,以便进行优化和分析。 7. **反混淆工具**:介绍了 Binaryen、SiMBA、GAMBA 和 SOUPER 等工具,用于解决复杂问题如混合布尔算术。 8. **实际应用**:展示了如何使用这些工具反混淆 WebAssembly 恶意软件,如 CryptoNight 和 hCaptcha。 9. **结论**:Wasm 混淆和反混淆是一个不断发展的领域,需要不断改进工具和技术。
LLVM工具揭秘" Wasm自动化去混淆利器" 去混淆挑战与工具"
客服
商务合作
小程序
服务号
折叠