# so_get_cfg

⭐生成函数的控制流图(CFG)，识别基本块和分支边，生成DOT格式图

Agent View of the PolicyLayer registry record for `so_get_cfg`. HTML page: https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-get-cfg

## Facts

- Tool: `so_get_cfg`
- Server: SO Analyzer MCP (`1600822305/so-analyzer-mcp`) — https://policylayer.com/tools/1600822305-so-analyzer-mcp.md
- Homepage: https://github.com/1600822305/so-analyzer-mcp
- Risk category: Read (Low risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 0
- Recommended policy verdict: Allowed

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "so_get_cfg",
    "arguments": {}
  }
}
```

## Why so_get_cfg is rated Low

This tool performs static analysis on decompiled binaries to extract control flow information and generate visual representations in DOT format. It reads and analyzes code structure but does not execute code, modify binaries, delete data, or trigger external operations. The output is a graph representation used for understanding program logic.

From the tool's own definition: "Tool name 'so_get_cfg' and description indicate it 'generates control flow graphs (CFG), identifies basic blocks and branch edges, generates DOT format graph' — purely analysis and visualization of existing binary data without modification or execution."

## Use case

AI agents call so_get_cfg to retrieve information from SO Analyzer MCP without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches SO Analyzer MCP:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "so_get_cfg": {}
  }
}
```

## Other tools on SO Analyzer MCP (55)

- `blutter_export_hooks` — Execute — https://policylayer.com/tools/1600822305-so-analyzer-mcp/blutter-export-hooks.md
- `blutter_search_vip` — Execute — https://policylayer.com/tools/1600822305-so-analyzer-mcp/blutter-search-vip.md
- `flutter_analyze_apk` — Execute — https://policylayer.com/tools/1600822305-so-analyzer-mcp/flutter-analyze-apk.md
- `flutter_analyze_libapp` — Execute — https://policylayer.com/tools/1600822305-so-analyzer-mcp/flutter-analyze-libapp.md
- `flutter_generate_hook` — Execute — https://policylayer.com/tools/1600822305-so-analyzer-mcp/flutter-generate-hook.md
- `flutter_patch_apk` — Execute — https://policylayer.com/tools/1600822305-so-analyzer-mcp/flutter-patch-apk.md
- `flutter_patch_ssl` — Execute — https://policylayer.com/tools/1600822305-so-analyzer-mcp/flutter-patch-ssl.md
- `flutter_ssl_offset_v2` — Execute — https://policylayer.com/tools/1600822305-so-analyzer-mcp/flutter-ssl-offset-v2.md
- `so_decompile` — Execute — https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-decompile.md
- `so_patch_branch` — Execute — https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-patch-branch.md
- `so_patch_nop` — Execute — https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-patch-nop.md
- `so_patch_return` — Execute — https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-patch-return.md
- `blutter_func_detail` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/blutter-func-detail.md
- `blutter_parse` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/blutter-parse.md
- `blutter_search_func` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/blutter-search-func.md
- `blutter_search_string` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/blutter-search-string.md
- `flutter_check_blutter` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/flutter-check-blutter.md
- `flutter_detect` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/flutter-detect.md
- `flutter_extract_strings` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/flutter-extract-strings.md
- `flutter_find_ssl` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/flutter-find-ssl.md
- `flutter_find_vip` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/flutter-find-vip.md
- `flutter_get_version` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/flutter-get-version.md
- `so_analyze_function` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-analyze-function.md
- `so_analyze_function_advanced` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-analyze-function-advanced.md
- `so_callees` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-callees.md
- `so_callers` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-callers.md
- `so_callgraph` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-callgraph.md
- `so_check_env` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-check-env.md
- `so_check_ghidra` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-check-ghidra.md
- `so_check_radare2` — Read — https://policylayer.com/tools/1600822305-so-analyzer-mcp/so-check-radare2.md
- …and 25 more: https://policylayer.com/tools/1600822305-so-analyzer-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=1600822305-so-analyzer-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/1600822305-so-analyzer-mcp
