Authorization notice. Dexsql Release is dual-use. Only use it on software, sites and systems you own or have explicit permission to test.
Reverse engineering. Only run this on APKs you are authorized to examine, since it exposes the endpoints an app contacts.
Who it is forA security analyst who needs to check whether an app talks to a particular server or domain and which code does it.
The problemSearching every string and method in a large app by hand takes too long, and grep does not show which method owns each string.
The outcomeA list of method names that reference the target URL string, produced without decompiling the whole app.
What you need first
- A terminal on macOS, Linux or Windows
- The DexSQL executable or archive from the Releases page that matches your OS and CPU
- An APK or DEX file you have the right to analyze
- An MCP-capable AI client such as Codex, if you want agent access
Steps
- Open the Releases page and download the executable that matches your operating system and CPU.
- Rename the executable to
dexsqlon macOS/Linux, then runchmod +x /path/to/dexsql. - Replace the example URL in the command below with the value you want to match, keeping the single quotes, then run
dexsql query --input app.apk --sql "SELECT DISTINCT method FROM method_strings WHERE value = 'https://api.example.com'". - Check that the output lists the methods you expect, then rerun with a different value to compare endpoints.
Prompt for your agent
Run the dexsql CLI against <path to APK> with a query that selects distinct methods from method_strings where value equals <URL>. Report the method names returned and confirm the count matches the number of rows printed.
Caveat. The README example uses a placeholder URL, and the query matches the exact string value, so partial or differently formatted URLs need their own query.
Get 5 new use cases every morning. Free, one short email, unsubscribe anytime.
Get them freeShare: X LinkedIn Hacker News Email Copy link
Disclaimer
Deduped lists open-source repositories that belong to other people. We do not own, maintain, audit, or vouch for any of them, and a repo appearing here is not an endorsement or a safety check. The use cases, steps, and prompts are written by AI and may be incomplete, outdated, or just wrong. Where a use case is marked "Seen in the wild", we link to public posts where someone described something similar, but we have not verified those posts and the use case itself is still our AI's own write-up. Use all of this at your own risk. Only run code, commands, or agents on systems and accounts you are authorized to use, and read the code and every command before you run it, especially anything that touches credentials, files, or the network. Nothing here is professional, security, legal, or financial advice. All trademarks and project names belong to their respective owners, and their use here does not imply affiliation. Content is provided as is, without warranties of any kind. Found a mistake, a safety problem, or something you want removed? Email [email protected] and we will look at it promptly. Full disclaimer page