@mseep/anything-analyzer 3.6.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codeartsdoer/.codebaseignore +0 -0
- package/.codeartsdoer/AGENTS.md +12 -0
- package/.github/workflows/build.yml +146 -0
- package/README.en.md +264 -0
- package/README.md +276 -0
- package/RELEASE_NOTES.md +16 -0
- package/USAGE.md +490 -0
- package/color-preview-r3.html +414 -0
- package/color-preview.html +414 -0
- package/dev-app-update.yml +3 -0
- package/electron-builder.yml +36 -0
- package/electron.vite.config.ts +40 -0
- package/package.json +53 -0
- package/report-2026-04-13-copilot-claude-sonnet-4.6.md +955 -0
- package/resources/doloffer-logo.png +0 -0
- package/resources/entitlements.mac.plist +12 -0
- package/resources/icon.ico +0 -0
- package/resources/icon.png +0 -0
- package/src/main/ai/ai-analyzer.ts +517 -0
- package/src/main/ai/crypto-script-extractor.ts +206 -0
- package/src/main/ai/data-assembler.ts +205 -0
- package/src/main/ai/llm-router.ts +1120 -0
- package/src/main/ai/prompt-builder.ts +349 -0
- package/src/main/ai/scene-detector.ts +302 -0
- package/src/main/capture/capture-engine.ts +130 -0
- package/src/main/capture/interaction-recorder.ts +171 -0
- package/src/main/capture/js-injector.ts +57 -0
- package/src/main/capture/replay-engine.ts +256 -0
- package/src/main/capture/storage-collector.ts +76 -0
- package/src/main/cdp/cdp-manager.ts +233 -0
- package/src/main/db/database.ts +41 -0
- package/src/main/db/migrations.ts +235 -0
- package/src/main/db/repositories.ts +574 -0
- package/src/main/fingerprint/http-spoofing.ts +48 -0
- package/src/main/fingerprint/presets.ts +173 -0
- package/src/main/fingerprint/profile-generator.ts +115 -0
- package/src/main/fingerprint/profile-store.ts +52 -0
- package/src/main/index.ts +260 -0
- package/src/main/ipc.ts +856 -0
- package/src/main/logger.ts +42 -0
- package/src/main/mcp/mcp-config.ts +66 -0
- package/src/main/mcp/mcp-manager.ts +155 -0
- package/src/main/mcp/mcp-server.ts +1038 -0
- package/src/main/prompt-templates.ts +170 -0
- package/src/main/proxy/ca-manager.ts +204 -0
- package/src/main/proxy/cert-download-page.ts +171 -0
- package/src/main/proxy/cert-installer.ts +242 -0
- package/src/main/proxy/mitm-proxy-config.ts +37 -0
- package/src/main/proxy/mitm-proxy-server.ts +1085 -0
- package/src/main/proxy/system-proxy.ts +248 -0
- package/src/main/session/session-manager.ts +724 -0
- package/src/main/tab-manager.ts +582 -0
- package/src/main/updater.ts +111 -0
- package/src/main/window.ts +235 -0
- package/src/preload/hook-script.ts +270 -0
- package/src/preload/index.ts +211 -0
- package/src/preload/interaction-hook.ts +286 -0
- package/src/preload/stealth-script.ts +302 -0
- package/src/preload/target-preload.ts +15 -0
- package/src/renderer/App.tsx +656 -0
- package/src/renderer/components/AiLogDetail.tsx +173 -0
- package/src/renderer/components/AiLogList.tsx +101 -0
- package/src/renderer/components/AiLogView.module.css +364 -0
- package/src/renderer/components/AiLogView.tsx +86 -0
- package/src/renderer/components/AnalyzeBar.module.css +79 -0
- package/src/renderer/components/AnalyzeBar.tsx +104 -0
- package/src/renderer/components/BrowserPanel.module.css +67 -0
- package/src/renderer/components/BrowserPanel.tsx +90 -0
- package/src/renderer/components/ControlBar.module.css +47 -0
- package/src/renderer/components/ControlBar.tsx +205 -0
- package/src/renderer/components/HookLog.tsx +132 -0
- package/src/renderer/components/InteractionLog.tsx +183 -0
- package/src/renderer/components/MCPServerModal.tsx +427 -0
- package/src/renderer/components/PromptTemplateModal.tsx +254 -0
- package/src/renderer/components/ReportView.module.css +413 -0
- package/src/renderer/components/ReportView.tsx +429 -0
- package/src/renderer/components/RequestDetail.module.css +191 -0
- package/src/renderer/components/RequestDetail.tsx +202 -0
- package/src/renderer/components/RequestLog.module.css +69 -0
- package/src/renderer/components/RequestLog.tsx +208 -0
- package/src/renderer/components/SessionList.module.css +245 -0
- package/src/renderer/components/SessionList.tsx +247 -0
- package/src/renderer/components/SettingsModal.tsx +100 -0
- package/src/renderer/components/StatusBar.module.css +44 -0
- package/src/renderer/components/StatusBar.tsx +102 -0
- package/src/renderer/components/StorageView.module.css +41 -0
- package/src/renderer/components/StorageView.tsx +178 -0
- package/src/renderer/components/TabBar.module.css +88 -0
- package/src/renderer/components/TabBar.tsx +70 -0
- package/src/renderer/components/Titlebar.module.css +254 -0
- package/src/renderer/components/Titlebar.tsx +169 -0
- package/src/renderer/components/settings/FingerprintSection.tsx +198 -0
- package/src/renderer/components/settings/GeneralSection.tsx +164 -0
- package/src/renderer/components/settings/LLMSection.tsx +148 -0
- package/src/renderer/components/settings/MCPServerSection.tsx +136 -0
- package/src/renderer/components/settings/MitmProxySection.tsx +320 -0
- package/src/renderer/components/settings/ProxySection.tsx +110 -0
- package/src/renderer/css-modules.d.ts +4 -0
- package/src/renderer/hooks/useCapture.ts +383 -0
- package/src/renderer/hooks/useConfirm.tsx +91 -0
- package/src/renderer/hooks/useSession.ts +136 -0
- package/src/renderer/hooks/useTabs.ts +103 -0
- package/src/renderer/i18n/en.ts +167 -0
- package/src/renderer/i18n/index.ts +47 -0
- package/src/renderer/i18n/zh.ts +170 -0
- package/src/renderer/index.html +12 -0
- package/src/renderer/main.tsx +15 -0
- package/src/renderer/styles/global.css +144 -0
- package/src/renderer/styles/themes/ayu-dark.css +59 -0
- package/src/renderer/styles/themes/catppuccin.css +59 -0
- package/src/renderer/styles/themes/discord.css +59 -0
- package/src/renderer/styles/themes/dracula.css +59 -0
- package/src/renderer/styles/themes/github-dark.css +59 -0
- package/src/renderer/styles/themes/gruvbox.css +59 -0
- package/src/renderer/styles/themes/index.css +11 -0
- package/src/renderer/styles/themes/light.css +59 -0
- package/src/renderer/styles/themes/nord.css +59 -0
- package/src/renderer/styles/themes/one-dark.css +59 -0
- package/src/renderer/styles/themes/tokyo-night.css +59 -0
- package/src/renderer/styles/tokens.css +137 -0
- package/src/renderer/theme.ts +31 -0
- package/src/renderer/ui/Badge.module.css +38 -0
- package/src/renderer/ui/Badge.tsx +36 -0
- package/src/renderer/ui/Button.module.css +142 -0
- package/src/renderer/ui/Button.tsx +46 -0
- package/src/renderer/ui/Collapse.module.css +49 -0
- package/src/renderer/ui/Collapse.tsx +57 -0
- package/src/renderer/ui/CopyableBlock.module.css +56 -0
- package/src/renderer/ui/CopyableBlock.tsx +42 -0
- package/src/renderer/ui/Empty.module.css +19 -0
- package/src/renderer/ui/Empty.tsx +34 -0
- package/src/renderer/ui/Icons.tsx +346 -0
- package/src/renderer/ui/Input.module.css +103 -0
- package/src/renderer/ui/Input.tsx +94 -0
- package/src/renderer/ui/InputNumber.module.css +68 -0
- package/src/renderer/ui/InputNumber.tsx +104 -0
- package/src/renderer/ui/Modal.module.css +83 -0
- package/src/renderer/ui/Modal.tsx +67 -0
- package/src/renderer/ui/Popconfirm.module.css +73 -0
- package/src/renderer/ui/Popconfirm.tsx +74 -0
- package/src/renderer/ui/Progress.module.css +35 -0
- package/src/renderer/ui/Progress.tsx +30 -0
- package/src/renderer/ui/Select.module.css +91 -0
- package/src/renderer/ui/Select.tsx +100 -0
- package/src/renderer/ui/Spinner.module.css +44 -0
- package/src/renderer/ui/Spinner.tsx +27 -0
- package/src/renderer/ui/Switch.module.css +39 -0
- package/src/renderer/ui/Switch.tsx +43 -0
- package/src/renderer/ui/Tabs.module.css +76 -0
- package/src/renderer/ui/Tabs.tsx +53 -0
- package/src/renderer/ui/Tag.module.css +66 -0
- package/src/renderer/ui/Tag.tsx +47 -0
- package/src/renderer/ui/Timeline.module.css +42 -0
- package/src/renderer/ui/Timeline.tsx +29 -0
- package/src/renderer/ui/Toast.module.css +99 -0
- package/src/renderer/ui/Toast.tsx +90 -0
- package/src/renderer/ui/Tooltip.module.css +26 -0
- package/src/renderer/ui/Tooltip.tsx +23 -0
- package/src/renderer/ui/VirtualTable.module.css +230 -0
- package/src/renderer/ui/VirtualTable.tsx +416 -0
- package/src/renderer/ui/index.ts +55 -0
- package/src/shared/types.ts +695 -0
- package/tests/main/ai/crypto-script-extractor.test.ts +281 -0
- package/tests/main/ai/llm-router.test.ts +1537 -0
- package/tests/main/ai/prompt-builder.test.ts +178 -0
- package/tests/main/ai/scene-detector.test.ts +212 -0
- package/tests/main/db/migrations.test.ts +134 -0
- package/tests/main/release-workflow.test.ts +59 -0
- package/tsconfig.json +7 -0
- package/tsconfig.node.json +23 -0
- package/tsconfig.web.json +24 -0
- package/vitest.config.ts +13 -0
|
File without changes
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
name: Build & Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
push:
|
|
6
|
+
tags:
|
|
7
|
+
- 'v*'
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
strategy:
|
|
12
|
+
fail-fast: false
|
|
13
|
+
matrix:
|
|
14
|
+
include:
|
|
15
|
+
- os: windows-latest
|
|
16
|
+
platform: win
|
|
17
|
+
arch: x64
|
|
18
|
+
- os: macos-latest
|
|
19
|
+
platform: mac
|
|
20
|
+
arch: universal
|
|
21
|
+
- os: ubuntu-latest
|
|
22
|
+
platform: linux
|
|
23
|
+
arch: x64
|
|
24
|
+
|
|
25
|
+
runs-on: ${{ matrix.os }}
|
|
26
|
+
|
|
27
|
+
steps:
|
|
28
|
+
- name: Checkout
|
|
29
|
+
uses: actions/checkout@v6
|
|
30
|
+
|
|
31
|
+
- name: Setup pnpm
|
|
32
|
+
uses: pnpm/action-setup@v6
|
|
33
|
+
|
|
34
|
+
- name: Setup Node.js
|
|
35
|
+
uses: actions/setup-node@v6
|
|
36
|
+
with:
|
|
37
|
+
node-version: 20
|
|
38
|
+
cache: pnpm
|
|
39
|
+
cache-dependency-path: pnpm-lock.yaml
|
|
40
|
+
|
|
41
|
+
- name: Install dependencies
|
|
42
|
+
run: pnpm install
|
|
43
|
+
env:
|
|
44
|
+
ELECTRON_MIRROR: ""
|
|
45
|
+
|
|
46
|
+
- name: Build
|
|
47
|
+
run: pnpm run build
|
|
48
|
+
|
|
49
|
+
- name: Package for Windows
|
|
50
|
+
if: matrix.platform == 'win'
|
|
51
|
+
run: npx electron-builder --win --publish never
|
|
52
|
+
|
|
53
|
+
- name: Configure macOS signing
|
|
54
|
+
if: matrix.platform == 'mac'
|
|
55
|
+
env:
|
|
56
|
+
SIGNING_CSC_LINK: ${{ secrets.CSC_LINK }}
|
|
57
|
+
SIGNING_CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
|
|
58
|
+
SIGNING_APPLE_ID: ${{ secrets.APPLE_ID }}
|
|
59
|
+
SIGNING_APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
|
|
60
|
+
SIGNING_APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
|
61
|
+
run: |
|
|
62
|
+
echo "CSC_IDENTITY_AUTO_DISCOVERY=false" >> "$GITHUB_ENV"
|
|
63
|
+
if [ -n "$SIGNING_CSC_LINK" ]; then
|
|
64
|
+
echo "CSC_LINK=$SIGNING_CSC_LINK" >> "$GITHUB_ENV"
|
|
65
|
+
echo "CSC_KEY_PASSWORD=$SIGNING_CSC_KEY_PASSWORD" >> "$GITHUB_ENV"
|
|
66
|
+
echo "APPLE_ID=$SIGNING_APPLE_ID" >> "$GITHUB_ENV"
|
|
67
|
+
echo "APPLE_APP_SPECIFIC_PASSWORD=$SIGNING_APPLE_APP_SPECIFIC_PASSWORD" >> "$GITHUB_ENV"
|
|
68
|
+
echo "APPLE_TEAM_ID=$SIGNING_APPLE_TEAM_ID" >> "$GITHUB_ENV"
|
|
69
|
+
echo "MAC_SIGNING_ENABLED=true" >> "$GITHUB_ENV"
|
|
70
|
+
else
|
|
71
|
+
echo "MAC_SIGNING_ENABLED=false" >> "$GITHUB_ENV"
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
- name: Package for macOS
|
|
75
|
+
if: matrix.platform == 'mac'
|
|
76
|
+
run: |
|
|
77
|
+
npx electron-builder --mac --x64 --arm64 --publish never
|
|
78
|
+
grep -q 'arm64\.zip' dist/latest-mac.yml
|
|
79
|
+
grep -q 'x64\.zip' dist/latest-mac.yml
|
|
80
|
+
|
|
81
|
+
- name: Verify macOS signing configuration
|
|
82
|
+
if: matrix.platform == 'mac'
|
|
83
|
+
run: |
|
|
84
|
+
if [ "$MAC_SIGNING_ENABLED" != "true" ]; then
|
|
85
|
+
echo "macOS signing secrets are not configured; skipping codesign verification."
|
|
86
|
+
exit 0
|
|
87
|
+
fi
|
|
88
|
+
test -n "$CSC_LINK"
|
|
89
|
+
test -n "$CSC_KEY_PASSWORD"
|
|
90
|
+
test -n "$APPLE_ID"
|
|
91
|
+
test -n "$APPLE_APP_SPECIFIC_PASSWORD"
|
|
92
|
+
test -n "$APPLE_TEAM_ID"
|
|
93
|
+
codesign --verify --deep --strict --verbose=2 "dist/mac*/Anything Analyzer.app"
|
|
94
|
+
|
|
95
|
+
- name: Package for Linux
|
|
96
|
+
if: matrix.platform == 'linux'
|
|
97
|
+
run: npx electron-builder --linux --publish never
|
|
98
|
+
|
|
99
|
+
- name: Upload artifacts
|
|
100
|
+
uses: actions/upload-artifact@v7
|
|
101
|
+
with:
|
|
102
|
+
name: build-${{ matrix.platform }}-${{ matrix.arch }}
|
|
103
|
+
path: |
|
|
104
|
+
dist/*.exe
|
|
105
|
+
dist/*.dmg
|
|
106
|
+
dist/*.zip
|
|
107
|
+
dist/*.AppImage
|
|
108
|
+
dist/*.yml
|
|
109
|
+
dist/*.blockmap
|
|
110
|
+
if-no-files-found: error
|
|
111
|
+
|
|
112
|
+
release:
|
|
113
|
+
needs: build
|
|
114
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
115
|
+
runs-on: ubuntu-latest
|
|
116
|
+
permissions:
|
|
117
|
+
contents: write
|
|
118
|
+
|
|
119
|
+
steps:
|
|
120
|
+
- name: Checkout for release notes
|
|
121
|
+
uses: actions/checkout@v6
|
|
122
|
+
with:
|
|
123
|
+
sparse-checkout: RELEASE_NOTES.md
|
|
124
|
+
sparse-checkout-cone-mode: false
|
|
125
|
+
|
|
126
|
+
- name: Download all artifacts
|
|
127
|
+
uses: actions/download-artifact@v6
|
|
128
|
+
with:
|
|
129
|
+
path: artifacts
|
|
130
|
+
merge-multiple: true
|
|
131
|
+
|
|
132
|
+
- name: List artifacts
|
|
133
|
+
run: find artifacts -type f | head -30
|
|
134
|
+
|
|
135
|
+
- name: Create GitHub Release
|
|
136
|
+
uses: softprops/action-gh-release@v3
|
|
137
|
+
with:
|
|
138
|
+
draft: false
|
|
139
|
+
body_path: RELEASE_NOTES.md
|
|
140
|
+
files: |
|
|
141
|
+
artifacts/*.exe
|
|
142
|
+
artifacts/*.dmg
|
|
143
|
+
artifacts/*.zip
|
|
144
|
+
artifacts/*.AppImage
|
|
145
|
+
artifacts/*.yml
|
|
146
|
+
artifacts/*.blockmap
|
package/README.en.md
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
# Anything Analyzer
|
|
2
|
+
|
|
3
|
+
[English](README.en.md) | [简体中文](README.md)
|
|
4
|
+
|
|
5
|
+
> **Web pages, desktop apps, terminal commands, Python scripts, mobile apps -- no matter where traffic comes from, capture it and let AI reverse engineer it automatically.**
|
|
6
|
+
|
|
7
|
+
[](https://www.electronjs.org/)
|
|
8
|
+
[](https://react.dev/)
|
|
9
|
+
[](https://www.typescriptlang.org/)
|
|
10
|
+
[](LICENSE)
|
|
11
|
+
|
|
12
|
+
<img alt="Anything Analyzer Screenshot" src="https://github.com/user-attachments/assets/87f24186-ea00-4a03-9634-4d7af4b224d4" />
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Why Anything Analyzer?
|
|
17
|
+
|
|
18
|
+
Traditional tools each cover only one area: DevTools is for browsers, Fiddler/Charles are for proxies, and Wireshark does not decrypt HTTPS. After capture, you still have to sift through hundreds of requests and analyze them manually.
|
|
19
|
+
|
|
20
|
+
**Anything Analyzer is different -- full scenario capture + AI automatic analysis:**
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
Web Desktop apps Terminal Scripts Mobile / IoT
|
|
24
|
+
Chrome Postman curl/wget Python App / Mini Program
|
|
25
|
+
| Electron | Node.js |
|
|
26
|
+
| | | | |
|
|
27
|
+
v v v v v
|
|
28
|
+
┌──────────┐ ┌──────────────────────────────────────────────────────────┐
|
|
29
|
+
│ Embedded │ │ MITM Proxy (port 8888) │
|
|
30
|
+
│ Browser │ │ System proxy / manual / Wi-Fi proxy │
|
|
31
|
+
│ (CDP) │ └──────────────────────────┬───────────────────────────────┘
|
|
32
|
+
└────┬─────┘ |
|
|
33
|
+
| |
|
|
34
|
+
└──────────┬───────────────────────┘
|
|
35
|
+
v
|
|
36
|
+
┌─────────────────┐
|
|
37
|
+
│ Unified Session │ <- All sources flow into one session
|
|
38
|
+
└────────┬────────┘
|
|
39
|
+
v
|
|
40
|
+
┌─────────────────┐
|
|
41
|
+
│ AI Analysis │ <- One-click protocol reverse / security / crypto report
|
|
42
|
+
└─────────────────┘
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Three Core Capabilities
|
|
48
|
+
|
|
49
|
+
### 1. Capture across all scenarios -- anything, not just browsers
|
|
50
|
+
|
|
51
|
+
| Target | How to capture | Typical use cases |
|
|
52
|
+
|--------|----------------|------------------|
|
|
53
|
+
| **Web** | Use the embedded browser directly | Web API reverse engineering, OAuth login, frontend crypto |
|
|
54
|
+
| **Desktop apps** | MITM proxy + system proxy | Postman, Electron apps, game clients |
|
|
55
|
+
| **Terminal commands** | MITM proxy + environment variables | curl, wget, httpie |
|
|
56
|
+
| **Scripts** | MITM proxy + code config | Python requests, Node.js fetch, Go http |
|
|
57
|
+
| **Mobile / tablets** | MITM proxy + Wi-Fi proxy | iOS/Android apps, mini programs, H5 |
|
|
58
|
+
| **IoT / other devices** | MITM proxy + gateway proxy | Smart home, embedded HTTP traffic |
|
|
59
|
+
|
|
60
|
+
All sources are **merged into a single Session**, and AI analyzes them together.
|
|
61
|
+
|
|
62
|
+
### 2. AI analysis -- more than capture, automatic protocol understanding
|
|
63
|
+
|
|
64
|
+
- **Two-phase analysis** -- Phase 1 filters noise requests, Phase 2 focuses on deep analysis
|
|
65
|
+
- **5 analysis modes** -- Auto detect / API reverse / security audit / performance / JS crypto reverse
|
|
66
|
+
- **JS Hook injection** -- Intercepts fetch, XHR, crypto.subtle, CryptoJS, SM2/3/4 crypto calls
|
|
67
|
+
- **Crypto code extraction** -- Extracts crypto-related code snippets from JS files
|
|
68
|
+
- **Streaming output + follow-ups** -- Reports stream in real time and support multi-round Q&A
|
|
69
|
+
|
|
70
|
+
### 3. MCP ecosystem integration -- capture tool for AI agents
|
|
71
|
+
|
|
72
|
+
- **MCP Client** -- Connect to external MCP servers (stdio + StreamableHTTP) to extend AI analysis
|
|
73
|
+
- **Built-in MCP Server** -- Expose capture and analysis as MCP tools for Claude Desktop, Cursor, and more
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Use Cases
|
|
78
|
+
|
|
79
|
+
| Scenario | Traffic source | What you get |
|
|
80
|
+
|----------|----------------|--------------|
|
|
81
|
+
| **Reverse a website API** | Embedded browser | API endpoints + auth flow + Python reproduction code |
|
|
82
|
+
| **Reverse an app protocol** | Mobile Wi-Fi proxy | Hidden APIs + request signing logic |
|
|
83
|
+
| **JS crypto reverse** | Embedded browser + JS Hook | Crypto algorithm ID + flow reconstruction + Python implementation |
|
|
84
|
+
| **Security audit** | Browser + proxy mix | Token leaks, CSRF/XSS, sensitive data exposure |
|
|
85
|
+
| **Debug CLI tools** | Terminal curl/httpie | Full request/response logs + AI step-by-step explanations |
|
|
86
|
+
| **Debug microservices** | Scripts + env proxy | Service call chains + auth propagation analysis |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Quick Start
|
|
91
|
+
|
|
92
|
+
### Download and install
|
|
93
|
+
|
|
94
|
+
Get the installer for your platform from [Releases](https://github.com/Mouseww/anything-analyzer/releases):
|
|
95
|
+
|
|
96
|
+
| Platform | File |
|
|
97
|
+
|----------|------|
|
|
98
|
+
| Windows | `Anything-Analyzer-Setup-x.x.x.exe` |
|
|
99
|
+
| macOS (Apple Silicon) | `Anything-Analyzer-x.x.x-arm64.dmg` |
|
|
100
|
+
| macOS (Intel) | `Anything-Analyzer-x.x.x-x64.dmg` |
|
|
101
|
+
| Linux | `Anything-Analyzer-x.x.x.AppImage` |
|
|
102
|
+
|
|
103
|
+
### Capture web traffic -- embedded browser
|
|
104
|
+
|
|
105
|
+
1. **Configure LLM** -- Settings -> LLM, fill in API Key (OpenAI / Anthropic / any compatible API)
|
|
106
|
+
2. **Create a new Session** -- enter a name and target URL
|
|
107
|
+
3. **Interact and capture** -- use the embedded browser, click Start Capture
|
|
108
|
+
4. **AI analysis** -- stop capture, click Analyze, choose analysis mode
|
|
109
|
+
|
|
110
|
+
### Capture apps/terminal/mobile -- MITM proxy
|
|
111
|
+
|
|
112
|
+
1. Settings -> MITM Proxy -> **install CA certificate**
|
|
113
|
+
2. **Enable proxy** (default port `8888`)
|
|
114
|
+
3. Configure proxy by scenario:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# ---- Terminal commands ----
|
|
118
|
+
curl -x http://127.0.0.1:8888 https://api.example.com/data
|
|
119
|
+
|
|
120
|
+
# ---- Python script ----
|
|
121
|
+
proxies = {"http": "http://127.0.0.1:8888", "https": "http://127.0.0.1:8888"}
|
|
122
|
+
requests.get("https://api.example.com/data", proxies=proxies)
|
|
123
|
+
|
|
124
|
+
# ---- Node.js ----
|
|
125
|
+
HTTP_PROXY=http://127.0.0.1:8888 HTTPS_PROXY=http://127.0.0.1:8888 node app.js
|
|
126
|
+
|
|
127
|
+
# ---- System-wide (desktop apps follow proxy) ----
|
|
128
|
+
# Use the one-click "Set as system proxy" in Settings
|
|
129
|
+
|
|
130
|
+
# ---- Mobile / tablets ----
|
|
131
|
+
# Wi-Fi Settings -> HTTP Proxy -> Manual -> enter computer IP + port 8888
|
|
132
|
+
# Then open the proxy address in a phone browser to download and install the CA certificate
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
4. Create a Session (URL can be empty) -> Start Capture -> external app traffic flows in
|
|
136
|
+
|
|
137
|
+
<details>
|
|
138
|
+
<summary>CA certificate details</summary>
|
|
139
|
+
|
|
140
|
+
- Cert storage: `%APPDATA%/anything-analyzer/certs/` (Windows) / `~/Library/Application Support/anything-analyzer/certs/` (macOS)
|
|
141
|
+
- Admin permissions required on first install (Windows UAC / macOS password)
|
|
142
|
+
- Settings allows uninstall, regenerate, or export at any time
|
|
143
|
+
- Root CA is valid for 10 years, leaf certs 825 days (Apple requirement)
|
|
144
|
+
- MITM proxy is **read-only capture**, it does not modify requests/responses
|
|
145
|
+
- WebSocket traffic is tunneled, not decrypted
|
|
146
|
+
- Per-body size limit 1MB, binary content is skipped
|
|
147
|
+
|
|
148
|
+
</details>
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## All Features
|
|
153
|
+
|
|
154
|
+
<details>
|
|
155
|
+
<summary>Expand to see full feature list</summary>
|
|
156
|
+
|
|
157
|
+
**Capture engine**
|
|
158
|
+
- Full network capture -- CDP Fetch interception for all HTTP requests/responses (headers, body)
|
|
159
|
+
- MITM proxy -- built-in HTTPS MITM proxy, auto-issues TLS certs with per-domain LRU cache
|
|
160
|
+
- Dual-channel capture -- browser CDP + MITM proxy into one session
|
|
161
|
+
- SSE / WebSocket detection -- auto detect streaming and upgrade requests
|
|
162
|
+
- Storage snapshots -- periodic Cookie, localStorage, sessionStorage collection
|
|
163
|
+
- Domain filters -- group/filter by domain with partial match search
|
|
164
|
+
- Source tags -- distinguish "CDP" and "Proxy" sources
|
|
165
|
+
- Export requests -- export raw request data to JSON files
|
|
166
|
+
|
|
167
|
+
**Browser**
|
|
168
|
+
- Multi-tab -- auto-capture popups into internal tabs (OAuth friendly)
|
|
169
|
+
- Tab protection -- prevent window.close from killing tabs, auto-restore last tab
|
|
170
|
+
- One-click clean environment -- clear cookies, localStorage, sessionStorage, cache
|
|
171
|
+
|
|
172
|
+
**AI analysis**
|
|
173
|
+
- Two-phase analysis -- Phase 1 filtering -> Phase 2 deep analysis, AI reads details on demand
|
|
174
|
+
- Manual multi-select analysis -- analyze selected requests without pre-filtering
|
|
175
|
+
- Custom prompt templates -- built-in templates plus custom ones
|
|
176
|
+
- Streaming output + follow-ups -- live report display with multi-round chat
|
|
177
|
+
|
|
178
|
+
**System**
|
|
179
|
+
- System proxy integration -- one-click system proxy (Windows registry / macOS networksetup / Linux gsettings)
|
|
180
|
+
- CA certificate management -- install / uninstall / regenerate / export across platforms
|
|
181
|
+
- Global proxy -- SOCKS5/HTTP/HTTPS proxy support
|
|
182
|
+
- Auto update -- built-in electron-updater
|
|
183
|
+
- Dark theme -- modern UI based on Ant Design
|
|
184
|
+
|
|
185
|
+
</details>
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Build from Source
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
git clone https://github.com/MouseWW/anything-analyzer.git
|
|
193
|
+
cd anything-analyzer
|
|
194
|
+
pnpm install
|
|
195
|
+
pnpm dev # dev mode
|
|
196
|
+
pnpm test # run tests
|
|
197
|
+
pnpm build && npx electron-builder --win # build Windows installer
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
> macOS release note: auto-update requires **signed and notarized** installers. Before publishing mac builds from GitHub Actions, configure `CSC_LINK`, `CSC_KEY_PASSWORD`, `APPLE_ID`, `APPLE_APP_SPECIFIC_PASSWORD`, and `APPLE_TEAM_ID` in repository secrets, otherwise `ShipIt` cannot install updates.
|
|
201
|
+
|
|
202
|
+
**Requirements:** Node.js >= 18, pnpm, Visual Studio Build Tools (Windows)
|
|
203
|
+
|
|
204
|
+
## Tech Stack
|
|
205
|
+
|
|
206
|
+
| Layer | Technology |
|
|
207
|
+
|-------|------------|
|
|
208
|
+
| Framework | Electron 35 + electron-vite |
|
|
209
|
+
| Frontend | React 19 + Ant Design 5 + TypeScript |
|
|
210
|
+
| Database | better-sqlite3 (local SQLite) |
|
|
211
|
+
| Protocol | Chrome DevTools Protocol (CDP) |
|
|
212
|
+
| Proxy | Built-in MITM HTTPS proxy (node-forge TLS) |
|
|
213
|
+
| AI | OpenAI / Anthropic / Custom LLM (Chat Completions + Responses API) |
|
|
214
|
+
| AI extensions | MCP Client (stdio + StreamableHTTP) + built-in MCP Server |
|
|
215
|
+
|
|
216
|
+
<details>
|
|
217
|
+
<summary>Project structure</summary>
|
|
218
|
+
|
|
219
|
+
```
|
|
220
|
+
src/
|
|
221
|
+
├── main/ # Electron main process
|
|
222
|
+
│ ├── ai/ # AI pipeline (two-phase orchestration, prompts, LLM routing)
|
|
223
|
+
│ ├── capture/ # Capture engine (CDP Fetch + JS Hook + storage snapshots)
|
|
224
|
+
│ ├── cdp/ # Chrome DevTools Protocol management
|
|
225
|
+
│ ├── proxy/ # MITM proxy (CA management, cert issuance, system proxy)
|
|
226
|
+
│ ├── mcp/ # MCP Client + built-in MCP Server
|
|
227
|
+
│ ├── db/ # SQLite data layer
|
|
228
|
+
│ └── session/ # Session lifecycle management
|
|
229
|
+
├── preload/ # Context bridge + hook injection scripts
|
|
230
|
+
├── renderer/ # React UI (components + hooks)
|
|
231
|
+
└── shared/ # Shared type definitions
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
</details>
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
This project **does not** include the following capabilities:
|
|
239
|
+
- Illegal access to computer data
|
|
240
|
+
- Illegal modification of computer data
|
|
241
|
+
- Illegal control of computer systems
|
|
242
|
+
- Destruction of computer systems
|
|
243
|
+
- Built-in AI models (you must configure your own model and use it in compliance with regulations)
|
|
244
|
+
|
|
245
|
+
**Do not use this tool for any activity that violates the laws of the PRC.**
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
249
|
+
Thanks to everyone on [LinuxDo](https://linux.do/) for their support!
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
## Recommended Resources
|
|
254
|
+
|
|
255
|
+
|:---:|---|
|
|
256
|
+
| <a href="https://doloffer.com/friend/Pa34D0CG"><img src="resources/doloffer-logo.png" width="180" alt="Doloffer"></a> | **[Doloffer](https://doloffer.com/friend/Pa34D0CG)** — GPT / Claude subscriptions at discounted prices. Genuine licenses, hassle-free support.<br>📖 [Guide](https://github.com/Doloffer-g/guide) \| 🎁 Promo code: `Al8888` (10% off) |
|
|
257
|
+
|
|
258
|
+
## Star History
|
|
259
|
+
|
|
260
|
+
[](https://star-history.com/#Mouseww/anything-analyzer&Date)
|
|
261
|
+
|
|
262
|
+
## License
|
|
263
|
+
|
|
264
|
+
MIT
|