- 資訊首頁(yè) > 網(wǎng)絡(luò )安全 >
- Android中怎么實(shí)現靜態(tài)分析
這篇文章給大家介紹Android中怎么實(shí)現靜態(tài)分析,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
先從一個(gè)很簡(jiǎn)單的apk包入手,一個(gè)假登錄頁(yè)面:
點(diǎn)擊登錄的時(shí)候彈出提示:
代碼用得是Android Studio3.5的版本,Android Studio的版本更新后,代碼的書(shū)寫(xiě)方式也跟以前不一樣了:
主頁(yè)面完成后,打包成apk文件,這里我試了三種打包方式,結果都是一樣的:
未簽名打包:
V1方式簽名的正式包:
V2方式簽名的正式包:
打包完成后,找到apk包文件,
使用apktool直接反編譯:
.\apktool.bat d -f .\app-release.apk -o test
解釋?zhuān)?/p>
d表示decode,意思是反編譯,與之對應的是b ,building,編譯
-f 表示force,強制刪除目標目錄
-o 表示輸出地址
反編譯后進(jìn)入到test文件夾下的/smali/com/example/hellosmali中,可以看到有兩個(gè)MainActivity的smali文件:
其中MainActivity$onCreate$1.smali文件中有我們希望修改的onclick操作:
修改const-string v1值為:hello smali
這里修改完成后需要重新回編譯為apk包,書(shū)上說(shuō)的是用Android逆向助手,但是我試過(guò)后并沒(méi)有打包成功:
apktool也可以進(jìn)行回編譯:
這里報錯了,因為高版本的Android Studio和Gradle使用了aapt2打包apk,但是apktool卻是使用的aapt1打包。按照網(wǎng)上教的辦法在gradle.properties文件添加了android.enableAapt2=false:
重新編譯apk包,繼續報錯:
這里點(diǎn)報錯信息后定位到了minSdkVersion,我還以為是最低版本的問(wèn)題,改為20后,還是報錯……
想了想,又將apktool升級到了最新版本,重新回編譯,還是報錯,但是錯誤提示已經(jīng)跟之前不一樣了:
刪除了報錯的xml文件后,又繼續提示其他文件報錯T_T……
本來(lái)打算下個(gè)3.0以下版本的android studio再重新打包個(gè)apk,不過(guò)后來(lái)在網(wǎng)上看到一個(gè)回答說(shuō)可以把C:\Users\XX\AppData\Local\apktool\framework\1.apk刪掉試試,抱著(zhù)試試的心態(tài)刪掉了1.apk,再重新回編譯:
.\apktool.bat b .\test\
看著(zhù)成功了,去dist目錄下看果然有了新包:
將新打的包安裝到Android機上,又報錯:
NO_CERTIFICATES,沒(méi)有簽名,不能安裝,那就先給apk包簽個(gè)名好了,用得是jdk自帶的keytool和jarsigner工具。
使用keytool工具先生成簽名文件:
.\keytool.exe -genkey -alias "test" -keyalg "RSA"
解釋?zhuān)?/p>
-genkey 創(chuàng )建新密鑰
-alias 密鑰別名
-keyalg 生成密鑰對的算法
-validity ,后面跟天數,代表創(chuàng )建的ssl/' target='_blank'>證書(shū)有效期,也可默認
再使用jarsigner工具進(jìn)行簽名:
.\jarsigner.exe -verbose -keystore C:\
Users\xxx\.keystore -signedjar C:\Users\xxx\app-debug-signed.apk C:\Users\xxx\app-debug.apk "test"
解釋?zhuān)?/p>
-verbose 簽名/驗證時(shí)輸出詳細信息
-keystore 密鑰庫位置
-signedjar 已簽名的jar文件的名稱(chēng)
注意最后跟的是別名(alias),寫(xiě)錯了會(huì )報錯的:
最后終于生成了一個(gè)簽名包:
再次安裝:
提示已經(jīng)存在這個(gè)包了,刪除手機上的原來(lái)的app,重新安裝,成功:
再點(diǎn)擊登錄按鈕時(shí),可以看到提示語(yǔ)已經(jīng)被修改過(guò)了:
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。
Copyright ? 2009-2021 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 珠海市特網(wǎng)科技有限公司 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站