Xposed tomonidan dasturda chaqirilgan barcha usullarni yozing

Sarlavha deyilganidek, men ilovani chaqirgan barcha usullarni ro'yxatga kiritish uchun xposed dasturidan foydalanmoqchiman. Men faqat sinf nomini, usul nomi bilan kirishni istayman, barcha usulni kanca qilmoqchi emassiz. Ushbu kodni sinab ko'rmoqchiman, lekin getMethod xato topilmadi.

findAndHookMethod("java.lang.Class", lpparam.classLoader, "getMethod", String.class, Object.class, new XC_MethodHook()

Oldindan rahmat!

1
hammasi ilovasini chaqiradigan usullarni kiritish juda mumkin emas. Kundaliklarni chop etishda ishlatiladigan usulni kanca qilsangiz nima bo'ladi? Agar xohlasangiz, ilovadagi statik usullarni ko'rishni istasangiz, APK faylini dekompilyatsiya qilish uchun faqat apktool dan foydalanishingiz mumkin.
qo'shib qo'ydi muallif Andrew Sun, manba
Men barcha usullarni ishga tushirmoqchi emasman. Men faqatgina qanday usullarni ilova tomonidan chaqirganini yozishni boshlashni istayman.
qo'shib qo'ydi muallif LieuLiau, manba
Men barcha usullarni ishga tushirmoqchi emasman. Men faqatgina qanday usullarni ilova tomonidan chaqirganini yozishni boshlashni istayman.
qo'shib qo'ydi muallif LieuLiau, manba

6 javoblar

Siz izlayotgan narsalar kabi hech qanday chiziqli yechim yo'q.

Barcha usullarni ishga tushirish dasturdan qanday usullarni chaqirganini boshlashi bilan boshlanadi (turdagi - pastga qar.), Lekin agar (biron-bir sababga ko'ra) barcha usullarni ishga solishni istamasangiz, men hal qila oladigan yagona echim java VMning o'zi o'zgartirishi (tavsiya qiladigan narsa emas.)

(xil) ishlaydigan yechim

Avvalambor mening apkni dekompilyatsiya qilish uchun barcha apktooldan foydalangan va hamma mashg'ulotlardagi barcha usullarning nomlarini olishgan. So'ngra, har bir sinfning har bir usulini ishga tushirish va mavjud funktsiya nomini dog'ga kiritish uchun xposed foydalanganman.

Nima uchun bunday ishlar faqat

Xposed har qanday usulni qo'llaganida ustunga ega. Xposed ilovalarni umumiy ishlatish uchun u juda ko'p emas. Lekin ilova har bir usulini ishga tushirishni boshlasangiz, yuqoridagi yuklamalar tezda juda kulgili bo'lib qoladi - shuning uchun yuqorida ko'rsatilgan usullar kichik ilovalar uchun ishlayotgan bo'lsa, har qanday yirik dastur uchun bu juda tez ilovani osib qo'yadi va keyin qulab tushadi.

ham ishlaydigan muqobil

FRIDA is a way to inject JavaScript to native apps. Here they show you how to log all function calls. While in the above link they log all function calls in a piece of python code, the same code also works for Android.

1
qo'shib qo'ydi
Sizning javobingiz uchun rahmat :)
qo'shib qo'ydi muallif LieuLiau, manba

Siz izlayotgan narsalar kabi hech qanday chiziqli yechim yo'q.

Barcha usullarni ishga tushirish dasturdan qanday usullarni chaqirganini boshlashi bilan boshlanadi (turdagi - pastga qar.), Lekin agar (biron-bir sababga ko'ra) barcha usullarni ishga solishni istamasangiz, men hal qila oladigan yagona echim java VMning o'zi o'zgartirishi (tavsiya qiladigan narsa emas.)

(xil) ishlaydigan yechim

Avvalambor mening apkni dekompilyatsiya qilish uchun barcha apktooldan foydalangan va hamma mashg'ulotlardagi barcha usullarning nomlarini olishgan. So'ngra, har bir sinfning har bir usulini ishga tushirish va mavjud funktsiya nomini dog'ga kiritish uchun xposed foydalanganman.

Nima uchun bunday ishlar faqat

Xposed har qanday usulni qo'llaganida ustunga ega. Xposed ilovalarni umumiy ishlatish uchun u juda ko'p emas. Lekin ilova har bir usulini ishga tushirishni boshlasangiz, yuqoridagi yuklamalar tezda juda kulgili bo'lib qoladi - shuning uchun yuqorida ko'rsatilgan usullar kichik ilovalar uchun ishlayotgan bo'lsa, har qanday yirik dastur uchun bu juda tez ilovani osib qo'yadi va keyin qulab tushadi.

ham ishlaydigan muqobil

FRIDA is a way to inject JavaScript to native apps. Here they show you how to log all function calls. While in the above link they log all function calls in a piece of python code, the same code also works for Android.

1
qo'shib qo'ydi
Sizning javobingiz uchun rahmat :)
qo'shib qo'ydi muallif LieuLiau, manba

Yuqorida aytilganidek, Xposed bu holatni o'zidan ketishi sababli emas.

Eng oddiy yechim faqat Google tomonidan taqdim etilgan dmtracedump ni ishlatishdir. Ko'pgina x86 Android tasvirlari va emulyatori (ro.debuggable) disk raskadroviy bayroq bilan birga keladi, shuning uchun hatto uni yopiq manbalar ilovalari uchun ishlatishingiz mumkin.

Bundan tashqari, Emma kabi boshqa vositalar Android bilan ham ishlaydi, lekin bu manbalarga o'zgartirishlarni kiritish kerak bo'lishi mumkin kodi.

0
qo'shib qo'ydi
Bu sizning ilovangizmi yoki yopiq manba ilovasimi? Agar siz istagan ishni bajaradigan metodlar/sinflar nomi bo'lsa, u holda Emma kodlari qamrovini vaqt ichida olish mumkin ...
qo'shib qo'ydi muallif 4knahs, manba
Men ilovaga sinf qo'shishni talab qiladigan opensource ilovalari bilan Emma-ni ishlatishga harakat qildim. Xposed bilan qo'shilgan bo'lsam-da, yopiq manba dasturlari uchun ishlashi mumkin, lekin hech qachon sinab ko'rmadim. StartMethodTracingSampling va startNativeTracing-ga qaradingizmi? Birinchidan, namuna olish oralig'ini belgilashga imkon beradi va keyingi emulyator darajasida ishlaydi va chiqdi stdoutga yozadi. Shunday qilib, har ikkisi ham sizni qidiruv natijalar bilan ta'minlaydi.
qo'shib qo'ydi muallif 4knahs, manba
Ha, men ushbu traceviewni bilaman, ammo muammo mening ba'zan to'xtash qo'ng'iroqlaridan oldin yopiladi, shuning uchun iz fayllari yozilmaydi.
qo'shib qo'ydi muallif LieuLiau, manba
Bu yopiq dastur. Emma buning uchun foydalanishi mumkinmi?
qo'shib qo'ydi muallif LieuLiau, manba

Yuqorida aytilganidek, Xposed bu holatni o'zidan ketishi sababli emas.

Eng oddiy yechim faqat Google tomonidan taqdim etilgan dmtracedump ni ishlatishdir. Ko'pgina x86 Android tasvirlari va emulyatori (ro.debuggable) disk raskadroviy bayroq bilan birga keladi, shuning uchun hatto uni yopiq manbalar ilovalari uchun ishlatishingiz mumkin.

Bundan tashqari, Emma kabi boshqa vositalar Android bilan ham ishlaydi, lekin bu manbalarga o'zgartirishlarni kiritish kerak bo'lishi mumkin kodi.

0
qo'shib qo'ydi
Bu sizning ilovangizmi yoki yopiq manba ilovasimi? Agar siz istagan ishni bajaradigan metodlar/sinflar nomi bo'lsa, u holda Emma kodlari qamrovini vaqt ichida olish mumkin ...
qo'shib qo'ydi muallif 4knahs, manba
Men ilovaga sinf qo'shishni talab qiladigan opensource ilovalari bilan Emma-ni ishlatishga harakat qildim. Xposed bilan qo'shilgan bo'lsam-da, yopiq manba dasturlari uchun ishlashi mumkin, lekin hech qachon sinab ko'rmadim. StartMethodTracingSampling va startNativeTracing-ga qaradingizmi? Birinchidan, namuna olish oralig'ini belgilashga imkon beradi va keyingi emulyator darajasida ishlaydi va chiqdi stdoutga yozadi. Shunday qilib, har ikkisi ham sizni qidiruv natijalar bilan ta'minlaydi.
qo'shib qo'ydi muallif 4knahs, manba
Ha, men ushbu traceviewni bilaman, ammo muammo mening ba'zan to'xtash qo'ng'iroqlaridan oldin yopiladi, shuning uchun iz fayllari yozilmaydi.
qo'shib qo'ydi muallif LieuLiau, manba
Bu yopiq dastur. Emma buning uchun foydalanishi mumkinmi?
qo'shib qo'ydi muallif LieuLiau, manba

Barcha Java usullarini jurnalga yozib olishning bir usuli bor. XposedBridge-ni o'zgartirish.

XposedBridge.java usulida Xposed kanca java usuli "handleHookedMethod (Foydalanuvchi uslubi, int originalMethodId, Ob'ektni qo'shimchaInfoObj, thisObject, ob'ekt [] args)"

Log.v(TAG, "className " + method.getClass().getName() + ",methodName " + method.getName());
0
qo'shib qo'ydi

Barcha Java usullarini jurnalga yozib olishning bir usuli bor. XposedBridge-ni o'zgartirish.

XposedBridge.java usulida Xposed kanca java usuli "handleHookedMethod (Foydalanuvchi uslubi, int originalMethodId, Ob'ektni qo'shimchaInfoObj, thisObject, ob'ekt [] args)"

Log.v(TAG, "className " + method.getClass().getName() + ",methodName " + method.getName());
0
qo'shib qo'ydi