
Exemples Frida artisanaux
& aussi des exemples de sortie
Charger un module C/C++Point d'arrêt ponctuelActivité socketIntercepter openExécuter une commande shellLister les modulesJournaliser les requêtes SQLiteJournaliser les arguments de méthodeIntercepter tout le moduleVider les segments mémoireAnalyse mémoireStalkerDémangleur C++Crochet précoceTransactions BinderObtenir la propriété systèmeRévéler les symboles natifs enregistrés manuellementÉnumérer les classes chargéesDescription de classeDésactiver le WiFiDéfinir le proxyObtenir l'IMEICrocheter io InputStreamAfficher un Toast AndroidAttendre le chargement d'un module spécifiqueURLs WebviewAfficher toutes les chaînes runtime et la pile d'appelsAfficher les mises à jour des préférences partagéesComparaison de chaînesCrocheter JNI par adresseCrocheter le constructeurCrocheter la réflexion JavaTracer la classeCrocheter Unity3dObtenir l'ID AndroidChanger la localisationContourner FLAG_SECUREMise à jour des préférences partagéesCrocheter toutes les surcharges de méthodeEnregistrer un récepteur de diffusionAugmenter le nombre de pasLister les classes implémentant une interface avec les chargeurs de classes$ frida --codeshare FrenchYeti/android-file-system-access-hook -f com.example.app --no-pausenull à la propriété implementation.
{
"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(){}"}
]
}
Pour lister les abréviations :ab
Développer en tapant key et <Space>
</details>
<details>
<summary>JEB</summary>
Générateur de hook de méthode Java utilisant un raccourci clavier
1. `curl -o ~/$JEB$/scripts/FridaCodeGenerator.py https://raw.githubusercontent.com/iddoeldor/frida-snippets/master/scripts/FridaCodeGenerator.py`
2. Placer le curseur sur la signature de la méthode Java
3. Appuyer sur `Ctrl+Shift+Z`
4. Le code est copié dans le presse-papiers système (en utilisant `xclip`)
</details>
<hr />
#### Récupérer les clés SSL```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