1.怎么反编译安卓apk
2.如何反编译apk文件得到源码和XML文件
3.å¦ä½è¿è¡APKåç¼è¯
怎么反编译安卓apk
需要准备的源译工具:电脑,反编译工具ILSpy。码编1、源译首先在百度上搜索下载反编译工具ILSpy,码编解压后如图,源译双击.exe文件打开解压工具。码编金牛线源码
2、源译选择file选项,码编点击“打开”。源译
3、码编接着选择要反编译的源译文件,点击“打开”。码编
4、源译这是码编会出现一个对话框,在这个对话框里面就可以看到源码了。源译dotnetcasclient 源码
5、如果想把源码保存下来,自己在源码的基础上修改,点击"file"下的“Save code...”,保存即可。
6、如需用vs打开反编译后的源码,只需要打开这个.csproj文件即可。abstractdatasource源码
如何反编译apk文件得到源码和XML文件
最近因为一些事所以需要得到师兄的某个apk的源代码,但师兄说那个项目包已经删了,哎,没办法,只能自己想办法了。后来找到了反编译apk的方法,现在拿出来分享下。stringbuilder源码其实这个方法网上都有,我只是记载一下自己这段时间的学习情况。
1.下载工具
首先,要反编译需要下面这
4个工具:
dex2jar:将apk中的classes.dex转化成Jar文件。
JD-GUI:反编译工具,可以直接查看Jar包的源代码。
apktool:反编译工具,stringbuffer源码通过反编译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)
å¦ä½è¿è¡APKåç¼è¯
å¦ä½è¿è¡APKåç¼è¯
æ们ä¸è½½å°æäºapkçæ¶åï¼å¯è½æ»æ³å¦ä¹ ä¸å«äººæ¯æä¹è¿è¡ç¨åºè®¾è®¡çï¼æè ææ ·ä½¿ç¨xmlæ件å¸å±çï¼è¿æ¶å°±æ³å°å°apkæ件çåç¼æ¹ä¸ºrar并解åï¼æç»å¾å°ä¸äºå¾çèµæºåå¾å¤æå¼ä¸ºä¹±ç çæ件ï¼å¯è§è¿ç§æ¹å¼ä¸å¯è¡ï¼è¿å°±éè¦ä½¿ç¨ä¸é¢çå·¥å ·å¯¹apkè¿è¡åç¼è¯äºã
ä¸ãå·¥å ·åå¤ï¼apktoolãdex2jarãjd-gui
å·¥å ·å ä¹å¯ä»¥å¨è¿éä¸è½½ã
1ãdex2jarå¯ä»¥å¨è¿éä¸è½½ï¼jd-guiå¯ä»¥å¨è¿éä¸è½½ã
2ãapktoolï¼å¯ä»¥å°Googleå®æ¹ä¸è½½ï¼apktool-1.0.0.tar.bz2ï¼éé¢æapktool.jarï¼åapktool-install-windows-2.1_r-1.zip两个å é½è¦ä¸ã解åapktool.jarå° C:\Windowsï¼è§£åapktool-install-windows.zipå°ä»»ææ件夹ï¼ä¾å¦Eçæ ¹ç®å½ï¼ã
äºã使ç¨dex2jar + jd-gui å¾å°apkçjavaæºç ï¼æ¥éª¤å¦ä¸ï¼
1ãç¨.raræå¼apkææ¡£ï¼å°classes.dexæ件解ååºæ¥ï¼ç¶å使ç¨å·¥å ·åç¼è¯æ.jaræ件ã
å¨cmdä¸è¿å ¥dex2jar.batæå¨è·¯å¾ï¼ç¶åè¾å ¥âdex2jar.bat XXXâï¼XXXæçæ¯ä½ è¦åç¼è¯çapkä¸çclasses.dexæ件æå¨è·¯å¾åå称ï¼æ¯å¦ï¼æçdex2jar.batå¨D:\Android\apk_decode\dex2jar-0.0.7-SNAPSHOTè·¯å¾ä¸ï¼classes.dexå¨D:\Androidä¸ï¼æä»¥ä½ è¿å ¥å°dex2jar.batè·¯å¾åï¼è¾å ¥dex2jar.bat D:\Android\classes.dexï¼è¿æ ·ä¼çæä¸ä¸ªjaræ件ã
2ãç¨jd-guiåç¼è¯å·¥å ·å°å¾å°.jaræ件åç¼è¯æ.javaæ件ã
ä¸ã使ç¨apktoolå¾å°apkçxmlæ件
1ãWin+R è¿è¡CMDï¼ç¨cdå½ä»¤è½¬å°apktool-install-windowsæå¨æ件夹ï¼è¾å ¥å½ä»¤ï¼
apktool d XXX.apk ABC åç¼è¯XXX.apkå°æ件夹ABC
2ã å¨è§£ååçæ件夹ä¸å¯ä»¥å¾å°apkçxmlé ç½®æ件ã
åã第äºæ¥å¾å°çç¨åºæºä»£ç å第ä¸æ¥å¾å°çxmlæ件ç»åä¸ï¼å°±æä¸ä¸ªandroidå·¥ç¨ï¼å³å¯å¾å°å®æ´çapkæºç ã