<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Crack App | 【填坑】某 H5 app 的反調(diào)試?yán)@過(Frida 與 Xposed 雙版本)

          共 5283字,需瀏覽 11分鐘

           ·

          2022-05-21 15:27

          點(diǎn)擊上方“咸魚學(xué)Python”,選擇“加為星標(biāo)

          第一時(shí)間關(guān)注Python技術(shù)干貨!


          圖源:極簡壁紙

          今日目標(biāo)

          這個(gè) app 是之前文章的讀者在評(píng)論區(qū)提供的樣本

          正好今天填一下之前的坑

          所以我上網(wǎng)找了樣本,研究一波

          aHR0cHM6Ly93d3cud2FuZG91amlhLmNvbS9hcHBzLzgwOTg1NzM=

          反調(diào)試

          雖然知道這個(gè)H5 app 是有反調(diào)試的,但還是測(cè)試一下看看是不是,不要搞出烏龍來了

          訪問 PC 的chrom://inspect

          可以看到能看到有手機(jī)設(shè)備,但是沒辦法inspect 這個(gè)app,所以是由反調(diào)試的

          直接拖到jadx里搜索關(guān)鍵詞setWebContentsDebuggingEnabled看看這個(gè)設(shè)置

          搜索結(jié)果還是很明顯的,一下就能搜索到這個(gè)關(guān)鍵位置

          但是看這個(gè)邏輯,不大對(duì)勁啊,如果是反調(diào)試的話應(yīng)該是false才對(duì)

          這里是true,說明是可以接受反調(diào)試的

          而我們測(cè)試的結(jié)果是無法調(diào)試的,那么這個(gè) app 一定是在某個(gè)角落里做了修改

          如果繞過反調(diào)試的話應(yīng)該怎么搞?

          先試試 Frida hook 繞過

          Frida hook 繞過 H5 反調(diào)試檢測(cè)

          竟然檢索結(jié)果只有一個(gè),去找 app 在什么位置修改了這個(gè)的值需要費(fèi)很多功夫,只針對(duì)這個(gè)反調(diào)試的話就有點(diǎn)得不償失了

          所以直接用frida hook 把這個(gè)類的所有示例中的這個(gè)值都寫入為true,就不用一個(gè)個(gè)分析了

          這個(gè)setWebContentsDebuggingEnabled來自android.webkit.WebView

          那么直接hook android.webkit.WebView 將他初始化后所有的setWebContentsDebuggingEnabled全部寫成true應(yīng)該就沒啥問題了

          我們寫一個(gè)demo看看

          查個(gè)包名

          然后hook android.webkit.WebView$init方法

          console.log("腳本加載成功");
          function?main(){
          ????Java.perform(function(){
          ????????var?WebView?=?Java.use('android.webkit.WebView');
          ????????WebView.$init.implementation?=?function(a){
          ????????????var?result?=?this.$init(a);
          ????????????return?result;
          ????????}
          ????});
          }
          setImmediate(main)

          先這么寫,然后運(yùn)行一波看看

          frida?-U?-f?[app?name]?-l?script.js?--no-pause

          系統(tǒng)會(huì)提示有重載,我們把所有的重載都hook

          console.log("腳本加載成功");
          function?main(){
          ????Java.perform(function(){
          ????????var?WebView?=?Java.use('android.webkit.WebView');
          ????????WebView.$init.overload('android.content.Context').implementation?=?function(a){
          ????????????var?result?=?this.$init(a);
          ????????????return?result;
          ????????}
          ????????WebView.$init.overload('android.content.Context',?'android.util.AttributeSet').implementation?=?function(a,b){
          ????????????var?result?=?this.$init(a,b);
          ????????????return?result;
          ????????}
          ????????WebView.$init.overload('android.content.Context',?'android.util.AttributeSet',?'int').implementation?=?function(a,b,c){
          ????????????var?result?=?this.$init(a,b,c);
          ????????????return?result;
          ????????}
          ????????WebView.$init.overload('android.content.Context',?'android.util.AttributeSet',?'int',?'int').implementation?=?function(a,b,c,d){
          ????????????var?result?=?this.$init(a,b,c,d);
          ????????????return?result;
          ????????}
          ????????WebView.$init.overload('android.content.Context',?'android.util.AttributeSet',?'int',?'boolean').implementation?=?function(a,b,c,d){
          ????????????var?result?=?this.$init(a,b,c,d);
          ????????????return?result;
          ????????}
          ????????WebView.$init.overload('android.content.Context',?'android.util.AttributeSet',?'int',?'java.util.Map',?'boolean').implementation?=?function(a,b,c,d,e){
          ????????????var?result?=?this.$init(a,b,c,d,e);
          ????????????return?result;
          ????????}
          ????????WebView.$init.overload('android.content.Context',?'android.util.AttributeSet',?'int',?'int',?'java.util.Map',?'boolean').implementation?=?function(a,b,c,d,e,f){
          ????????????var?result?=?this.$init(a,b,c,d,e,f);
          ????????????return?result;
          ????????}
          ????});
          }
          setImmediate(main)

          這樣就可以將所有webview.$inithook上了

          然后我們需要做的是將這些init實(shí)例的setWebContentsDebuggingEnabled全都設(shè)置為true

          console.log("腳本加載成功");
          function?main(){
          ????Java.perform(function(){
          ????????var?WebView?=?Java.use('android.webkit.WebView');
          ????????WebView.$init.overload('android.content.Context').implementation?=?function(a){
          ????????????var?result?=?this.$init(a);
          ????????????this.setWebContentsDebuggingEnabled(true);
          ????????????return?result;
          ????????}
          ????????WebView.$init.overload('android.content.Context',?'android.util.AttributeSet').implementation?=?function(a,b){
          ????????????var?result?=?this.$init(a,b);
          ????????????this.setWebContentsDebuggingEnabled(true);
          ????????????return?result;
          ????????}
          ????????WebView.$init.overload('android.content.Context',?'android.util.AttributeSet',?'int').implementation?=?function(a,b,c){
          ????????????var?result?=?this.$init(a,b,c);
          ????????????this.setWebContentsDebuggingEnabled(true);
          ????????????return?result;
          ????????}
          ????????WebView.$init.overload('android.content.Context',?'android.util.AttributeSet',?'int',?'int').implementation?=?function(a,b,c,d){
          ????????????var?result?=?this.$init(a,b,c,d);
          ????????????this.setWebContentsDebuggingEnabled(true);
          ????????????return?result;
          ????????}
          ????????WebView.$init.overload('android.content.Context',?'android.util.AttributeSet',?'int',?'boolean').implementation?=?function(a,b,c,d){
          ????????????var?result?=?this.$init(a,b,c,d);
          ????????????this.setWebContentsDebuggingEnabled(true);
          ????????????return?result;
          ????????}
          ????????WebView.$init.overload('android.content.Context',?'android.util.AttributeSet',?'int',?'java.util.Map',?'boolean').implementation?=?function(a,b,c,d,e){
          ????????????var?result?=?this.$init(a,b,c,d,e);
          ????????????this.setWebContentsDebuggingEnabled(true);
          ????????????return?result;
          ????????}
          ????????WebView.$init.overload('android.content.Context',?'android.util.AttributeSet',?'int',?'int',?'java.util.Map',?'boolean').implementation?=?function(a,b,c,d,e,f){
          ????????????var?result?=?this.$init(a,b,c,d,e,f);
          ????????????this.setWebContentsDebuggingEnabled(true);
          ????????????return?result;
          ????????}
          ????});
          }
          setImmediate(main);

          然后再運(yùn)行下hook腳本看看是否能夠繞過反調(diào)試

          運(yùn)行成功,再試下chorme://inspect

          就可以看到這個(gè)app顯示出來了

          點(diǎn)擊inspect就可以調(diào)試了

          Xposed 插件繞過反調(diào)試

          在之前的文章里面我提供了xposed插件用于繞過H5 的反調(diào)試,我們測(cè)試一下能不能繞過這個(gè)app的反調(diào)試

          安裝好插件之后,記得勾選一下

          然后打開目標(biāo)app,然后再訪問chrome://inspect

          也是可以inspect

          這個(gè)插件針對(duì)H5反調(diào)試還是蠻好用的,有需要的可以訪問下方的鏈接,查看使用方式和插件的獲取方式

          Crack App | 某保險(xiǎn)資訊 App 請(qǐng)求頭參數(shù) token 與 sign 加密算法分析

          End.

          以上就是全部的內(nèi)容了,咱們下次再會(huì)~

          公眾號(hào)配套技術(shù)交流群,備注【咸魚666】,入群交流

          我是沒有更新就在摸魚的咸魚

          收到請(qǐng)回復(fù)~

          我們下次再見。

          對(duì)了,看完記得一鍵三連,這個(gè)對(duì)我真的很重要。

          瀏覽 207
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  www日逼网 | 久草视频2 | 九九亚洲视频 | 久久综合色气网站 | 成人视频免费网站 |