• APK反编译 修改APK源码文件 重新打包APK踩坑日记


    1.准备软件

    下载地址:
    链接: https://pan.baidu.com/s/1PLUKrjNHio9EYDl9eCckXw 提取码: rhvr

    2.软件用途

    解压下载的压缩包, 有以上三个文件
    baksmali-2.0.3.jar工具, 可将解压缩后apk目录下的classes.dex文件转为smali文件, 后面对源码的修改, 就是针对smali文件的修改
    
    smali-2.0.3.jar工具, 可将smali文件重新转为classes.dex文件, 用重新生成的dex文件替换之前解压apk目录下的dex文件, 这样apk源码的修改就成功了
    
    sign_tool目录下的signapk.jar是个签名工具, 替换了dex文件的apk要重新签名, 才能正常安装到手机

    3.解压apk获取classes.dex文件

    apk文件可通过zip工具直接解压, 或通过修改apk为压缩文件类型在通过zip解压工具解压
    解压后的apk目录下, 有classes.dex文件, apk源码全部编译到了该文件

    4.修改smali类型源码文件

    但classes.dex文件是无法直接查看或修改的
    我们需要将classes.dex文件转为smali类型的文件, 才能修改查看源码
    
    步骤:
    进入apk的解压目录下, 可以看到classes.dex
    
    使用cmd命令转化dex文件为smali文件:
    java -jar baksmali-2.0.3.jar -x classes.dex
    
    执行完后会在当前目录生成out目录, 可以在该目录找到与源码对应的smali文件
    可以使用文本编辑工具, 修改smali文件, 推荐使用Notepad++修改smali类型文件

    5.重新打包

    smali源码文件修改完后, 需要重新打包回dex文件, 新的dex替换老的dex, 即可实现对apk的修改
    
    在有out目录的同级目录下cmd命令:
    java -jar smali-2.0.3.jar -o classes.dex out
    执行完后, 会生成新的classes.dex, 老的dex会被覆盖
    
    使用系统自带的压缩工具, 将新classes.dex替换到apk并保存实现源码替换
    
    最后重要的一步, 重新签名apk文件
    把替换好dex文件的apk复制到sign_tool目录下
    执行cmd命令:
    java -jar signapk.jar platform.x509.pem platform.pk8 test.apk newtest.apk
    
    说明:
    test.apk是需要重新签名的apk文件
    newtest.apk是新签名后的apk文件

    至此, 大功告成, 完结撒花~

  • 相关阅读:
    使用HttpClient发送请求、接收响应
    jdbc操作
    数据库通用Jdbc操作
    将WSDL文件生成的Java文件
    数据结构_线性表_链表实现
    15年第六届蓝桥杯第七题_手链样式_(stl_string)
    16年第七届蓝桥杯第九题_密码脱落_(贪心)
    16年第七届蓝桥杯第七题_剪邮票
    16年第七届蓝桥杯第三题_方格填数
    Codeforces_789C_(dp)
  • 原文地址:https://www.cnblogs.com/shuaiwu1108/p/13534044.html
Copyright © 2020-2023  润新知