
Handgefertigte Frida-Beispiele
& auch Ausgabebeispiele
Binder-TransaktionenSystemeigenschaft abfragenManuell registrierte native Symbole aufdeckenGeladene Klassen auflistenKlassenbeschreibungWiFi ausschaltenProxy setzenIMEI abrufenHook auf io InputStreamAndroid Toast anzeigenAuf bestimmtes Modul wartenWebview URLsAlle Runtime-Strings & Stacktrace ausgebenShared-Preferences-Änderungen ausgebenString-VergleichJNI per Adresse hookenKonstruktor hookenJava Reflection hookenKlasse verfolgenUnity3d hookenAndroid ID abrufenStandort ändernFLAG_SECURE umgehenShared Preferences aktualisierenAlle Methodenüberladungen hookenBroadcast-Empfänger registrierenSchrittzahl erhöhenKlassen auflisten, die Interface mit Class Loadern implementieren$ frida --codeshare FrenchYeti/android-file-system-access-hook -f com.example.app --no-pauseimplementation den Wert null zu.
{
"scope": "source.js",
"completions": [
{"trigger": "fridainterceptor", "contents": "Interceptor.attach(\n ptr,\n {\n onEnter:function(args) {\n\n },\n onLeave: function(retval) {\n\n }\n }\n)"},
{"trigger": "fridaperform", "contents": "function main(){\n console.log('main()');\n}\n\nconsole.log('script loaded');\nJava.perform(main);"},
{"trigger": "fridause", "contents": "var kls = Java.use('kls');"},
{"trigger": "fridahex", "contents": "hexdump(\n ptr,\n {\n offset: 0,\n length: ptr_size\n }\n);" },
{"trigger": "fridabacktrace", "contents": "console.log('called from:\\n' +\n Thread.backtrace(this.context, Backtracer.ACCURATE)\n .map(DebugSymbol.fromAddress).join('\\n') + '\\n'\n);"},
{"trigger": "fridamods", "contents": "var mods = Process.enumerateModules().filter(function(mod){\n return mod.name.includes(\"<name>\");\n});"},
{"trigger": "fridaexport", "contents": "Module.findExportByName(null, \"<export_name>\");"},
{"trigger": "fridabase", "contents": "Module.findBaseAddress(name);"},
{"trigger": "fridaoverload", "contents": "kls.method_name.overload().implementation=function(){}"}
]
}
Abkürzungen auflisten :ab
Erweitern durch Eingabe von key und <Space>
</details>
<details>
<summary>JEB</summary>
Java-Methoden-Hook-Generator mittels Tastenkombination
1. `curl -o ~/$JEB$/scripts/FridaCodeGenerator.py https://raw.githubusercontent.com/iddoeldor/frida-snippets/master/scripts/FridaCodeGenerator.py`
2. Platziere den Cursor auf der Signatur der Java-Methode
3. Drücke `Strg+Umschalt+Z`
4. Der Code wird in die System-Zwischenablage kopiert (mittels `xclip`)
</details>
<hr />
#### SSL-Schlüssel abrufen```js
var keylog_callback = new NativeCallback((ssl, line) => {
send(Memory.readCString(line));
}, 'void', ['pointer', 'pointer']);
if (ObjC.available) {
var CALLBACK_OFFSET = 0x2A8
if (Memory.readDouble(Module.findExportByName('CoreFoundation', 'kCFCoreFoundationVersionNumber')) >= 1751.108) {
CALLBACK_OFFSET = 0x2B8
}
Interceptor.attach(Module.findExportByName('libboringssl.dylib', 'SSL_CTX_set_info_callback'), {
onEnter(args) {
ptr(args[0]).add(CALLBACK_OFFSET).writePointer(keylog_callback)
}
})
} else if (Java.available) {
var set_keylog_callback = new NativeFunction(Module.findExportByName('libssl.so', 'SSL_CTX_set_keylog_callback'), 'void', ['pointer', 'pointer']);
Interceptor.attach(Module.findExportByName('libssl.so', 'SSL_CTX_new'), {
onLeave(retval) {
set_keylog_callback(retval, keylog_callback)
}
})
}
#include #include
extern "C" { void* create_stdstr(char data, int size) { std::string s = new std::string(); (*s).assign(data, size); return s; } }
### Mittn

Dies wurde [fast vollständig](https://0xpatrik.com/subdomain-enumeration-2019/) auf Pentester Land behandelt: