1.app安全之反编译(一)
2.å®å4.0å¦ä½åç¼è¯resources.arsc
app安全之反编译(一)
以往安全研究者关注的源码多是移动应用的本地安全,例如远程控制、编译应用破解及信息窃取等,源码然而忽视了服务端安全。编译服务端的源码安全问题普遍存在,如SQL注入、编译源码资本趣店文件上传、源码中间件或服务器漏洞等。编译移动应用通过web API服务与服务端交互,源码这种模式将移动安全与web安全紧密相连。编译然而,源码部分应用不直接嵌入网页,编译而是源码通过API接口返回JSON数据,这使得扫描器和爬虫无法获取链接。编译
在iOS系统中,源码由于无法进行反编译,安全专家通常借助反汇编工具,nginx 压缩源码如IDA,来分析应用逻辑。对于已越狱的iOS设备,IDA、classdump等工具可以辅助进行分析。在Android系统中,应用反编译则更为常见,通常使用apktool、杂牌手机源码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包、修改指定文件、删除签名文件夹、重新打包并签名后安装。
为确保分享的资源与工具的时效性与实用性,我运营着一个公众号,每日分享安全资料与工具,欢迎关注。
å®å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ççæ ¹ç®å½é