hook in java(2)

  • 加載fridaalias activityFrida="adb shell 'su /data/local/tmp/frida-server64 &'"

  • 電腦啟動frida

    • 直接啟動frida -U packageName -l hook.js
    • app 剛啟動的時候hook, 用frida去啟動app frida -U --no-pause -f com.tlamb96.spetsnazmessenger -l hook.js
  • hook 構造函數,類對象然后.$init來hook 構造函數

    • //hook 構造函數
      a.$init.implementation = function (i, str, str2, z) {
        this.$init(i, str, str2, z);
        console.log("a.$init:", i, str, str2, z);
        print_stack();       //打印了調用棧
      };
      
  • 打印調用棧,調用java自帶的功能,拋出一個異常,打印內容,打印完之后 要把對象析構掉

    • function print_stack() {
          Java.perform(function () {
              var Exception = Java.use("java.lang.Exception");
              var instance = Exception.$new("print_stack");
              var stack = instance.getStackTrace();
              console.log(stack);
              instance.$dispose();
          });
      }
      
  • jar -cvf ddex.jar com/example/androiddemo/DecodeUtils.class

? /Users/yang/Library/Android/sdk/build-tools/28.0.3/dx --dex --output=ddex.dex ddex.jar

打包成dex

  • 加載dex var ddex2 = Java.openClassFile("/data/local/tmp/ddex2.dex");

  • 構造字符串數組

   var Ref_arr  = Java.use('java.lang.reflect.Array')
       var stringClass = Java.use("java.lang.String").class
       var arg1 = Ref_arr.newInstance(stringClass, array.length);
       for (var i =0; i < array.length; i++) {
           Ref_arr.set(arg1, i, array[i])
       }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容