1.app安全之反编译(一)
2.Android SDKä¸è¾¹toolsåplatform-toolsçåºå«
3.å¦ä½è·åapp çå
ååactivity å
4.å®å4.0å¦ä½åç¼è¯resources.arsc
app安全之反编译(一)
以往安全研究者关注的工具i工多是移动应用的本地安全,例如远程控制、源码源码应用破解及信息窃取等,具箱然而忽视了服务端安全。工具i工服务端的源码源码安全问题普遍存在,如SQL注入、具箱保险保单源码文件上传、工具i工中间件或服务器漏洞等。源码源码移动应用通过web API服务与服务端交互,具箱这种模式将移动安全与web安全紧密相连。工具i工然而,源码源码部分应用不直接嵌入网页,具箱而是工具i工通过API接口返回JSON数据,这使得扫描器和爬虫无法获取链接。源码源码
在iOS系统中,具箱由于无法进行反编译,安全专家通常借助反汇编工具,公众平台页面源码如IDA,来分析应用逻辑。对于已越狱的iOS设备,IDA、classdump等工具可以辅助进行分析。在Android系统中,应用反编译则更为常见,通常使用apktool、android设置源码分析dex2jar和jd-gui等工具。为了检测Android应用的安全性,通常会先判断是否被加壳,之后尝试脱壳并反编译代码,结合上下文分析代码位置,有时还需进行动态调试。
以下是针对应用反编译的一般思路及工具使用方法:
脱壳通常使用DexHunter,这是拉盘 指标源码一款用于通用自动脱壳的Android工具,由大牛zyqqyz于年下半发表在看雪论坛,详情见《Android dex文件通用自动脱壳器》。接下来是反编译流程:
1. 使用apktool将APK文件反编译成源代码、、XML配置、语言资源等文件。下载apktool,解压后得到三个文件:aapt.exe、大天使辅助源码apktool.bat、apktool.jar。将待反编译的APK文件放入指定目录,打开命令行界面输入命令:apktool.bat d -f test.apk test(test.apk为APK文件全名,test为输出文件夹名称)。执行后会在指定文件夹生成反编译资源。
2. 若要将反编译的文件重新打包成APK,可输入命令:apktool.bat b test(test为编译文件夹)。执行后在指定文件夹下会生成build和dist文件夹,dist中存放着打包后的APK文件。
3. 反编译得到的Java源代码可通过dex2jar和jd-gui工具进一步分析。将classes.dex文件解压并转换为jar文件,然后使用jd-gui打开查看源码。
4. 对于混淆过的应用,类文件名称和方法名称会以a、b、c等样式命名,需要仔细分析。
为了简化反编译过程,还提供了图形化工具,如Androidfby。使用该工具进行APK反编译更为直观方便。
在进行APK修改时,了解未加密资源的修改方法至关重要。非res文件夹下的资源及res中的可直接解压缩修改。具体操作包括解压缩APK包、修改指定文件、删除签名文件夹、重新打包并签名后安装。
为确保分享的资源与工具的时效性与实用性,我运营着一个公众号,每日分享安全资料与工具,欢迎关注。
Android SDKä¸è¾¹toolsåplatform-toolsçåºå«
platform-toolså å«å¼åappçå¹³å°ä¾èµçå¼ååè°è¯å·¥å ·ï¼å æ¬ adbãfastbootçandroid sdkéçåç®å½ä½ç¨AVD Manager.exeï¼èææºç®¡çå·¥å ·ï¼ç¨äºå»ºç«å管çèææºãSDK Manager.exeï¼sdk管çå·¥å ·ï¼ç¨äºç®¡çãä¸è½½sdkãsdkå·¥å ·ï¼è½åæ©å±å·¥å ·toolsç®å½ï¼å æ¬æµè¯ãè°è¯ã第ä¸æ¹å·¥å ·ã模æå¨ãæ°æ®ç®¡çå·¥å ·çãbuild-toolsç®å½ï¼ç¼è¯å·¥å ·ç®å½ï¼å å«äºè½¬å为davlikèææºçç¼è¯å·¥å ·ãå æ¬aaptï¼Android Asset Packaging Toolï¼ï¼ç¼è¯åºç¨ç¨åºçèµæºæ件ï¼å æ¬AndroidManifest.xmlåä½ çActivitiesçxmlæ件ï¼ï¼çæR.javaæ件ï¼è¿æ ·ä½ å°±å¯ä»¥ä»ä½ çjava代ç ä¸å¼ç¨èµæºãaidlï¼æ.aidl æ¥å£è½¬æ¢æjavaæ¥å£.dxï¼è½¬å.classä¸é´ä»£ç 为dvlikä¸é´ä»£ç ,ææç»è¿javaç¼è¯ççæ.classæ件é½éè¦æ¤å·¥å ·è¿è¡è½¬æ¢,æåæå è¿apkæ件ä¸.dexdump:dump devlikä¸é´ä»£ç platform-toolsç®å½ï¼å å«å¼åappçå¹³å°ä¾èµçå¼ååè°è¯å·¥å ·ãå æ¬adbï¼androidè°è¯å·¥å ·fastbootï¼bootå·¥å ·platforms/<android-version>ç®å½ï¼å æ¬androidçå¹³å°ãå å«å¨android.jaråºä¸ãä½ å¿ é¡»æä¸ä¸ªå¹³å°ä¸ºä½ çç¼è¯ç®æ ãsystem-imagesç®å½ï¼ç¼è¯å¥½çç³»ç»æ åã模æå¨å¯ä»¥ç´æ¥å è½½ãsourcesç®å½ï¼androidãsdkçæºç ç®å½samplesç®å½ï¼sdkä¾å
å¦ä½è·åapp çå ååactivity å
æ们å¨è¿è¡ææºèªå¨åæµè¯æ¶ç»å¸¸è¦ç¥éapp çå ååActiviy å称ï¼å¥½å¤åä»åå¦ä¹ æ¶ä¸ç¥ä»åªå»æ¾ï¼å ¶å®æ好å¤ç§æ¹æ³å¯ä»¥è·åè¿äºå¼
以ä¸æ¯é对æ æºç çæ å½¢ï¼æ´éåäºåå¦åä»
æ¹æ³ä¸ ç¨éç¾åå·¥å ·ï¼è¿ä¸ªå¨Robotium ä¸ç¨å¾æ¯è¾å¤
å¦å¤ä¸ç§æ¹å¼ç¨å½ä»¤æ¹è·å
Aapt dumpbadging xxxx.apk
第ä¸ä¸ªæ¡ä¸ºå å
第äºä¸ªæ¡ä¸ºä¸»Activityå
å¦æåå åä¸Activityå¨å½ä»¤è¡ä¸ä¸æ¹ä¾è¿å¯ä»¥ç¨ä»¥ä¸æ¹å¼è·å
Aapt dumpbadging xxxx.apk >c:\apk.txt
ä¹åæå¼c:\apk.txt
第ä¸ç§æ¹å¼ï¼å¦æä½ è£ äºAppium å¯ä»¥è¿ä¹æä½ä¸
è¿å ¥è®¾ç½®é¡µï¼éæ©APK è·¯å¾ï¼ä¸é¢å°±ä¼æ¾ç¤ºå ååActivityå称
第åç§ç¨hierarchyviewer æ¥ç
Aapt å½ä»¤
AAPT dump xmltree XXX.APK AndroidManifest.xm. >c.txt
ä¹åå»C.TXT æ¥ç
第6ç§
Adbshell dumpsys activity activities >d:\log.txt
ä¹åå»log.txt æpackage åActivity
第ä¸ç§
Adb logcag >d:\3.txt
ä¹åæå¼ææºä¸çåºç¨
æå¼ä¹åç«å³å¨çµèä¸æctrl+c
ä¹åå»3.txt æ¾PACKAGEåActivity
å®å4.0å¦ä½åç¼è¯resources.arsc
resourcesæ¯APKä¸çèµæºæ件,ä¾å¦å¾çå¸å±çç,android åç¼è¯çæ¹æ³,éè¦ç¨å°å ä¸ªå·¥å ·,ç¾åº¦ä¸ä¸é½è½æ¾å°ä¸è½½å°å
dex2jar JD-GUI apktool
åç¼è¯æ¥éª¤:
1.åç¼è¯Apkå¾å°Javaæºä»£ç
é¦å è¦ä¸è½½ä¸¤ä¸ªå·¥å ·ï¼dex2jaråJD-GUI
åè æ¯å°apkä¸çclasses.dex转åæJaræ件ï¼èJD-GUIæ¯ä¸ä¸ªåç¼è¯å·¥å ·ï¼å¯ä»¥ç´æ¥æ¥çJarå çæºä»£ç ã
å ·ä½æ¥éª¤ï¼
1.é¦å å°apkæ件ï¼å°åç¼æ¹ä¸ºzipï¼è§£åï¼å¾å°å ¶ä¸çclasses.dexï¼å®å°±æ¯javaæ件ç¼è¯åéè¿dxå·¥å ·æå èæçï¼
2.解åä¸è½½çdex2jarï¼å°classes.dexå¤å¶å°dex2jar.batæå¨ç®å½ãå¨å½ä»¤è¡ä¸å®ä½å°dex2jar.batæå¨ç®å½
è¿è¡ dex2jar.bat classes.dex
çæ classes.dex.dex2jar.jar
2.åç¼è¯apkçæç¨åºçæºä»£ç åå¾çãXMLé ç½®ãè¯è¨èµæºçæ件
è¿æ¯ä¸è½½å·¥å ·ï¼è¿æ¬¡ç¨å°çæ¯apktool
å ·ä½æ¥éª¤ï¼
å°ä¸è½½ç两个å 解åå°åä¸ä¸ªæ件夹ä¸ï¼åºè¯¥ä¼æä¸ä¸ªæ件ï¼aapt.exeï¼apktool.batï¼apktool.jar
1.解å缩ä¸è½½ç两个æ件å ï¼apktool-install-windows-r-brut1.tar解å缩åå¾å°çå éæaapt.exe åapktool.bat.ï¼æ³¨æè¦æapktool1.4.1.tar解ååçä¸ä¸ª.jar æ件copyå°è§£ååç\apktool-install-windows-r-brut1æ件夹éï¼
2.ç¹å«æ³¨æï¼ä½ è¦åç¼è¯çæ件ä¸å®è¦æ¾å¨Cççæ ¹ç®å½é