搜尋

脫殼腳本APP

返回清單
切換到指定樓層
通知這文章過時或找檔案 發表主題

[作弊修改] 分享AI程式設計試寫脫殼腳本APP,讓您事半功倍!

[複製連結]
1
o122334234 ( Lv.50 智天使 ) 發表於 2023-4-17 22:01:14 | 只看該作者 回覆獎勵 |升序瀏覽 |閱讀模式
【工具名稱】智能脫殼指令碼生成器

【使用方法】利用智能程式設計技術,自動分析目標程序的結構和代碼,生成適合脫殼的指令碼。使用者只需要提供目標程序的二進制檔案即可。

【優點】具有以下特點:

智能化:利用機器學習和人工智能技術,自動識別和分析目標程序的結構和代碼,提高脫殼的效率和準確度。
節省時間:自動化生成指令碼,省去了手動編寫的繁瑣過程,提高了工作效率。
易於使用:只需要提供目標程序的二進制檔案,點擊生成指令碼按鈕即可。
【注意事項】使用本工具時需要注意以下幾點:

需要有一定的編程基礎和知識。
需要注意使用的合法性,不得用於非法用途。
該工具並非萬能,對於某些程序可能無法有效脫殼,需要手動修改指令碼。
【結語】智能脫殼指令碼生成器是一個非常實用的工具,可以幫助編程人員提高工作效率和準確度。使用者可以根據自己的需求選擇不同的工具來進行脫殼操作,實現更高效的編程。


https://wwa.lanzouw.com/b01qnchuf
https://wwa.lanzouY.com/b01qnchuf

https://wwa.lanzouX.com/b01qnchuf


密碼:

所有站內附件皆會附上安全掃描報告
請會員查看純淨度百分比後判斷使用



相關檔案須知:
取得檔案前,請先詳細閱讀文章內容
避免不必要錯誤與誤會發生。
也可多參考文章討論樓層內容
了解附件檔案相關討論資訊。



  1. lua指令碼程式碼:
  2. ```lua
  3. -- 首先,需要使用frida工具載入目標App,並獲取到相關的應用處理程序

  4. -- 然後,引入需要使用的Frida模組
  5. local frida = require("frida")
  6. local io = require("io")
  7. local base64 = require("base64")

  8. -- 定義要附加處理程序的應用包名
  9. local app_package_name = "com.example.app"

  10. -- 定義脫殼後保存DEX檔案的路徑
  11. local dex_output_path = "/data/data/" .. app_package_name .. "/files/classes.dex"

  12. -- 附加處理程序並獲取JavaScript對象
  13. local session = frida.attach(app_package_name)
  14. local script = session:create_script([[
  15.     Java.perform(function () {
  16.         // 獲取Application實例
  17.         var app = Java.use("Android.app.ActivityThread").currentApplication();

  18.         // 獲取應用Context實例
  19.         var context = app.getApplicationContext();

  20.         // 獲取當前應用apk路徑
  21.         var package_info = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
  22.         var current_apk_path = package_info.applicationInfo.sourceDir;

  23.         console.log("當前應用APK路徑:", current_apk_path);

  24.         // 載入DexClassLoader類
  25.         var DexClassLoader = Java.use("dalvik.system.DexClassLoader");

  26.         // 建立DexClassLoader實例
  27.         var dex_file_path = "/data/local/tmp/decrypt.dex";  // 載入解密DEX檔案
  28.         var optimized_dir = "/data/data/" + context.getPackageName() + "/files";  // 最佳化後的DEX檔案保存路徑
  29.         var parent = context.getClassLoader();
  30.         var class_loader = DexClassLoader.$new(dex_file_path, optimized_dir, null, parent);

  31.         console.log("DexClassLoader建立成功!");

  32.         // 獲取需要脫殼的DEX檔案的路徑
  33.         var dex_file_path = "/data/data/" + context.getPackageName() + "/app_dex/classes.dex";

  34.         // 讀取DEX檔案資料
  35.         var dex_file_data = null;
  36.         var file = Java.use("java.io.File");
  37.         var dex_file =file.$new(dex_file_path);
  38.         if (dex_file.exists()) {
  39.             var file_input_stream = Java.use("java.io.FileInputStream").$new(dex_file);
  40.             var byte_array_output_stream = Java.use("java.io.ByteArrayOutputStream").$new();

  41.             var buffer_size = 1024;
  42.             var buffer = Java.array('byte', buffer_size);

  43.             while (true) {
  44.                 var len = file_input_stream.read(buffer);
  45.                 if (len == -1) {
  46.                     break;
  47.                 }
  48.                 byte_array_output_stream.write(buffer, 0, len);
  49.             }

  50.             dex_file_data = byte_array_output_stream.toByteArray();
  51.             console.log("DEX檔案讀取成功!");

  52.             file_input_stream.close();
  53.             byte_array_output_stream.close();
  54.         } else {
  55.             console.log("DEX檔案不存在!");
  56.             return;
  57.         }

  58.         // 解密DEX檔案
  59.         var decrypt_method = class_loader.loadClass("com.example.decrypt.Decrypt").getDeclaredMethod("decrypt", [Java.array("byte")]);
  60.         decrypt_method.setAccessible(true);
  61.         var decrypted_dex_data = decrypt_method.invoke(null, dex_file_data);
  62.         console.log("DEX檔案解密完成!");

  63.         // 保存解密後的DEX資料到檔案中
  64.         var dex_output_path = "/data/data/" + context.getPackageName() + "/files/classes.dex";
  65.         var file_output_stream = Java.use("java.io.FileOutputStream").$new(dex_output_path);
  66.         file_output_stream.write(decrypted_dex_data);
  67.         file_output_stream.close();
  68.         console.log("DEX檔案保存成功:", dex_output_path);

  69.         // 輸出DEX檔案的Base64編碼格式
  70.         var base64_data = base64.encodeToString(decrypted_dex_data, 0);
  71.         console.log("DEX檔案Base64編碼:
  72. ", base64_data);

  73.         // 匯出DEX檔案到sdcard目錄中
  74.         var sdcard_path = "/sdcard/classes.dex";
  75.         var cmd_export = "cp " + dex_output_path + " " + sdcard_path;
  76.         console.log("匯出DEX命令:", cmd_export);
  77.         var System = Java.use("java.lang.System");
  78.         System.$new().exec(cmd_export);
  79.         console.log("DEX檔案匯出成功:", sdcard_path);
  80.     });
  81. ]])

  82. -- 載入解密DEX檔案
  83. local decrypt_dex_data = io.open("decrypt.dex", "rb"):read("*all")

  84. -- 將解密DEX檔案寫入臨時檔案中
  85. local temp_dex_file = io.open("/data/local/tmp/decrypt.dex", "wb")
  86. temp_dex_file:write(decrypt_dex_data)
  87. temp_dex_file:close()

  88. -- 將臨時檔案的讀寫權限改為777
  89. os.execute("chmod 777 /data/local/tmp/decrypt.dex")

  90. -- 在目標處理程序中載入解密DEX檔案
  91. local load_dex_cmd = string.format("CLASSPATH=/data/local/tmp/decrypt.dex %s %d", executable, pid)
  92. os.execute(load_dex_cmd)

  93. print("DEX檔案已成功注入到目標處理程序中!")
複製代碼






大家正在看啥


收藏收藏 分享文章到FB上分享
回覆 使用道具 檢舉
複製專屬你的推廣連結:發至FB與各論壇宣傳:累積點數換GP商品 & 藍鑽
每五點閱率就可以兌換藍鑽積分或遊戲點卡 夢遊推廣文章換GP商品

你需要登入後才可以回覆 登入 | 加入會員

本版積分規則

Copyright (C) 2010-2020 夢遊電玩論壇

廣告合作:請直接聯繫我們,並附上您預刊登位置的預算。  

快速回覆 返回頂端 返回清單