Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gilgames000/discord-detours
Discord Detours is a package that helps you find, call, and hook into Discord client's functions.
https://github.com/gilgames000/discord-detours
api detours discord function-hooking
Last synced: 9 days ago
JSON representation
Discord Detours is a package that helps you find, call, and hook into Discord client's functions.
- Host: GitHub
- URL: https://github.com/gilgames000/discord-detours
- Owner: Gilgames000
- License: other
- Created: 2021-12-07T22:07:37.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2022-11-03T22:39:15.000Z (about 2 years ago)
- Last Synced: 2024-09-28T17:35:05.363Z (about 2 months ago)
- Topics: api, detours, discord, function-hooking
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/@gilgames/discord-detours
- Size: 8.79 KB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Discord Detours
Discord Detours is a package that helps you find,
call, and hook into Discord client's functions.
This is intended to be used with tools like
[Puppeteer](https://github.com/puppeteer/puppeteer)
which let you programmatically control a browser
instance and run JavaScript code in its context.
You can also inject [`api.js`](https://github.com/Gilgames000/discord-detours/blob/master/api.js)
into Discord using an extension like
[Inject Code](https://chrome.google.com/webstore/detail/inject-code/gpaakhhkcmlenabckmapmlfnajboobbi)
directly from your browser.## Installation
```npm
npm install @gilgames/discord-detours
```## API reference
#### Utility functions for injecting the code (to be used with Puppeteer)
- `detours.serializeModule(module)`: serializes a module into a string (`JSON.stringify` is no good as it won't serialize functions)
- `detours.injectModule(serializedModule[, name])`: injects a serialized module into `window.name` (`name`defaults to `discordDetours` if not specified)#### APIs for finding functions and modules
- `detours.api.getAllModules()`: returns a list of all modules
- `detours.api.findModuleByFunctionName(name)`: returns a module by function name
- `detours.api.findFunctionByName(name)`: returns a function by name
- `detours.api.findFunctionsMatchingPattern(pattern)`: returns a list of functions matching a regex pattern
#### APIs for hooking/detouring functions
*Will be added in the future.*## Usage
#### Puppeteer
```js
const detours = require("@gilgames/discord-detours");// Open the browser with Puppeteer, navigate to Discord, and login
// ...// Execute the code in the browser's context using Puppeteer's `page.evaluate`
const serializedAPI = detours.serializeModule(detours.api);
await page.evaluate(detours.injectModule, serializedAPI);// Call any Discord function
const token = await page.evaluate(() => window.discordDetours.findFunctionByName("getToken")());
console.log(token);```
#### Using your browser
First you have to install an extension that lets
you inject code into a webpage. Then, navigate to
Discord's website, login, and inject the code that
you can find in the [`api.js`](https://github.com/Gilgames000/discord-detours/blob/master/api.js)
file, bar the module export at the bottom. You can
now call the API functions described in the usage
section directly from the console of your browser.