zoukankan      html  css  js  c++  java
  • 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文件

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

  • 相关阅读:
    PS只能各个工具使用的注意知识点
    怎样利用自动化工具做真实的项目
    抖音视频、新浪微博、今日头条、拼多多砍价 、淘宝业务、快手、小红书、大众点评刷数据
    前端开源实战项目推荐
    提问的智慧
    论程序员为何加班—我的工作日常
    大白话入门 Spring Cloud
    Java 书单
    Spring Boot 经典开源项目推荐
    Flash 终将谢幕:微软将于年底( 2020 年 )停止对 Flash 的支持
  • 原文地址:https://www.cnblogs.com/wslio/p/13534044.html
Copyright © 2011-2022 走看看