├── .idea ├── .gitignore ├── DeepTrace.iml ├── inspectionProfiles │ └── profiles_settings.xml ├── misc.xml ├── modules.xml └── vcs.xml ├── README.md ├── main.py └── static └── index.html /.idea/.gitignore: -------------------------------------------------------------------------------- 1 | # 默认忽略的文件 2 | /shelf/ 3 | /workspace.xml 4 | # 基于编辑器的 HTTP 客户端请求 5 | /httpRequests/ 6 | # Datasource local storage ignored files 7 | /dataSources/ 8 | /dataSources.local.xml 9 | -------------------------------------------------------------------------------- /.idea/DeepTrace.iml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/inspectionProfiles/profiles_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /.idea/modules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DeepTrace - 人工智能逆向专家 2 | 3 | **DeepTrace** 是一个基于 AI 技术的多功能代码分析与逆向工程工具,旨在通过先进的算法和机器学习技术,深度解析和理解多种编程语言及二进制文件的结构与逻辑。项目当前支持 Java 代码逆向分析、AST(抽象语法树)解密 JavaScript、SO 文件汇编分析以及 iOS 算法分析,未来将扩展至更多场景,助力开发者、安全研究人员和算法工程师更高效地完成任务。 4 | 5 | --- 6 | 7 | ## 未来功能畅想 8 | 9 | ### 1. 多语言逆向分析扩展 10 | - **目标**: 支持更多编程语言和文件格式的逆向分析,例如 Python、C/C++、Rust 源代码,以及 APK、ELF 等二进制格式。 11 | - **功能**: 通过训练语言模型和 AST 解析器,自动识别代码逻辑、变量依赖和调用关系,生成可视化调用图。 12 | - **畅想**: 用户上传任意代码片段或二进制文件,DeepTrace 能智能推断其功能并生成伪代码,甚至重构为可读的高级语言。 13 | 14 | ### 2. AI 驱动的智能解混淆 15 | - **目标**: 针对混淆后的 JavaScript(如经过 UglifyJS 或 Webpack 处理)和加密后的 SO 文件,开发 AI 解混淆模块。 16 | - **功能**: 利用深度学习模型识别混淆模式,自动还原变量名、函数名,并优化代码结构。 17 | - **畅想**: 未来可实现一键解密复杂 JS(如对抗级混淆)或 SO 文件,提供接近原始代码的可读性。 18 | 19 | ### 3. 自动化漏洞检测与修复建议 20 | - **目标**: 结合逆向分析结果,检测代码中的潜在安全漏洞或性能瓶颈。 21 | - **功能**: 通过静态分析和动态模拟,识别缓冲区溢出、SQL 注入、硬编码密钥等问题,并生成修复建议代码。 22 | - **畅想**: DeepTrace 能成为安全研究者的得力助手,自动生成 PoC(概念验证)代码或补丁,加速漏洞验证流程。 23 | 24 | ### 4. 可视化分析仪表盘 25 | - **目标**: 为逆向分析结果提供直观的可视化界面。 26 | - **功能**: 展示代码的 AST 树、汇编指令流图、函数调用栈,以及 iOS 算法的逻辑分支。 27 | - **畅想**: 用户可通过交互式界面调整分析参数,实时查看代码结构变化,甚至模拟代码执行路径。 28 | 29 | ### 5. 跨平台算法提取与迁移 30 | - **目标**: 从 iOS(Swift/Objective-C)或 Android(Java/Kotlin)应用中提取核心算法,并迁移到其他平台。 31 | - **功能**: 通过 AI 识别算法逻辑,生成跨语言的等效实现(例如从 ARM 汇编转为 C,或从 Java 转为 Python)。 32 | - **畅想**: 开发者只需上传应用包,DeepTrace 即可提取加密算法、图像处理逻辑等,并生成可复用的代码库。 33 | 34 | ### 6. 云端协作与社区驱动知识库 35 | - **目标**: 打造一个云端分析平台与用户共享的逆向知识库。 36 | - **功能**: 用户可上传分析结果至云端,共享解密模板或汇编模式,AI 将基于社区数据持续优化分析能力。 37 | - **畅想**: DeepTrace 成为逆向工程领域的“GitHub”,提供丰富的插件生态和预训练模型。 38 | 39 | ### 7. 实时动态分析与调试支持 40 | - **目标**: 集成动态分析能力,追踪代码运行时的行为。 41 | - **功能**: 在分析 Java、JS 或 SO 文件时,模拟执行环境,记录内存变化、寄存器状态,并生成行为报告。 42 | - **畅想**: 用户可通过 DeepTrace 直接附加到目标进程,实时逆向分析加密算法或隐藏逻辑。 43 | 44 | --- 45 | 46 | ## 项目说明 47 | 48 | ### 当前功能 49 | - **Java 代码逆向分析**: 解析 Java 字节码,提取类结构、方法逻辑。 50 | - **AST 解密 JS**: 通过抽象语法树分析混淆后的 JavaScript,恢复部分可读性。 51 | - **SO 汇编分析**: 解析 Android NDK 生成的 SO 文件,识别关键汇编指令。 52 | - **iOS 算法分析**: 针对 iOS 应用,提取 Objective-C/Swift 的核心算法逻辑。 53 | 54 | ### 技术栈 55 | - **AI 核心**: 基于 Transformer 模型和强化学习,训练代码模式识别。 56 | - **解析工具**: 使用 javap、IDA Pro、esprima 等工具生成初始数据。 57 | - **可视化**: D3.js 或 Graphviz 用于生成调用图和 AST 树。 58 | - **语言支持**: Python 驱动主逻辑,兼容多平台部署。 59 | 60 | ### 使用场景 61 | - **开发者**: 理解第三方库的内部实现,优化代码性能。 62 | - **安全研究者**: 分析恶意软件逻辑,提取加密密钥。 63 | - **教育者**: 作为教学工具,展示代码结构与汇编原理。 64 | 65 | --- 66 | 67 | ## 如何贡献 68 | 欢迎开发者、安全专家和 AI 研究者加入 DeepTrace 项目! 69 | - **代码贡献**: 提交 PR 至 GitHub 仓库。 70 | - **数据集**: 提供混淆代码样本或二进制文件,优化 AI 模型。 71 | - **建议**: 在 Issues 中提出新功能想法或改进建议。 72 | 73 | --- 74 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | from fastapi import FastAPI, HTTPException 2 | from fastapi.staticfiles import StaticFiles 3 | from pydantic import BaseModel 4 | import torch 5 | from starlette.responses import FileResponse 6 | from transformers import AutoTokenizer, AutoModelForCausalLM 7 | from fastapi.middleware.cors import CORSMiddleware 8 | 9 | # 初始化 FastAPI 10 | app = FastAPI() 11 | 12 | # 添加CORS中间件 13 | app.add_middleware( 14 | CORSMiddleware, 15 | allow_origins=["*"], # 允许所有来源,或者指定具体域名如 ["http://localhost"] 16 | allow_credentials=True, 17 | allow_methods=["*"], # 允许所有方法 18 | allow_headers=["*"], # 允许所有头部 19 | ) 20 | 21 | # 挂载静态文件目录 22 | app.mount("/static", StaticFiles(directory="static"), name="static") 23 | 24 | # 加载模型和分词器 25 | model_path = "LLM4Binary/llm4decompile-6.7b-v1.5" # 替换为你的模型路径 26 | tokenizer = AutoTokenizer.from_pretrained(model_path) 27 | model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.bfloat16).cuda() 28 | 29 | # 请求体格式 30 | class DecompileRequest(BaseModel): 31 | asm_code: str 32 | 33 | # 反编译函数 34 | def decompile(asm_code: str) -> str: 35 | prompt = f"# This is the assembly code:\n{asm_code.strip()}\n# What is the source code?\n" 36 | inputs = tokenizer(prompt, return_tensors="pt").to(model.device) 37 | with torch.no_grad(): 38 | outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.7) 39 | return tokenizer.decode(outputs[0][len(inputs[0]):-1], skip_special_tokens=True) 40 | 41 | # API 端点 42 | @app.post("/decompile") 43 | async def decompile_endpoint(request: DecompileRequest): 44 | try: 45 | result = decompile(request.asm_code) 46 | return {"source_code": result} 47 | except Exception as e: 48 | raise HTTPException(status_code=500, detail=f"Error: {str(e)}") 49 | 50 | # 主页 - 提供静态index.html 51 | @app.get("/") 52 | async def read_root(): 53 | return FileResponse("static/index.html") 54 | 55 | if __name__ == "__main__": 56 | import uvicorn 57 | uvicorn.run(app, host="0.0.0.0", port=8000) -------------------------------------------------------------------------------- /static/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | DeepTrace - AI逆向专家 7 | 98 | 99 | 100 |
101 |

DeepTrace - 人工智能逆向专家

102 |
By iRabbit
103 | 104 |

输入汇编代码

105 | 110 | 111 | 112 | 113 |

生成的 C 源代码

114 | 115 |
116 | 117 | 145 | 146 | --------------------------------------------------------------------------------