apktool 反编译/回编译/smali注入

Posted by API Caller on November 29, 2018

以一次实际操作为例.

本文环境

  • Windows 10 x64
  • Apktool v2.3.4

具体流程

  • 反编译 apk
    1
    2
    3
    
      # 可以不反编译资源文件, 防止回编失败
    	
      apktool d kaola.apk 
    
  • 利用 hook loadClass 之类的手段, 找到尽可能早加载的目标类, 注入 smali.

  • 回编译 apk
    1
    2
    3
    4
    
      # 指定路径
      apktool b kaola -o kaola-unsigned.apk
      # -f --use-aapt2
      # issues/1824
    
  • 生成证书 kaola.keystore
    1
    
      keytool -genkey -keystore kaola.keystore  -alias kaola  -keyalg RSA -validity 10000
    
  • 重新签名 apk
    1
    
      jarsigner -verbose -keystore kaola.keystore -signedjar kaola-signed.apk kaola-unsigned.apk kaola