NPatch-v1.0.6-654-release.apk
7.8 MB
測試版本
645-648
649-654
645-648
- 優化 SigBypass 簽名繞過邏輯
- 修復模組選擇更改後的作用域重新同步問題
- 新增管理器快取清除功能
- 新增設置頁面底部浮動玻璃導航欄適配
649-654
- 優化 HiddenApiBypass 實作
- 優化去除簽名校驗的路徑偽裝
- 新增輸出管理器日誌到媒體功能
- 透過 logcat 捕捉管理器調試日誌
- 新增被打包程式自動清除 NPatch 快取功能
- 修復未清理殘留的 libnpatch-*.so
🤔12❤5🔥3👍1
NPatch-v1.0.6-664-release.apk
6.9 MB
測試版本
655-656
657-664
下面用內建別看了,和你們沒啥關係
我參考了這個帖子的很多內容: https://bbs.kanxue.com/thread-285647.htm
655-656
- 修復輔助功能焦點和文本問題
- 用受控多線程加載應用程式和模組
(原本 fetchAppList() 會逐個 app 串行做兩件事:讀 label、解析 module metadata。現在改成用協程並行處理,每個 app 一個 async,但透過 Dispatchers.IO.limitedParallelism(...) 把並發數限制在 2..8 之間,避免一次把 PackageManager / ZipFile 掃描打滿。失敗時也保留 fallback,label 讀不到會退回 package name,不會整批中斷。)
657-664
下面用內建別看了,和你們沒啥關係
- 強化 PackageInfo 簽章替換與 seccomp 路徑偽裝,補齊 IPC 與 proc 視圖處理
- 對齊 FPA seccomp 並補強 Extreme proc 隱藏
- 強化 patch-loader 產物混淆並壓縮大小
- 改進簽名繞過處理
(透過使用最小的原生 APK 重定向路徑來偵測類似 360 的保護程序,並擴展 seccomp fd 路徑處理,從而提高對 360 加固的相容性)
- 為 Manager 添加簡單的簽名校驗
- 處理 maps inode 檢測 (重寫 /proc/self/maps 與 smaps 中的 APK 條目,讓其 device 與 inode 對齊原始 APK,避免 fstat 結果與 maps 條目比對失敗)
- 优化补丁安装文件读取逻辑与IO性能 (优先读取本地私有目录补丁文件,降级兜底SAF目录,修复文件长度读取错误,优化拷贝缓冲区大小提升安装稳定性与速度)
我參考了這個帖子的很多內容: https://bbs.kanxue.com/thread-285647.htm
🔥8❤5
NPatch-v1.0.6-668-release.apk
6.9 MB
665-668
更多說明:
這次更新主要針對的是目前 Android 生態圈中中高強度的加固方案(如 360 加固等)以及深度的環境檢測框架(如 Smallcheck)。這些檢測手段不再僅限於簡單的包名比對或 root 偵測,而是深入到 Linux 核心層與 ART 執行緒。
以下為具體「過掉」的檢測機制解析:
- 將衝突檢查延後到啟動初始化之後執行,確保啟動流程正確
- 修正 LSPlant 的 rwxp 記憶體權限洩漏所導致的環境異常問題
- 提升 seccomp 重導穩定性並更新 NPatch 的 LSPlant 相容性鉤子
- 加強 I/O 與路徑檢測繞過,補齊 APK 可見路徑與 fd 掛載資訊偽裝
更多說明:
這次更新主要針對的是目前 Android 生態圈中中高強度的加固方案(如 360 加固等)以及深度的環境檢測框架(如 Smallcheck)。這些檢測手段不再僅限於簡單的包名比對或 root 偵測,而是深入到 Linux 核心層與 ART 執行緒。
以下為具體「過掉」的檢測機制解析:
1. 提升 seccomp 重導穩定性並更新 LSPlant 相容性鉤子
這個部分的更新主要解決了主動探測防禦與 ART 執行緒逃逸的問題:
過掉「探測性崩潰(Crash-based Probing)檢測」:
- 檢測原理: 偵測會故意向openat等系統呼叫傳入「畸形的路徑」或「不可讀的記憶體指標」。如果你的 seccomp 攔截器(SIGSYS handler)直接去讀取(解引用)這些指標,就會觸發 Segmentation Fault,導致外掛進程崩潰,或者暴露出有工具在攔截 syscall 的事實。
- 繞過方式: 更新後,不再於 SIGSYS 中直接解引用指標,而是先讓核心去驗證該路徑是否合法並打開它,再透過/proc/self/fd解析回傳的 fd。這讓惡意探測無法引發攔截器崩潰,完美隱蔽了 seccomp 重導的存在。
過掉「ART 內聯優化逃逸(Inline / AOT Escape)檢測」:
- 檢測原理: 現代 Android (特別是 Android 8.0+) 的 ART 虛擬機會頻繁利用 ProfileSaver 進行 AOT (Ahead-of-Time) 編譯,並將部分頻繁呼叫的方法「內聯 (Inline)」。一旦目標方法被內聯,呼叫者會直接執行機器碼,不再經過方法的入口點,這會導致 LSPlant 等依賴入口點替換的 Java Hook 失效。防護系統會利用這一點,透過頻繁觸發特定邏輯並檢查執行時間或路徑,來判斷是否被 Hook。
- 繞過方式: 透過安裝 ProfileSaver 相容性鉤子並強制對dex2oat關閉 inline,確保目標方法永遠不會被編譯成無法攔截的內聯狀態。這保證了 Hook 的絕對覆蓋率,過掉了依賴內聯機制的完整性校驗。
2. 加強 I/O 與路徑檢測繞過,補齊 APK 可見路徑與 fd 掛載資訊偽裝
這部分是針對 VFS (虛擬檔案系統) 級別的深度稽查,特別是 Smallcheck 這類極度吹毛求疵的環境檢測工具:
過掉「Java 層 API 交叉比對檢測」:
- 檢測原理: 應用不僅會透過Context.getPackageCodePath()獲取 APK 路徑,還會深入反射讀取LoadedApk、BoundApplication內的ApplicationInfo.sourceDir等欄位,甚至透過java.io.FileAPI 進行交叉比對。如果重導邏輯只覆蓋了表層,底層欄位仍指向你 patch 過的私有目錄,就會被抓包。
- 繞過方式: 啟動後主動將這些深層框架變數恢復為原始 APK 的「可見路徑」,並偽裝 File API,讓所有 Java 層的路徑查詢都得到一致的假象。
過掉「底層 Metadata (中介資料) 檢測」:
- 檢測原理: 防護系統不呼叫 Java,直接透過 native 的stat,lstat,statfs或statx系統呼叫,去查驗 APK 檔案的「大小」、「Inode 節點」、「建立時間」或「磁區資訊」。如果讀取到的是補丁 APK 的資訊,大小和時間絕對與原始 APK 不符。
- 繞過方式: 將 native 檔案 hook 擴充到所有涉及 file stat 的 syscall,強制回傳原始 APK 的 Metadata,讓檔案屬性在檢測工具眼中完美無瑕。
過掉「掛載點特徵 (Mount ID / FD) 深度比對」:
- 檢測原理: 這是 Smallcheck 的拿手好戲。即使你完美偽裝了路徑與大小,檢測工具會去讀取/proc/self/fd/下打開的檔案描述符,並進一步讀取/proc/*/fdinfo/<fd>裡面的mnt_id(掛載點 ID)。如果你的補丁 APK 放在另一個分區(例如某個私有 data 目錄或 OverlayFS),它的mnt_id會與預期中/data/app/目錄所在的mnt_id不同,重導行為直接曝光。
- 繞過方式: 系統動態追蹤被重導的 fd,並在檢測讀取 fdinfo 時,直接將裡面的mnt_id覆寫篡改為「可見路徑(原始 APK)」應該要有的mnt_id。這直接在 VFS 層面阻斷了掛載點異常洩漏的問題。
過掉「虛擬檔案系統 (FUSE) 探測」:
- 檢測原理: 檢查/dev/fuse或相關掛載行為,來判斷系統是否運作在被魔改的模組環境(某些模組會利用 FUSE 來做檔案攔截)。
- 繞過方式: 直接對/dev/fuse的查詢回傳「不存在」,減少異常掛載點暴露的面積。
❤31🔥4🍌2👍1