1.app安全之反编译(一)
2.只有jar包反编译后得到java源码(只有java源码)怎么把源码编译成apk软件?
3.如何反编译apk文件得到源码和XML文件
4.å¦ä½è·åapp çå
ååactivity å
app安全之反编译(一)
以往安全研究者关注的源码多是移动应用的本地安全,例如远程控制、源码应用破解及信息窃取等,源码然而忽视了服务端安全。源码服务端的源码安全问题普遍存在,如SQL注入、源码不带未来函数买卖指标源码文件上传、源码中间件或服务器漏洞等。源码移动应用通过web API服务与服务端交互,源码这种模式将移动安全与web安全紧密相连。源码然而,源码部分应用不直接嵌入网页,源码而是源码源码进行制作通过API接口返回JSON数据,这使得扫描器和爬虫无法获取链接。源码
在iOS系统中,源码由于无法进行反编译,安全专家通常借助反汇编工具,如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包、修改指定文件、删除签名文件夹、重新打包并签名后安装。
为确保分享的资源与工具的时效性与实用性,我运营着一个公众号,每日分享安全资料与工具,欢迎关注。
只有jar包反编译后得到java源码(只有java源码)怎么把源码编译成apk软件?
你试试先使用dx工具将.class文件转换成一个dex文件,如果你有资源文件的话然后使用aapt工具将你的资源文件进行压缩打包,最后把前两步的文件用apkbuilder工具打包成APK
如何反编译apk文件得到源码和XML文件
最近因为一些事所以需要得到师兄的某个apk的源代码,但师兄说那个项目包已经删了,哎,没办法,只能自己想办法了。后来找到了反编译apk的方法,现在拿出来分享下。其实这个方法网上都有,我只是记载一下自己这段时间的学习情况。
1.下载工具
首先,要反编译需要下面这
4个工具:
dex2jar:将apk中的classes.dex转化成Jar文件。
JD-GUI:反编译工具,可以直接查看Jar包的源代码。
apktool:反编译工具,通过反编译APK中XML文件,直接可以查看。
apktool-install-windows-r-ibot:辅助windows批处理工具。
2.解压apk
直接右键解压apk就行了,这没什么好说的。解压后会有个dex后缀的文件,下面会用到
3.反编译dex文件
1)解压下载的dex2jar,把解压后的文件夹放到系统盘跟目录中并把这个目录加到系统path变量中,就可以直接用:dex2jar.bat或dex2jar.sh转换dex文件了。
2)DOS行命令如下:dex2jar.bat
xx\classes.dex(xx是classes.dex文件所在的路径)。
将在同目录得到普通jar包:classes_dex2jar.jar,就可以用处理普通jar包的方法来反编译这个jar包得到原文件。
4.反编译jar文件
1)解压压缩文件JD-GUI
2)运行该文件夹里的jd-gui.exe,打开上面生成的jar包,
即可看到源代码了。
5.反编译xml文件
为什么要发编译xml文件呢?因为直接解压apk得到的xml文件是乱码来的,我们需要用工具把它调会正常来
具体操作方法:
1)将下载的apktool和apktool-install-windows-r-ibot两个包解压到同一个文件夹下,这个文件夹有三个文件:aapt.exe,apktool.bat,apktool.jar。
2)把这个文件夹也放到系统盘的根目录中并把这个目录加到path变量中。以HelloWord.apk为例:
3)在DOS命令行中输入:apktool
d
xx\HelloWord.apk
HelloWord得到HelloWord文件夹,此文件夹中的xml文件就是编译好的可以正常查看的文件。
6.后话
不过,说到底反编译还是反编译,还是不能完全地还原出真正的源代码的,比如一般会出现下面这样的问题:
setContentView();
在真正的源代码中其实是这样的:
setContentView(R.layout.welcome)
å¦ä½è·å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