答疑|trae调用mcp与直接分析安卓代码的区别

admin 2026-01-09 23:32:41 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文档解析了利用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与直接分析安卓代码的区别》

评论:0   参与:  0