• 安卓逆向之apk重打包


    在学习《Android 软件安全权威指南》第二章对apk文件反编译后修改smail文件跳转指令实现程序无条件注册时遇到了一些问题

    APK重打包流程

    重新编译APK

    修改apk反编译的smail文件后需要利用apktool重新编译成apk文件。执行apktool b apk反编译的文件夹路径,执行之后生成一个bulid文件夹和dist文件夹,其中dist文件夹中存储的是重新编译的apk文件

    对apk做4字节对齐

    在使用命令行打包apk时,由于命令行打包直接将resources.arsc进行压缩而无法在后期的android版本上运行。使用JAVA sdk的build-tools中的zipalign.exe对apk做4个字节对齐,执行zipalign -v -p 4 infile.apk outfile.apk

    对apk进行V2签名

    未签名的apk文件无法在android系统上运行,通过使用java sdk的build-tools目录的lib中的apksigner.jar对对齐后的apk进行V2签名。通过keystore签名文件

    / --ks [签名证书路径]
    // --ks-key-alias [别名]
    // --ks-pass pass:[KeyStore密码]
    //  --key-pass pass:[签署者的密码]
    //  --out [output.apk] [input.apk]
    
    java -jar apksigner.jar sign --ks keystore路径 --ks-key-alias keystore别名 --ks-pass pass:keystore密码 --key-pass pass:keystore密码 --out output.apk input.apk
    
    

    安装并运行重打包的apk

    利用adb指令,安装apk:adb install apk路径,运行apk:adb shell am start -n packagename/launch activityname(packagename是包的名字,lauch activityname是activity的名字)

    利用signapk进行V1签名和利用apksigner进行V2签名

    高版本的android系统apk必须采用v2签名,而使用signapk进行V1签名的apk无法在高版本的android上运行。

    生成keystore

    利用jdk(对于android studio默认的jdk是位于其目录下的jre)的bin目录下的keytool.exe生成keystore文件,keytool -genkey -alias keystore别名 -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
    然后填写passward后再填写基本信息,最后按y后回车确定。

    adb安装debug的apk出错

    如果直接adb install debug的apk会报错,我们需要运行adb install -t debug的apk

  • 相关阅读:
    使用charles proxy for Mac来抓取手机App的网络包
    NProxy——Mac和Linux平台下的Fiddler
    NProxy——Mac和Linux平台下的Fiddler
    NProxy——Mac和Linux平台下的Fiddler
    【HTTP】Fiddler(二)
    ORA-12541: TNS: 无监听程序、监听程序当前无法识别连接描述符中请求的服务
    一些网站
    oracle 11g 创建普通用户
    ORACLE VARCHAR2
    LEFT JOIN , RIGHT JOIN ,INNER JOIN
  • 原文地址:https://www.cnblogs.com/revercc/p/16120665.html
Copyright © 2020-2023  润新知