1,android逆向你要懂,apktool可以配置到系统变量path上,可全局使用,也可以在文件内使用
apktool工具进行反编译,apktool d -f d:\test.apk -o d:\test
然后反编译得到的是
这些文件都能进行修改, smali文件就是和java文件对应的;
删除original签名,删除res里values的public.xml文件,该文件二次打包的时候会生成
res里values的id.xml文件就是资源id文件,变化的id需在上面修改,多了无碍,少了二次打包会提示错误找不到资源
替换smali文件的时候要注意包名和之前保持一致,被引用的方法名,属性值,返回值不能变;
apktool工具进行反编译,apktool b -f d:\test -o d:\test.apk二次打包
然后使用apksign进行签名
配置apktool环境 环境变量path
apktool d test.apk -o c:\test
apktool d -f c:\test.apk -o c:\test 命令,把 test.apk 反编译,反编译后的文件放入 c 盘下的 test 文件中
jarsigner -verbose -keystore debug.keystore -signedjar test2.apk tap_unsign1.apk timdong
jarsigner -keystore gm88keystore -storepass 123456 -signedjar dist.apk -digestalg SHA1 -sigalg MD5withRSA $1 gm88
gradlew app:dependencies as命令分析架包冲突
keytool -genkeypair -v -keyalg DSA -keysize 1024 -sigalg SHA1withDSA -validity 20000 -keystore D:\jiangwei.keystore -alias jiangwei -keypass jiangwei -storepass jiangwei
在用jarsigner工具进行签名
jarsigner -verbose -sigalg SHA1withDSA -digestalg SHA1 -keystore D:\jiangwei.keystore -storepass jiangwei D:\123.apk jiangwei
查看签名文件jks信息
keytool -list -v -keystore C:\Users\GM88\Desktop\jz_key.jks
输入密钥库口令:
jarsigner -digestalg SHA1 -sigalg SHA1withRSA(或SHA1withDSA) -verbose -keystore xxx.jks -storepass jz1234(密码) -signedjar xxx.apk(签名后的apk名字) xxx.apk(需要签名的apk) xxx(keystore别名)
示例;
jarsigner -digestalg SHA1 -sigalg SHA1withRSA -verbose -keystore jz_key.jks -storepass jz1234 -signedjar sign_ok.apk 123.apk jzkey
smali2java和java2smali工具的合理使用,就是smali和java文件的相互转换
一般签名使用的是v1和v2同时使用,为了兼容手机
zipalign压缩对齐apk
jadx-gui-0.9.0查看apk
jdgui 查看jar
使用7-Zip能对jar替换删除里面的class文件