先收藏几篇文章:
Android反编译Apk,修改资源,重新打包,签名发布
apktool重打包失败原因之一分析:
数据存储安全之AES 加密
Android反编译三件套 apktool 、dex2jar、jd-gui
使用apktool反编译apk
cd到D:\TESTCODE\android\android反编译三件套目录下
输入java -jar apktool_2.3.4.jar d -f yv.apk -o vpn
yv.apk (要反编译的apk名字) vpn(反编译后存到vpn目录下),注:我的yv.apk和apktool 、dex2jar、jd-gui 处于同一目录下。

3.查看vpn目录下的反编译情况

4.使用dex2jar反编译apk得到Java源代码
将yv.apk解压将其中的classes.dex文件放到dex2jar-2.0 目录下

5.dos命令定位到dex2jar.bat所在目录,输入”d2j-dex2jar classes.dex”,效果如下:


6.使用【jd-gui】工具将class文件反编译成java源代码
双击jd-gui.exe 将classes-dex2jar.jar 拖入jd-gui.exe即可

之后找到源码后修改smail文件中的内容,然后重新打包:
java -jar apktool.jar b test1
打包完成在test1/dist中找到apk移动到autosign文件夹当中执行命令进行签名.,
java -jar signapk.jar testkey.x509.pem testkey.pk8 ai.apk aixiugai.apk
这样就ok了.
参考:https://blog.csdn.net/s13383754499/article/details/78914592
也有在线反编译的工具 http://www.javadecompilers.com/jad
上面过期了,需要用jadx工具打开,另外需要用模拟器获取root权限,使用frida来实现手机root运行手机端,电脑运行python frida-dump来获取dex
运行命令
frida-ps -U 这个命令查看是否连接成功
adb push strongR-frida-android-xxx /data/local/tmp/test_srv 把frida推送到模拟器中
/hulu -l 0.0.0.0:8887 & 手机模拟器运行服务
adb forward tcp:8887 tcp:8887 转发模拟器和电脑的端口一致
# -d 代表 deep-search,专门对付这种内存访问限制 # –sleep 10 是为了等加固壳完全解压后再动手
frida-dexdump -U -n com.lycoo.lancy.ktv -d –sleep 10
frida-dexdump -H 127.0.0.1:8887 -U -n KTV -d –sleep 10 等待10秒深度获取dex
脱壳命令:frida-dexdump -H 127.0.0.1:8887 -n com.lycoo.lancy.ktv
完了使用python脚本修复dex用jadx打开搜索关键词
转载请注明:稻香的博客 » Android反编译Apk,修改资源,重新打包,签名发布