
أمثلة فريدا المصنوعة يدويًا
وأيضًا أمثلة المخرجات
معاملات Binderالحصول على خاصية النظامكشف الرموز الأصلية المسجلة يدويًاتعداد الفئات المحملةوصف الفئةإيقاف تشغيل WiFiتعيين وكيلالحصول على IMEIخطاف InputStream ioإظهار Toast في Androidانتظار تحميل وحدة معينةعناوين URL لـ Webviewطباعة جميع السلاسل النصية في وقت التشغيل وتتبع المكدسطباعة تحديثات التفضيلات المشتركةمقارنة السلاسل النصيةخطاف JNI بالعنوانخطاف المُنشئخطاف الانعكاس في Javaتتبع الفئةخطاف Unity3dالحصول على معرف Androidتغيير الموقعتجاوز FLAG_SECUREتحديث التفضيلات المشتركةخطاف جميع التحميلات الزائدة للطريقةتسجيل مستقبل البثزيادة عدد الخطواتسرد الفئات التي تنفذ واجهة مع محملات الفئة$ frida --codeshare FrenchYeti/android-file-system-access-hook -f com.example.app --no-pausenull إلى خاصية 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(){}"}
]
}
لسرد الاختصارات :ab
قم بالتوسيع بكتابة key ثم <Space>
</details>
<details>
<summary>JEB</summary>
مُولِّد خطاف (hook) لطرق Java باستخدام اختصار لوحة المفاتيح
1. `curl -o ~/$JEB$/scripts/FridaCodeGenerator.py https://raw.githubusercontent.com/iddoeldor/frida-snippets/master/scripts/FridaCodeGenerator.py`
2. ضع المؤشر على توقيع طريقة Java
3. اضغط `Ctrl+Shift+Z`
4. يتم نسخ الكود إلى الحافظة النظامية (باستخدام `xclip`)
</details>
<hr />
#### جلب مفاتيح 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
extern "C" { void* create_stdstr(char data, int size) { std::string s = new std::string(); (*s).assign(data, size); return s; } }
| الاسم | طريقة HTTP | نقطة النهاية | اسم الطريقة |
| ---- | ----------- | -------- | ----------- |
| Add | `POST` | `/add` | `Add` |
| Copy | `POST` | `/copy?fromPID=` | `Copy` |
| Lookup | `GET` | `/lookup?item=itemID` | `Lookup` |
| Last | `GET` | `/last` | `Last` |
| Length | `GET` | `/length` | `Length` |
| Pop | `POST` | `/pop` | `Pop` |
| Remove | `DELETE` | `/remove?item=itemID` | `Remove` |
| Shift | `POST` | `/shift` | `Shift` |
تعرض وحدة المصفوفة:```sh
$ ./android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21-clang++ a.cpp -o a -shared -static-libstdc++ && adb push a /data/local/tmp/a
#### تحميل وحدة C