㈠ App靜態逆向分析思路淺析(過檢測)
推薦閱讀
福利來啦-優惠券活動
App靜態逆向分析思路淺析(過檢測)
https://blog.csdn.net/u011426115/article/details/121346288
jadx+frida
查看apk是否加殼 (apk未加殼)
搜索root檢測特徵、邏輯,其中Hook ( 如:Xposed、Frida等 )檢測的字元串特徵類似,可以通過jadx、JEB3等反編譯工具快速搜索定位到檢測關鍵點
Hook下面的方法( 使用Xposed、Frida等進行Hook )
com.google.firebase.crashlytics.internal.common.CommonUtils.isRooted
com.google.firebase.crashlytics.internal.common.CommonUtils.isEmulator
com.google.firebase.crashlytics.internal.common.CommonUtils.isDebuggerAttached
com.google.firebase.crashlytics.internal.common.CommonUtils.isAppDebuggable
CommonUtils.isRooted.overload().implementation = function(){
}
在jadx的搜索文本中,輸入」 native+空格 」快速定位App中的native介面,分析是否存在Root、Hook、模擬器環境、雲手機環境、App風險環境等相關檢測
搜索" hook、xposed、frida、su、root、/system/ "等特徵字元串快速定位
分析apk是否可以反編譯、是否可以重打包、是否可以簽名,是否存在簽名校驗等檢測
推薦閱讀
android安全基礎
Objection動態分析App
Frida Hook的使用方法
IDA靜態動態逆向分析基礎
Android逆向分析常用方法
IDA動態調試逆向分析Android so
C#開源項目-二進制文件的反編譯器
Radare2逆向分析dex/so/二進制等文件的使用方法
㈡ apk加固apk需要進行加固,防二次打包、破解,哪個公司apk加固比較靠譜的麻煩各位給推薦下!
愛加密應用程序保護通過市場拓展,已經和全球超過3000名的開發者達成了合作,保護的app應用程序數量達到6000餘款,已經和「WiFi伴侶」「史上最坑爹的游戲」「美食傑TV版」「銅板街」「兜兜公交」等應用市場和開發者達成戰略合作,為應用程序的開發者提供一站式的APP安全檢測、程序應用保護、渠道監測等服務。http://www.ijiami.cn/newsInfo?id=260
同時愛加密還提出的三層加密保護:DEX加殼保護,DEX指令動態載入保護,高級混淆保護,可以保證APP的動態安全和靜態安全,讓人沒有機會進行任何破解。又加上SO庫保護,C/C++層面的代碼得到了專業保護,讓APK包無懈可擊。愛加密可以有效避免APK的破解、注入、反編譯等操作,從而消除Adroid游戲APK推廣過程中被破解、盜版的安全風險,並通過服務開發者,達到服務用戶的目的。
㈢ 360加固保mp出來的dex怎麼修復
通常二次打包的步驟是:解包(反編譯)-->插入/篡改代碼-->生成新包-->重簽名-->運行。
首先可以通過使用ApkTool、Jeb、baksmali/smali等反編譯工具,反編譯apk安裝包,圖1為調用baksmali文件的截圖。
解包後可以看到所有文件列表,找到需要修改的smali文件,這里修改的是MainActivity.smali,如圖2。
解開MainActivity.smali文件後,在裡面插入一段篡改代碼,修改登錄界面中「Button」按鈕上的文本,圖3和圖4是修改前後smali文件中的代碼。
修改後再調用smali.jar文件,將smali重新打包成dex文件,如圖5所示。
接下來再將新生成的classes.dex文件替換原安裝包中的classes.dex,並進行重新簽名,就生成了一款盜版應用。運行該款盜版應用時會發現登錄界面的登錄按鈕被修改替換成了「Fake Btn」,如圖6、圖7所示。
通過簡單的幾個操作步驟,一款未經加固保護的APP就被盜版了,一個團隊一年的勞動成果幾分鍾內就被輕易竊取。通常,盜版應用會通過插入/替換廣告SDK賺取廣告收入、修改支付渠道截取開發者收入、插入病毒/木馬程序盜取用戶信息等形式出現,操作步驟與上面介紹的類似,嚴重侵害了開發者和用戶的利益。
要想保護手機APP,避免被盜版,就要從源頭進行加固保護,讓破解者無從下手。圖8是使用360加固保對APP進行加固前後的對比,加固後再調用baksmali.jar進行反編譯,可以看到代碼文件全部被隱藏,暴露的只是加固程序的一些代碼,破解者自然無法再對源程序進行篡改了。
360加固保基於360核心加密技術,對安卓應用進行加固保護,能有效避免應用被惡意破解、反編譯、二次打包、內存抓取等。同時給應用提供數據加密、簽名校驗、防內存修改、完整性校驗、盜版監測等保護功能,給予安卓應用最強保護,從源頭消滅惡意盜版應用。作為移動互聯網安全服務行業的領跑者,360加固保將持續關注手機應用安全的發展,不斷完善加固保服務,切實保護開發者收入和權益。
㈣ jeb2調試完了apk怎麼修改
apk修改的話,可以用apktools解包,然後修改,再用apktools打包,但是一般需要自己重新簽名,有些apk逆向做的好的話,apktools解包會出錯。apktools其實是一個懶人工具集,如果出錯了,還需要自己深入手動調整
㈤ Android逆向工程師是做什麼的
必須掌握的技能
1、負責安卓程序的加解密和數據傳輸分析、拆解、逆向等工作;
2 、逆向APK,了解運行過程;
3 、Andorid本地提權獲得root許可權;
4 、熟練掌握軟體逆向靜態分析、動態調試、代碼跟蹤等;
5 、熟悉Android開發,了解打包、反編譯、破解流程;
6 、so破解。
目前了解的如下:
1,加解密:這就很多了,一般都是遇到後再折騰解密,而且解密代碼和秘鑰一般都在代碼裡面。
2,Andorid本地提權獲得root許可權,一般真機是用recovery刷機包,但是病毒提權是怎麼樣的
目前掌握的一種提權的是像輸入命令行一樣輸入su並且用pm提權
還有一種是修改init.rc文件
3,ida動態調式和代碼跟蹤
4,打包,編譯和破解的流程是什麼樣的?
5,so破解:一般就是破殼。各種殼(360,娜迦等等)
加殼的另一種常用的方式是在二進制的程序中植入一段代碼,在運行的時候優先取得程序的控制權,做一些額外的工作。大多數病毒就是基於此原理。加殼的程序經常想盡辦法阻止外部程序或軟體對加殼程序的反匯編分析或者動態分析,以達到它不可告人的目的。這種技術也常用來保護軟體版權,防止被軟體破解。
6,了解反破解的技術
目前掌握的技術有:
1,反模擬器
2,反靜態代碼分析器如:反jeb
應該也是有很多反ida的,也就是加殼。
任職要求
1、具有豐富的Android開發分析經驗,熟悉android系統架構,熟悉android安全機制;
2、精通匯編語言、java、C/C++語言,熟悉Smali語言,對逆向工程有濃厚興趣;
3、熟練掌握ida、gdb逆向分析工具;
4、熟練掌握軟體逆向靜態分析、動態調試、代碼跟蹤等;
5、熟悉so和Java層hook;
6、熟悉Android開發,了解打包、反編譯、破解流程;
7、深入理解arm Linux和Android底層運行機制;
8、熟練掌握各種調試工具:Smali、Dedexer、Dexmp、Apktool、Dex2jar、jd-gui。
㈥ jeb 怎麼讓前面顯示代碼是第幾行
2. Jeb 的基本操作
(1)重命名(n)
(2)跟蹤(Enter, 雙擊)
(3)返回(Esc)
(4)前進(Ctrl + Enter)
(5)幫助(H)
(6)條目信息(I)
(7)交叉引用(X),源碼交叉引用(Ctrl + X)
(8)注釋(;or C)
(9)改變進制數(B)
(10)反編譯(Tab)
㈦ 怎麼加固安卓軟體
加固安卓軟體一般要達到以下效果:
1、防逆向:通過DEX 文件加殼以及DEX 虛擬化等技術,防止代碼被反編譯和逆向分析。
2、防篡改:通過校驗 APK 開發者簽名,防止被二次打包,植入廣告或惡意代碼。
3、防調試:防止應用被 IDA、JEB 等工具調試,動態分析代碼邏輯。
VirboxProtector安卓加固的核心技術一般有:
DEX 文件加密隱藏
對 DEX 文件加殼保護,防止代碼被竊取和反編譯。
SO 區段壓縮加密
對 SO 庫中的代碼段和數據段壓縮並加密,防止被 IDA 等工具反編譯。
單步斷點檢測
在混淆的指令中插入軟斷點檢測暗樁,防止native層run trace和單步調試。
防動態調試
防止應用被 IDA、JEB 等工具調試,動態分析代碼邏輯。
開發者簽名校驗
對 APK 中的開發者簽名做啟動時校驗,防止被第三方破解和二次打包。
SO 內存完整性校驗
在 SO 庫載入時校驗內存完整性,防止第三方對 SO 庫打補丁。
SO 代碼混淆
對 SO 庫中指定的函數混淆,通過指令切片、控制流扁平化、立即加密等技術手段,將 native 指令轉換為難以理解的復雜指令,無法被 IDA 反編譯,並且無法被還原。
SO 代碼虛擬化
對 SO 庫中指定的函數虛擬化,可以將 x86、x64、arm32、arm64 架構的機器指令轉換為隨機自定義的虛擬機指令,安全強度極高,可通過工具自定義配置,調整性能與安全性。
DEX 虛擬機保護
對 DEX 中的 dalvik 位元組碼進行虛擬化,轉換為自定義的虛擬機指令,最後由 native 層虛擬機解釋執行,防止逆向分析。
㈧ jeb 可以打開smali文件嗎
因為反編譯失敗了,所以只有smali文件夾了。1.反編譯Apk得到Java源代碼首先要下載兩個工具:dex2jar和JD-GUI前者是將apk中的classes.dex轉化成Jar文件,而JD-GUI是一個反編譯工具,可以直接查看Jar包的源代碼。具體步驟:首先將apk文件,將後綴改為zip,解壓,得到其中的classes.dex,它就是java文件編譯再通過dx工具打包而成的;解壓下載的dex2jar,將classes.dex復制到dex2jar.bat所在目錄。在命令行下定位到dex2jar.bat所在目錄運行 dex2jar.bat classes.dex生成 classes.dex.dex2jar.jar2.反編譯apk生成程序的源代碼和圖片、XML配置、語言資源等文件還是下載工具,這次用到的是apktool具體步驟:將下載的兩個包解壓到同一個文件夾下,應該會有三個文件:aapt.exe,apktool.bat,apktool.jar1.解壓縮下載的兩個文件包,apktool-install-windows-r04-brut1.tar解壓縮後得到的包里有aapt.exe和apktool.bat.(注意要把apktool1.4.1.tar解壓後的一個.jar文件到解壓後的\apktool-install-windows-r04-brut1文件夾里)2.特別注意:你要反編譯的文件一定要放在C盤的根目錄里
㈨ 什麼是android apk加固
加固的過程中需要三個對象:1、需要加密的Apk(源Apk)2、殼程序Apk(負責解密Apk工作)3、加密工具(將源Apk進行加密和殼Dex合並成新的Dex)主要步驟:我們拿到需要加密的Apk和自己的殼程序Apk,然後用加密演算法對源Apk進行加密在將殼Apk進行合並得到新的Dex文件,最後替換殼程序中的dex文件即可,得到新的Apk,那麼這個新的Apk我們也叫作脫殼程序Apk.他已經不是一個完整意義上的Apk程序了,他的主要工作是:負責解密源Apk.然後載入Apk,讓其正常運行起來。