MCPcopy Index your code
hub / github.com/Mocha-L/QuJing

github.com/Mocha-L/QuJing @0.6

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.6 ↗ · + Follow
507 symbols 1,186 edges 37 files 67 documented · 13%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

QuJing

中文版

QuJing is an Xposed module that allows you to dynamically monitor (hook) function calls, view stack information, and perform reflective invocations on Android devices through a PC browser. It eliminates the need for writing frequent hook code and provides a visual interface that is more user-friendly, especially for beginners.

Features

  1. Enumerate all apps on an Android device.
  2. Search for methods based on class name and method name.
  3. Method monitoring with printing of call stacks and input/output parameters.
  4. Forced execution of target methods.

Known Issues

  1. When functions are frequently called, a large amount of stack information and input/output parameters are printed on the browser page, which may cause the page to be overloaded. If unnecessary data is present, refreshing the page can resolve the issue.
  2. Some layout issues may occur in the frontend display.
  3. Does not support scenarios where hooking immediately after booting (as the target app needs to be set after each boot).
  4. Does not support apps that do not have network permissions.
  5. ~~There seems to be an issue with LSPOSED support; the symptom is that port 61000 cannot be opened. It will be supported later~~ (LSPOSED is now supported. When using, make sure to not only select the target app in Lsposed, **but also check "System Framework" as shown here~~).

Usage

You can directly download the APK file from the "apk" directory and install it for testing. For detailed usage instructions, please refer to this article.

If it helps you, don't forget to give it a star.

Demo

Enumerating all apps on the phone for selection.

Guiding manual operations on the selected app.

Enter the app, search for classes and methods to monitor.

Enter the monitored method, view basic information and call stack, and print input/output parameters.

<img src="https://github.com/Mocha-L/QuJing/blob/master/image/%E7%9B%91%E6%8E%A7%E6%96%B9%E6%B3%

952.png" width="1000px" />

Supported types for method execution.

Issue Discussion

If you have any questions, feel free to raise an issue. You are also welcome to contribute to further optimizations and submit pull requests.

You can also join my knowledge planet "爬虫三十六计" for further discussions.

Acknowledgements

This project is based on xserver and optimized accordingly. Thanks to the original author.

Thanks to @小黄鸭爱学习 for helping with optimizations and resolving classloader errors in certain cases.

Extension points exported contracts — how you extend this code

ServerSocketFactory (Interface)
Factory to create ServerSocketFactories. [5 implementers]
app/src/main/java/leon/qujing/utils/NanoHTTPD.java
ObjectParser (Interface)
(no doc) [15 implementers]
app/src/main/java/leon/qujing/QuJingServer.java
Operation (Interface)
(no doc) [13 implementers]
app/src/main/java/leon/qujing/QuJingServer.java
wsOperation (Interface)
(no doc) [13 implementers]
app/src/main/java/leon/qujing/QuJingServer.java
TempFileManagerFactory (Interface)
Factory to create temp file managers. [4 implementers]
app/src/main/java/leon/qujing/utils/NanoHTTPD.java

Core symbols most depended-on inside this repo

put
called by 132
app/src/main/java/leon/qujing/utils/NanoHTTPD.java
toString
called by 52
app/src/main/java/leon/qujing/utils/NanoWSD.java
getName
called by 31
app/src/main/java/leon/qujing/utils/NanoHTTPD.java
log
called by 26
app/src/main/java/leon/qujing/utils/Xlog.java
exec
called by 23
app/src/main/java/leon/qujing/utils/NanoHTTPD.java
safeClose
called by 19
app/src/main/java/leon/qujing/utils/NanoHTTPD.java
set
called by 19
app/src/main/java/leon/qujing/utils/NanoHTTPD.java
read
called by 16
app/src/main/java/leon/qujing/utils/NanoWSD.java

Shape

Method 357
Function 68
Class 67
Interface 10
Enum 5

Languages

Java87%
TypeScript13%

Modules by API surface

app/src/main/java/leon/qujing/utils/NanoHTTPD.java169 symbols
app/src/main/java/leon/qujing/utils/NanoWSD.java73 symbols
app/src/main/assets/statics/jquery-2.0.2.min.js68 symbols
app/src/main/java/leon/qujing/QuJingServer.java28 symbols
app/src/main/java/leon/qujing/api/wsMethodView.java24 symbols
app/src/main/java/leon/qujing/api/wsPacketView.java17 symbols
app/src/main/java/leon/qujing/utils/Utils.java16 symbols
app/src/main/java/leon/qujing/XposedEntry.java9 symbols
app/src/main/java/leon/qujing/handler/ObjectHandler.java8 symbols
app/src/main/java/leon/qujing/utils/netUtil.java7 symbols
app/src/main/java/leon/qujing/handler/HookHandler.java7 symbols
app/src/main/java/leon/qujing/handler/MethodHandler.java6 symbols

For agents

$ claude mcp add QuJing \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact