• 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文件

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

  • 相关阅读:
    动态规划最大利润的问题
    【转】mysql基础汇总
    mac使用frida
    Mac 下python3 [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 解决方法
    mac使用jadx逆向app
    python桶排序代码
    requests_html使用asyncio
    async for的使用
    [转载]微信企业号:企业客户的移动应用入口
    微信服务号、订阅号、企业号差别
  • 原文地址:https://www.cnblogs.com/wslio/p/13534044.html
Copyright © 2020-2023  润新知