Как выполнить http-запрос в Frida JS ⇐ Android
Как выполнить http-запрос в Frida JS
Я использую этот проект для подключения процесса Android.
https://github.com/iGio90/FridaAndroidInjector
он позволяет внедрять агенты frida из приложения Android.
работает идеально.
когда я захочу использовать эту функцию, перехватите ее.
com.ex.MediaPlayMgr.play(final InputStream inputStream, Final String str) Код хука:
журнал функции(что) { Java.performNow(function() { Java.use('android.util.Log').e("FridaAndroidInject", "kenshinx " + What.toString()); }); } Java.perform(функция() { let MediaPlayMgr = Java.use("com.ex.MediaPlayMgr"); MediaPlayMgr["play"].overload('java.io.InputStream', 'java.lang.String', 'boolean', 'boolean', 'int').implementation = function (inputStream, str, z, z2, я) { // this["play"](inputStream, str, z, z2, i); // Java.send({'str': str}); журнал("шаг0:") var downloadTask = новое обещание (функция (разрешить, отклонить) { // 异步代码... журнал("шаг1:" + строка) var OkHttpClient = Java.use("okhttp3.OkHttpClient$Builder").$new().build(); log("шаг2:" + OkHttpClient) var request = Java.use("okhttp3.Request$Builder").$new().url("http://com.ex.com/api").build(); журнал("шаг3:" + запрос) ответ вар = OkHttpClient.newCall(request).execute(); журнал("шаг4:" + ответ) если (ответ) { разрешить(response.byteStream(), "паймен") } еще { отклонить (входной поток, ул) } }); журнал("шаг5:") функция doPlay(поток, слово) { log("stepx:" + поток + ", " + слово) this.play(поток, слово, z, z2, я); } журнал("шаг6:") downloadTask.then(doPlay, doPlay); журнал("шаг7:") }; }); Журнал остановлен на шаге 3. нет шага 4. и как сделать http-запрос в js.
10:27:21.997 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx шаг0: 10:27:21.997 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx шаг 1:哈哈哈 10:27:22.000 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx Step2:okhttp3.OkHttpClient@1af90ef 10:27:22.003 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx шаг 3: Запрос {метод = GET, url = http://com.ex.com/api} 10:27:22.006 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx шаг5: 10:27:22.006 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx шаг6: 10:27:22.006 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx шаг7: 10:27:22.007 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx Stepx: Ошибка: android.os.NetworkOnMainThreadException, не определено Я пробую java.net.URL, java.net.HTTPConnect, но не получается. Я хочу заменить inputStream в play() своим собственным потоком.
Я использую этот проект для подключения процесса Android.
https://github.com/iGio90/FridaAndroidInjector
он позволяет внедрять агенты frida из приложения Android.
работает идеально.
когда я захочу использовать эту функцию, перехватите ее.
com.ex.MediaPlayMgr.play(final InputStream inputStream, Final String str) Код хука:
журнал функции(что) { Java.performNow(function() { Java.use('android.util.Log').e("FridaAndroidInject", "kenshinx " + What.toString()); }); } Java.perform(функция() { let MediaPlayMgr = Java.use("com.ex.MediaPlayMgr"); MediaPlayMgr["play"].overload('java.io.InputStream', 'java.lang.String', 'boolean', 'boolean', 'int').implementation = function (inputStream, str, z, z2, я) { // this["play"](inputStream, str, z, z2, i); // Java.send({'str': str}); журнал("шаг0:") var downloadTask = новое обещание (функция (разрешить, отклонить) { // 异步代码... журнал("шаг1:" + строка) var OkHttpClient = Java.use("okhttp3.OkHttpClient$Builder").$new().build(); log("шаг2:" + OkHttpClient) var request = Java.use("okhttp3.Request$Builder").$new().url("http://com.ex.com/api").build(); журнал("шаг3:" + запрос) ответ вар = OkHttpClient.newCall(request).execute(); журнал("шаг4:" + ответ) если (ответ) { разрешить(response.byteStream(), "паймен") } еще { отклонить (входной поток, ул) } }); журнал("шаг5:") функция doPlay(поток, слово) { log("stepx:" + поток + ", " + слово) this.play(поток, слово, z, z2, я); } журнал("шаг6:") downloadTask.then(doPlay, doPlay); журнал("шаг7:") }; }); Журнал остановлен на шаге 3. нет шага 4. и как сделать http-запрос в js.
10:27:21.997 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx шаг0: 10:27:21.997 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx шаг 1:哈哈哈 10:27:22.000 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx Step2:okhttp3.OkHttpClient@1af90ef 10:27:22.003 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx шаг 3: Запрос {метод = GET, url = http://com.ex.com/api} 10:27:22.006 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx шаг5: 10:27:22.006 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx шаг6: 10:27:22.006 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx шаг7: 10:27:22.007 16391-16391 FridaAndroidInject com...plication.floatball E kenshinx Stepx: Ошибка: android.os.NetworkOnMainThreadException, не определено Я пробую java.net.URL, java.net.HTTPConnect, но не получается. Я хочу заменить inputStream в play() своим собственным потоком.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Какой стек HTTP для использования для клиента, требующего HTTP/1.1, HTTP/2 и HTTP/3
Anonymous » » в форуме Android - 0 Ответы
- 62 Просмотры
-
Последнее сообщение Anonymous
-