文章总结: 本文档解析了利用MCP协议(如jadx-mcp)与直接将反编译代码投喂给AI分析的区别。通过演示PythonFastMCP服务器搭建,指出MCP能向大模型提供专用工具接口,从而自动处理如获取类名、堆栈分析等复杂操作,显著降低Token消耗与试错成本。建议开发者编写或复用MCP脚本,让AI调用专用工具以提升APK分析效率。 综合评分: 86 文章分类: 移动安全,逆向分析,安全工具
mcp demo
MCP 调用演示图:
MCP 搭建
conda create -n mcp311 python=3.11
conda activate mcp311
pip install fastmcp
Pycharm 添加 conda 环境
mcp-server
from fastmcp import FastMCP
# 创建 FastMCP 实例,命名为 "Demo 🚀"
mcp = FastMCP("Demo 🚀")
# 使用 @mcp.tool 装饰器将函数注册为 MCP 工具
@mcp.tool
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
if __name__ == "__main__":
mcp.run(transport='sse', host="127.0.0.1", port=8001)
mcp.run()默认采用 studio 模式,该模式可以令 mcp 的客户端工具直接访问,比如 trae、claude 客户端。
def add 中的 “”” 引起来的,我们正常写 Python 一般是用来当注释写的,在 FastMCP 的@mcp.tool 装饰出来的方法里,是必须写的,可以理解为给大模型看的提示词。
大语言模型通过这个描述,了解这个方法是用来做什么的。大模型“理解”了,才能分析我们给出的任务准确调用。
客户端
import asyncio
from fastmcp import Client
async def main():
# 测试 mcp 客户端的功能
async with Client("http://127.0.0.1:8001/sse") as mcp_client:
tools = await mcp_client.list_tools()
print(f"Available tools: {tools}") # 打印 mcp server 提供的工具
# 调用工具,得到 CallToolResult 实例
result = await mcp_client.call_tool("add", {"a": 5, "b": 7})
# 核心:直接通过 .data 获取 data 字段的值
data_value = result.data
print(f"获取到的 data 值:{data_value}") # 输出:获取到的 data 值:12
# # 原代码中的 text 字段获取(对比参考)
print(f"原代码中的 text 值:{result.content[0].text}") # 输出:原代码中的 text 值:12
asyncio.run(main())
trae 调用
将原本 mcp-server 中的
mcp.run(transport='sse', host="127.0.0.1", port=8001)
修改为
mcp.run()
设置 mcp 中添加
可以看到 mcp-server 下面有 add
jadx mcp 与 直接反编译代码的区别
有了上面的演示,相信师傅对 mcp 有了一定的了解。
trae 调用 jadx-mcp 和直接分析反编译后的代码的区别在 mcp 提供的 tools 上。
下面是 jadx-mcp-server 提供的可供大模型调用的方法。
总结
有很多师傅看别人用大模型可以轻松分析 APK、找到具体操作,而自己用相同的大模型却会被大模型“活活气死”。其中一部分区别就在于 MCP 上。
熟练的师傅会将常见的操作整理为一个 MCP 的方法,交给 AI 来操作。
或者,从互联网上寻找合适的 MCP 脚本,让 AI 调用。
可参考:awesome-mcp-servers https://github.com/punkpeye/awesome-mcp-servers
也可以让 AI 写 MCP 再让它调用。
欢迎加入知识星球,星球内容主要有:
1、公众号文章备份、工具分享。
2、常见问题的答疑、解决方案汇总在知识星球,作为便于搜索的知识库。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:进击的HACK 进击的HACK《答疑 | trae调用mcp与直接分析安卓代码的区别》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论