資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡安全教程|rigasin.com|我的開發(fā)技術隨記

 找回密碼
 注冊成為正式會員
查看: 1734|回復: 1
打印 上一主題 下一主題

[安卓逆向] frida的問題請教下小肩膀老師

[復制鏈接]

5

主題

301

帖子

0

精華

終身高級VIP會員

Rank: 7Rank: 7Rank: 7

資源幣
104
積分
304
貢獻
0
在線時間
146 小時
注冊時間
2019-8-18
最后登錄
2024-12-30

終身VIP會員

跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-3-24 22:38:46 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
1資源幣
本帖最后由 奧數(shù)大師 于 2020-3-24 22:39 編輯

看完frida的第11,12課,嘗試寫了下枚舉所有類然后hook類的所有方法,結(jié)果發(fā)現(xiàn)報錯


運行,前面的打印都沒問題,后面無論點APP的哪個按鈕都會報下面紅色的錯誤

這是代碼
  1. function hookTmp() {
  2.     Java.perform(function () {
  3.         var classes = Java.enumerateLoadedClassesSync();
  4.         for (var i = 0; i < classes.length; i++) {
  5.             if (classes[i].indexOf("com.xiaojianbang.app") != -1) {
  6.                 var tmpClass = Java.use(classes[i]);
  7.                 var methods = tmpClass.class.getDeclaredMethods();
  8.                 for (var j = 0; j < methods.length; j++) {
  9.                     var tmpMethodName = methods[j].getName();
  10.                     console.log(classes[i], tmpMethodName);
  11.                     //到這里打印都是沒問題的

  12.                     for (var k = 0; k < tmpClass[tmpMethodName].overloads.length; k++) {

  13.                         tmpClass[tmpMethodName].overloads[k].implementation = function () {
  14.                             for (var p = 0; p < arguments.length; p++) {
  15.                                 //console.log(p,arguments[p]);
  16.                             }
  17.                             return this[tmpMethodName].apply(this, arguments);//應該是這句return報錯了
  18.                         }

  19.                     }



  20.                 }

  21.             }



  22.         }



  23.     });


  24. }
復制代碼


請教下這是哪里有什么問題嗎



最佳答案

查看完整內(nèi)容

代碼改了下 變量被覆蓋了 所有undefined
回復

使用道具 舉報

1

主題

62

帖子

0

精華

資源共享吧金牌老師

Rank: 6Rank: 6

資源幣
54
積分
64
貢獻
0
在線時間
9 小時
注冊時間
2020-2-28
最后登錄
2022-4-26

論壇管理員超級版主終身VIP會員資源共享吧男神終身成就原創(chuàng)先鋒精華會員

沙發(fā)
發(fā)表于 2020-3-24 22:38:47 | 只看該作者
  1.     function hookAll(tmpClass, tmpMethodName){
  2.         for (var k = 0; k < tmpClass[tmpMethodName].overloads.length; k++) {
  3.             tmpClass[tmpMethodName].overloads[k].implementation = function () {
  4.                 for (var p = 0; p < arguments.length; p++) {}
  5.                 console.log(tmpMethodName);
  6.                 console.log(this);
  7.                 return this[tmpMethodName].apply(this, arguments);
  8.             }
  9.         }
  10.     }
  11.     Java.perform(function () {
  12.         var classes = Java.enumerateLoadedClassesSync();
  13.         for (var i = 0; i < classes.length; i++) {
  14.             if (classes[i].indexOf("com.xiaojianbang.app") != -1) {
  15.                 var tmpClass = Java.use(classes[i]);
  16.                 var methods = tmpClass.class.getDeclaredMethods();
  17.                 for (var j = 0; j < methods.length; j++) {
  18.                     var tmpMethodName = methods[j].getName();
  19.                     hookAll(tmpClass, tmpMethodName);
  20.                 }
  21.             }
  22.         }
  23.     });
復制代碼
  代碼改了下 變量被覆蓋了 所有undefined
回復

使用道具 舉報

 點擊右側(cè)快捷回復  

本版積分規(guī)則

小黑屋|資源共享吧 ( 瓊ICP備2023000410號-1 )

GMT+8, 2025-1-7 04:37 , Processed in 0.053160 second(s), 15 queries , MemCached On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表