日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Android 繞過反射黑名單的方法

瀏覽:118日期:2022-09-20 18:11:12
限制原理

Google 從 Android P 開始引入了針對非公開 API 的限制,這一點可以從 Native 相關的源碼中找到限制的原理,從而從中找到解決辦法,不過非必要原因不太建議去挑戰這種限制,畢竟不清楚在后續的版本中會不會做限制,維護起來挺麻煩的。

在 Native 層有幾個訪問級別:

class HiddenApiAccessFlags { public: enum ApiList { kWhitelist = 0, kLightGreylist, kDarkGreylist, kBlacklist, };}

另外還有幾個對應的響應級別:

enum Action { kAllow, //通過 kAllowButWarn, //通過,但日志警告 kAllowButWarnAndToast, //通過,且日志警告和彈窗 kDeny //拒絕訪問};

這里介紹一下網上的一些解決方式,此外,還可以把我們調用了反射方法的類的類加載器設置為系統類加載器,這樣就可以繞過 Native 層的限制了。

系統類偽裝

黑名單在系統中有一個 fn_caller_is_trusted 的條件:如果調用者是系統類,那么就允許被調用。即如果我們能以系統類的身份去反射,那么就能暢通無阻:

首先通過反射 API 拿到 getDeclaredMethod 方法。getDeclaredMethod 是 public 的,不存在問題;這個通過反射拿到的方法網上稱之為元反射方法。 然后通過剛剛的元反射方法去反射調用 getDeclardMethod。這里我們就實現了以系統身份去反射的目的——反射相關的 API 都是系統類,因此我們的元反射方法也是被系統類加載的方法;所以我們的元反射方法調用的 getDeclardMethod 會被認為是系統調用的,可以反射任意的方法。

偽代碼如下:

// 公開API,無問題Method metaGetDeclaredMethod = Class.class.getDeclaredMethod('getDeclardMethod');// 系統類通過反射使用隱藏 API,檢查直接通過。Method hiddenMethod = metaGetDeclaredMethod.invoke(hiddenClass, 'hiddenMethod', 'hiddenMethod參數列表');// 正確找到 Method 直接反射調用hiddenMethod.invoke豁免條件

隱藏 API 的調用有「豁免」條件,即只要它是豁免的,則即使它在黑名單中,也會被放行。這種方式暴露給了 Java 層,因此可以通過 VMRuntime.setHiddenApiExemptions 方法來實現。再結合上面這個方法,我們只需要通過 「元反射」 來反射調用 VMRuntime.setHiddenApiExemptions 就能將我們自己要使用的隱藏 API 全部都豁免掉了。另外系統在檢查豁免時是通過方法簽名進行前綴匹配的,而 Java 方法簽名都是 L 開頭的,因此我們可以把直接傳個 L 進去,那么所有的隱藏API全部被赦免了!

源碼直接參考網上大佬的開源項目: FreeReflection。

public final class BootstrapClass { private static final String TAG = 'BootstrapClass'; private static Object sVmRuntime; private static Method setHiddenApiExemptions; static { if (SDK_INT >= Build.VERSION_CODES.P) { try {Method forName = Class.class.getDeclaredMethod('forName', String.class);Method getDeclaredMethod = Class.class.getDeclaredMethod('getDeclaredMethod', String.class, Class[].class);Class<?> vmRuntimeClass = (Class<?>) forName.invoke(null, 'dalvik.system.VMRuntime');Method getRuntime = (Method) getDeclaredMethod.invoke(vmRuntimeClass, 'getRuntime', null);setHiddenApiExemptions = (Method) getDeclaredMethod.invoke(vmRuntimeClass, 'setHiddenApiExemptions', new Class[]{String[].class});sVmRuntime = getRuntime.invoke(null); } catch (Throwable e) {Log.w(TAG, 'reflect bootstrap failed:', e); } } } /** * make the method exempted from hidden API check. * * @param method the method signature prefix. * @return true if success. */ public static boolean exempt(String method) { return exempt(new String[]{method}); } /** * make specific methods exempted from hidden API check. * * @param methods the method signature prefix, such as 'Ldalvik/system', 'Landroid' or even 'L' * @return true if success */ public static boolean exempt(String... methods) { if (sVmRuntime == null || setHiddenApiExemptions == null) { return false; } try { setHiddenApiExemptions.invoke(sVmRuntime, new Object[]{methods}); return true; } catch (Throwable e) { return false; } } /** * Make all hidden API exempted. * * @return true if success. */ public static boolean exemptAll() { return exempt(new String[]{'L'}); }}

以上就是Android 繞過反射黑名單的方法的詳細內容,更多關于Android 繞過反射黑名單的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久wwww| 免费久久精品视频| 99re国产精品| 久久精品影视| 四虎影视精品| 欧美特黄一级| 久久亚洲风情| 欧美在线日韩| 国产精品日本一区二区不卡视频| 精品中文一区| 天堂网在线观看国产精品| 欧美精品一卡| 日韩精品久久理论片| 国产精品videosex极品| 久久av网站| 偷拍精品精品一区二区三区| 亚洲精品a级片| 日本色综合中文字幕| 国产精东传媒成人av电影| 免费在线小视频| 日韩高清在线不卡| 精品久久久中文字幕| 亚洲欧美日韩视频二区| 国产精品三级| 成人看片网站| 丝袜美腿亚洲一区| 精品深夜福利视频| 亚洲欧美日韩专区| 日韩av在线播放网址| 免费观看日韩电影| 久草免费在线视频| 亚洲精品乱码久久久久久蜜桃麻豆 | 午夜国产一区二区| 欧美亚洲一区二区三区| 国产精品毛片aⅴ一区二区三区| 国产精品久久久久av电视剧| 日本不卡视频在线观看| 亚洲www啪成人一区二区| 日韩欧美2区| 99pao成人国产永久免费视频 | 黄色不卡一区| 国产成人精品一区二区三区视频| 丝袜a∨在线一区二区三区不卡| 国产精品伦理久久久久久| 日韩中文字幕| 999国产精品999久久久久久| 国产欧美大片| 日韩一二三区在线观看| 免费久久精品| 91视频精品| 精品视频在线观看网站| 国产乱码精品一区二区亚洲| 蜜臀精品一区二区三区在线观看| 国产福利亚洲| 国产精品国产三级在线观看| 91亚洲精品视频在线观看| 91成人精品在线| 久久精品99国产精品| 亚洲精品综合| 亚洲免费福利一区| 亚洲福利专区| 欧美精品一区二区三区精品| 午夜国产一区二区| 美女久久一区| 欧美日韩一区二区三区四区在线观看| 日韩1区2区3区| 国产精品永久| 欧美二三四区| 狠狠爱www人成狠狠爱综合网| 午夜日本精品| 日韩va欧美va亚洲va久久| 国产欧美自拍| 麻豆视频在线观看免费网站黄 | 综合精品一区| 亚洲精品字幕| 国产精品色婷婷在线观看| 国产精东传媒成人av电影| 国产一区一一区高清不卡| 日韩一区二区中文| 国产精品腿扒开做爽爽爽挤奶网站| 日韩视频免费| 国产情侣一区| 香蕉成人av| 视频一区免费在线观看| 日韩激情av在线| 精品捆绑调教一区二区三区| 伊人精品在线| 美女毛片一区二区三区四区最新中文字幕亚洲 | 亚洲国产专区校园欧美| 亚洲精品乱码久久久久久蜜桃麻豆| 国产福利亚洲| 水蜜桃久久夜色精品一区的特点| 国产伦乱精品| 亚洲成人国产| 国产一卡不卡| 1024精品久久久久久久久| 国产毛片精品| 丝袜国产日韩另类美女| 欧美成a人国产精品高清乱码在线观看片在线观看久| 国产综合色产| 国产96在线亚洲| 中文字幕一区日韩精品| 国产精品久久久久久久久久10秀 | 捆绑调教日本一区二区三区| 日韩在线观看一区二区| 色综合五月天| 国产精品最新| 97久久亚洲| 日韩免费精品| 亚洲性视频在线| 亚洲免费影院| 狠狠色综合网| 91精品亚洲| 色天使综合视频| 精品久久网站| 国产一区一一区高清不卡| 日本亚洲欧美天堂免费| 亚洲视频www| 九色精品91| av一区二区高清| 午夜久久免费观看| 91精品一区国产高清在线gif| 成人一区不卡| 性欧美videohd高精| 日韩电影二区| 久久天堂成人| 好看的av在线不卡观看| 欧美午夜不卡影院在线观看完整版免费| 亚洲爱爱视频| 三级欧美在线一区| 在线免费观看亚洲| 亚洲专区视频| 日韩国产一二三区| 久久字幕精品一区| 成人午夜精品| 国产精品7m凸凹视频分类| 一区在线免费| 日韩一区二区三区高清在线观看| 青草国产精品| 日韩免费av| 美女久久网站| 国产精品高清一区二区| 国产高潮在线| 香蕉成人久久| 国产精品tv| 91精品啪在线观看国产18| 亚洲一区二区三区四区五区午夜 | 国产资源在线观看入口av| 精品国模一区二区三区| 亚洲性视频在线| 精品免费av一区二区三区| 极品日韩av| 国产精品chinese| 自拍日韩欧美| 国产精品九九| 国产精品毛片一区二区三区| 国产日韩欧美一区| 在线成人直播| 国产成年精品| 日本亚洲最大的色成网站www| 美女精品久久| 婷婷视频一区二区三区| 久久蜜桃资源一区二区老牛| 国产日产精品_国产精品毛片| 一区福利视频| 欧美日韩在线观看首页| 日韩av网站在线观看| 欧美一区三区| 日韩成人三级| 精品视频一区二区三区在线观看| 综合激情五月婷婷| 久久香蕉精品| 亚洲成人三区| 亚洲免费精品| 国产综合激情| 精品三区视频| 久久免费福利| 国产精品一区二区精品视频观看| 久久亚洲图片| 美女黄网久久| 蜜臀91精品一区二区三区| 欧美精品一区二区久久| 日韩欧美一区免费| 伊人久久在线| 日韩在线视频精品| 日韩av二区| 精品三级久久| 99成人超碰| 91久久久精品国产| 在线午夜精品| 亚洲精品午夜av福利久久蜜桃| 欧美丝袜一区| 国产精品社区| 亚洲1区在线| 欧美日韩亚洲国产精品| 国产精品久久久久久av公交车| 欧美日韩午夜电影网| 国产美女亚洲精品7777| 你懂的国产精品| 亚洲国产福利|