欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

android加殼,android加殼工具

android apk可以加殼嗎?

愛加密 可以給apk文件加殼,保護安卓應用源碼的安全,你可以看一看:

成都創(chuàng)新互聯公司專注于寧江網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供寧江營銷型網站建設,寧江網站制作、寧江網頁設計、寧江網站官網定制、成都小程序開發(fā)服務,打造寧江網絡公司原創(chuàng)品牌,更為您提供寧江網站排名全網營銷落地服務。

android怎樣破解已使用加殼技術的APP

講講大概思路,技術細節(jié)就不能公開了。

破解加了dex殼的app,關鍵是要獲得解密后的源dex,現在Android加殼技術還很不成熟,大多都是通過DexClassLoader或者隱藏的函數openDexFile來將源dex加載進來,然后動態(tài)替換Application來啟動源程序,跟Windows上傳統(tǒng)的PE文件加殼有一定區(qū)別。

要破解傳統(tǒng)的殼,需要跟蹤控制流找到OEP,然后把源程序從內存中dump下來,重建輸入表,最困難的就是要跟著外殼的控制流走,安全工程師為了加大破解難度,使用了很多技術來讓破解者走得更艱難。安全工程師與破解者對抗的關鍵點就在尋找OEP的困難性上。

在Android平臺上,正因為新興的dex加殼技術不成熟,導致有些另類的脫殼方法可以繞過分析算法,直接將源程序dump下來。舉個例子,安卓在4.0版本以后提供openDexFile這個函數來從內存中加載dex,所需要提供的參數是源dex在內存中的地址,所以只要對這個函數下斷,然后從寄存器里找到內存地址,就能將解密后的源dex從內存中dump下來,直接對其反編譯就能獲得源代碼了。更進一步,關于openDexFile這個函數,其實它與libdvm.so這個庫有密不可分的關系,這個庫里提供大量操作dex文件的函數,如果對這個庫里的相關函數下斷,然后從內存中暴力dump一大塊內存區(qū)域,經常能直接將內存中的源dex給抓下來。

怎么給手機上的apk軟件加殼安裝

版權聲明:本文為博主原創(chuàng)文章,若轉載請注明出處:

首先加殼的方法和代碼都是從Jack_Jia的博客學習的。

詳見:

由于本人從c++開發(fā)直接跳到Android開發(fā),沒有對android進行系統(tǒng)的學習,看上面博客時還是有很多不理解的地方。本文把不理解的地方梳理一下,最后提供個測試源碼(加了比較詳細的注釋)。希望對于跟我一樣安卓基礎不是太好的人有一定幫助。

正文:

apk加殼的目的(我的用途):增加apk靜態(tài)分析的難度。(如果反編譯的人知道是加殼的,可以在data/包名目錄下 找到真正的apk。所以在殼上增加正常的代碼的話可以增加迷惑性)

基礎知識:ClassLoader: 這個寫的不錯想了解的可以去看看。

整個加殼的過程涉及到三個程序:要加殼的apk,加殼程序(demo中的apkjm),解殼程序(demo中的myunshell)。

其中加殼程序就是把要加殼的apk放入解殼程序的dex文件中。

解殼程序是最后替代我們apk安裝到手機中運行的程序。它在執(zhí)行中從自己的dex中釋放出我們apk程序。

步驟:

1.實現加殼程序。

2.實現解殼程序:按博客創(chuàng)建個解殼的Application。如果我們的apk中用到了 Application,需要在解殼程序的xml文件中添加:

meta-data android:name="APPLICATION_CLASS_NAME" android:value="com.***.Application"/

com.***.Application 是我們apk的Application類名 加上我們apk的包名

注:1.我們apk用到的權限和組件都需要添加到解殼程序的xml中,組件都需要加上完整的包名路徑。

2.我們apk內用到的資源也就是res文件內的東西,需要拷貝到解殼程序的res中。

3.如果我們apk靜態(tài)注冊了廣播接收器,那廣播接收器類需要在解殼程序中實現。

3.解殼程序完成后,把bin文件夾內的dex文件拷出來,用加密程序把我們的apk添加到該dex文件中。

4.把新生成的dex文件覆蓋bin文件夾中原來的dex文件,并把apk文件也刪掉,重新運行解殼程序生成新的解殼apk。 這個apk就是我們需要的最后的apk文件了。加殼就完成了。

另外:1.在解殼程序中對我們apk文件進行解密函數調用的地方不對。 在demo中做了修改和說明。

2.我在釋放apk的時候加了個判斷,如果文件存在就不再釋放了,如果是在測試的時候,可以先屏蔽掉,免的每次運行調試前要先刪掉原來的程序。

[java] view plain copy

if (!dexFile.exists())

{

dexFile.createNewFile(); //在payload_odex文件夾內,創(chuàng)建payload.apk

// 讀取程序classes.dex文件

byte[] dexdata = this.readDexFileFromApk();

// 分離出解殼后的apk文件已用于動態(tài)加載

this.splitPayLoadFromDex(dexdata);

}

demo地址:

如何判斷一個android是否加殼

Android應用的發(fā)布形式apk中包含的簽名加密方法除了RSA還有DSA,所以不能只從apk中提取常見的META-INF/CERT.RSA,應該是檢查apk中具體的簽名文件。

FILE="yourapp.apk"

cert_XSA=`jar tf $FILE | grep SA`

此時得到的cert_XSA可能是META-INF/*.RSA或者META-INF/*.DSA。

2.apk中提取具體的簽名文件。

jar xf $FILE $cert_XSA

此時會在當前目錄得到cert_XSA文件。

3.對于得到的簽名文件,提取其中簽名的MD5值

keytool -printcert -file $cert_XSA | grep MD5 "$FILE.certMD5"

這時候yourapp.certMD5這個文件中就保存了yourapp.apkk中的簽名MD5值。

4.最后比較兩個app的簽名可以用diff

FILE1="yourapp1.apk"

FILE2="yourapp2.apk"

//經過上述步驟得到$FILE1.certMD5和$FILE2.certMD5

certMD5_diff=`diff $FILE1.certMD5 $FILE2.certMD5`

if [ "$certMD5_diff" = "" ]; then

echo "$FILE1.certMD5 == $FILE2.certMD5"

fi

若輸出yourapp1.apk.certMD5 == yourapp2.apk.certMD5那么這兩個應用的簽名就一致。

Android APP加密方法都有哪些

安卓APP加密的方法主要分成三類:源碼加密、數據安全和應用保護,而每一類又分成好幾個小項。

源碼加密包括:Dex文件保護、防二次打包、so文件保護、資源文件保護。以Dex文件保護為例,Dex文件保護又包括:高級混淆、DEX文件加殼、DEX文件加花、動態(tài)類加載、內存防dump。

高級混淆:代碼混淆,可以降低代碼可讀性、縮小包大小。

DEX文件加殼:相當于把源碼打包至其他文件夾下,逆向工具對加密后的dex文件解析,只能看到殼文件,可以防止解包后看到真正的源碼。愛加密利用挖空技術實現函數級加密,安全強度高,啟動效率快。

dex加花:由于大部分逆向工具都是線性讀取字節(jié)碼并解析,當遇到無效字節(jié)碼時就會引起反編譯工具字節(jié)碼解析失敗。愛加密插入無效字節(jié)碼到dex文件之中,同時保證該字節(jié)碼永遠不會被執(zhí)行,否則程序運行也會崩潰。這樣,就能起到反編譯的作用了。

dex動態(tài)類加載:愛加密加固后的dex文件源碼可以動態(tài)分離,在運行時,將源碼分段加載到內存當中。

內存防dump:程序運行時會釋放代碼,內存防dump可以防止程序運行時被劫持。

應用安全包括:log日志輸入屏蔽、應用清場。清場技術依賴于云端黑名單、白名單DB,應用每次啟動后便自動進行本地的黑名單、白名單DB數據更新,若檢測到有異常情況,則可對用戶進行提示。

數據安全包括:頁面防劫持、本地數據保護、截屏保護、內存數據防查詢、協議加密、虛擬鍵盤。

新聞標題:android加殼,android加殼工具
當前地址:http://chinadenli.net/article25/dsigoji.html

成都網站建設公司_創(chuàng)新互聯,為您提供網站排名關鍵詞優(yōu)化外貿網站建設網站收錄定制網站品牌網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

網站托管運營