├── .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 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
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 |
--------------------------------------------------------------------------------