apk逆向之1——各类文件获取与转换-apk是什么文件

apk逆向之1——各类文件获取与转换-apk是什么文件

写文章仅仅是为了整理,分享希望得到大神们的评论指点,让自己得到更好的提升。

dex:直rar等解压apk 获得dex文件,或用apktool.jar反编译。

java -jar apktool.jar d xxx.apk

jar:用dex2jar工具把dex文件转换成jar包,jar文件可以用jd-gui工具直接打开查看java代码。

smali:androidkiller可以把dex文件直接转换为delivk 汇编smali文件(jeb工具它可以直接将smali源码翻译成java代码)。

xml、其他资源文件:通过上面的apktool.jar反编译时得到。

so:直接用rar等解压软件解压。(然后可用ida软件直接打开,可以看到arm汇编或c的伪代码)

apk :用反编译得到的smali源码、xml资源文件等回编译,并签名获得(signapk.jar是签名工具),可以用下面的命令完成(也可以借助androidkiller工具apkIDE等)。

===================

cd C:\Users\czg\Desktop\apktools\apktool_2.0.0rc4

java -jar apktool.jar b -d myLoc -o debug.apk (myLoc是反编译得到目录,这个命令会得到一个没有签名的apk)

java -jar .\sign\signapk.jar .\sign\testkey.x509.pem .\sign\testkey.pk8 debug.apk debug.sig.apk(给之前的apk签名,testkey是系统默认的签名文件,我们用esclpse 或android studio 等ide工具开发项目时,就是用这个默认的签名文件进行签名)

adb uninstall com.younghare.controller(手机中卸载已经安装的apk)

adb install debug.sig.apk(安装apk到手机)

adb shell am start -n com.younghare.controller/.Loading(启动apk的启动activity)

注:

  • 当然还有其他不少工具,比如APK Multi Tool(非常强大)

  • 签名文件可以在......\android_project\build\target\product\security中找到,包括media.pk8、media.x509.pem、platform.pk8、platform.x509.pem、shared.pk8、shared.x509.pem、testkey.pk8、testkey.x509.pem等签名文件

分享是一种美德,牵手是一种生活方式。

推荐阅读