欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

繞過AndroidP以上非公開API限制的辦法是什么

這篇文章主要介紹“繞過Android P以上非公開API限制的辦法是什么”,在日常操作中,相信很多人在繞過Android P以上非公開API限制的辦法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”繞過Android P以上非公開API限制的辦法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

創(chuàng)新互聯(lián)主要從事網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)雙河,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18982081108

首先,我們通過反射 API 拿到 getDeclaredMethod 方法。getDeclaredMethod 是 public  的,不存在問題;這個通過反射拿到的方法我們稱之為元反射方法。

然后,我們通過剛剛反射拿到元反射方法去反射調(diào)用 getDeclardMethod。這里我們就實(shí)現(xiàn)了以系統(tǒng)身份去反射的目的——反射相關(guān)的 API  都是系統(tǒng)類,因此我們的元反射方法也是被系統(tǒng)類加載的方法;所以我們的元反射方法調(diào)用的 getDeclardMethod  會被認(rèn)為是系統(tǒng)調(diào)用的,可以反射任意的方法。

偽代碼如下:

Method metaGetDeclaredMethod =         Class.class.getDeclaredMethod("getDeclardMethod"); // 公開API,無問題 Method hiddenMethod = metaGetDeclaredMethod.invoke(hiddenClass,         "hiddenMethod", "hiddenMethod參數(shù)列表"); // 系統(tǒng)類通過反射使用隱藏 API,檢查直接通過。 hiddenMethod.invoke // 正確找到 Method 直接反射調(diào)用

到這里,我們已經(jīng)能通過「元反射」的方式去任意獲取隱藏方法或者隱藏 Field 了。但是,如果我們所有使用的隱藏方法都要這么干,那還有點(diǎn)小麻煩。在  上文中,我們后來發(fā)現(xiàn),隱藏 API 調(diào)用還有「豁免」條件,具體代碼如下:

if (shouldWarn || action == kDeny) {     if (member_signature.IsExempted(runtime->GetHiddenApiExemptions())) {       action = kAllow;       // Avoid re-examining the exemption list next time.       // Note this results in no warning for the member, which seems like what one would expect.       // Exemptions effectively adds new members to the whitelist.       MaybeWhitelistMember(runtime, member);       return kAllow;     }     // 略     }

只要 IsExempted 方法返回 true,就算這個方法在黑名單中,依然會被放行然后允許被調(diào)用。我們再觀察一下IsExempted方法:

bool MemberSignature::IsExempted(const std::vector<std::string>& exemptions) {   for (const std::string& exemption : exemptions) {     if (DoesPrefixMatch(exemption)) {       return true;     }   }   return false; }

繼續(xù)跟蹤傳遞進(jìn)來的參數(shù) runtime->GetHiddenApiExemptions() 發(fā)現(xiàn)這玩意兒也是 runtime  里面的一個參數(shù),既然如此,我們可以一不做二不休,仿照修改 runtime flag 的方式直接修改 hidden_api_exemptions_  也能繞過去。但如果我們繼續(xù)跟蹤下去,會有個有趣的發(fā)現(xiàn):這個API 竟然是暴露到 Java 層的,有一個對應(yīng)的  VMRuntime.setHiddenApiExemptions Java方法;也就是說,只要我們通過  VMRuntime.setHiddenApiExemptions 設(shè)置下豁免條件,我們就能愉快滴使用反射了。

再結(jié)合上面這個方法,我們只需要通過 「元反射」來反射調(diào)用 VMRuntime.setHiddenApiExemptions 就能將我們自己要使用的隱藏  API 全部都豁免掉了。更進(jìn)一步,如果我們再觀察下上面的 IsExempted 方法里面調(diào)用的  DoesPrefixMatch,發(fā)現(xiàn)這玩意兒在對方法簽名進(jìn)行前綴匹配;童鞋們,我們所有Java方法類的簽名都是以 L開頭啊!如果我們把直接傳個  L進(jìn)去,所有的隱藏API全部被赦免了!

到此,關(guān)于“繞過Android P以上非公開API限制的辦法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

分享名稱:繞過AndroidP以上非公開API限制的辦法是什么
鏈接地址:http://aaarwkj.com/article18/ipocdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、建站公司、靜態(tài)網(wǎng)站移動網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
国产午夜三级视频在线观看| 久久久久亚洲av成人网人| 婷婷五五月深爱开心激情| 欧美色一区二区三区四区| 国产女同av一区二区三区| 国产日韩熟女中文字幕| 国产精品国产三级国产普通话99| 人妻在线中文字幕一区| 四虎精品视频在线播放| 日韩成人在线视频中文字幕| 免费观看在线黄色大片| 免费在线观看性生活视频| 亚洲日本欧美一区二区| 亚洲男人的天堂久久精品| 亚洲性感美女男人的天堂| 高颜值美女后入内射视频 | 懂色av免费在线播放| 国产成人亚洲欧美激情| 日韩av大片一区二区三区| 亚洲成人免费电影久久| 亚洲性图中文字幕在线| 99国产精品欲av麻豆在线观看| 久久国产亚洲欧美一区| 欧美高清视频看片在线观看| 日韩欧美国产成人在线观看| 日韩三级视频一区二区| 亚洲熟妇人妻一区二区三区| 不卡二卡三卡四卡精品| 中文字幕午夜av福利| 日本丰满熟女毛茸茸的黑逼| 日本特黄高清免费大片| 天天操天天日天天干夜夜情欢| 亚洲av久久一区二区| 日韩电影网国产精品| 老汉av免费在线观看| 91久久久久久人妻精品粉嫩| av蜜臀一区二区三区| 亚洲国产精品久久久久久99 | 男女搞j视频网站免费观看 | 国产av剧情同事肉体秘密| 午夜精品视频免费91|