Android反编译 打包 签名

Android反编译 打包 签名

1、反编译

工具:apktool、jadx、java环境

apktool:主要用来反编译和打包
链接: https://pan.baidu.com/s/1Alk6C1PEG2hJyfrtXeXzbA
提取码: kai2

jadx:主要用来获取apk文件的java源代码
链接: https://pan.baidu.com/s/12UKaE9B0jkpOc5JOWgstbA
提取码: xryc

java环境可以自己百度,狗哥再次不再累述。

反编译apk文件

获取apk的资源文件,如果要修改apk文件,在这里面修改相关文件即可
以下是python语言编写,其他语言也类似。

def parser_apktool(apk_dir):
    '''
    对于apk包进行解析
    apk_dir: apk文件的地址
    root_apktool:apktool的绝对路径,eg:'D:\apktool\apktool-2.4'
    :return:
    '''
    dirname, filename = os.path.split(apk_dir)
    apk_file_dir = dirname + '/' + filename.replace('.apk', '')     #反编译的文件地址
    ResultFile = os.system(
        'java -jar ' + root_apktool + "/apktool_bsf.jar" + ' d -f ' + apk_dir + " -o " + apk_file_dir)
    if ResultFile == 0:
        print('成功')

也可以直接在命令行执行:
java -jar root_apktool/apktool_bsf.jar<apktool_bsf.jar的路径> d -f apk_dir<apk文件路径> -o apk_file_dir<文件输出路径>

2、获取apk的java源代码

可以利用java文件查看apk文件的代码逻辑
下载上文中jadx的压缩包,解压,双击‪…jadx-1.1.0/bin/jadx-gui.bat即可调出ui界面
在这里插入图片描述
将apk文件拉入左侧边框即可;
在这里插入图片描述
便可获取apk文件的java源代码;

3、打包

apk修改好后,对文件进行修改编译也完成了,就需要进行对apk的文件夹数据进行打包回apk文件了;
获取apk的资源文件,如果要修改apk文件,在这里面修改相关文件即可
以下是python语言编写,其他语言也类似。

def form_pack(apk_file_dir):
	'''
    对于apk文件夹数据进行打包,重新打包为apk文件
    apk_file_dir: apk数据文件夹的地址
    root_apktool:apktool的绝对路径,eg:'D:\apktool\apktool-2.4'
    target_file_dir:apk文件的输出地址
    :return:
    '''
    target_file_dir = apk_file_dir + '.apk'
    ResultFile = os.system(
        'java -jar ' + root_apktool + "/apktool_bsf.jar" + ' b ' + apk_file_dir + " -o " + target_file_dir)
    if ResultFile == 0:
        print('成功')

也可以直接在命令行执行:
java -jar root_apktool/apktool_bsf.jar<apktool_bsf.jar的路径> b apk_file_dir<文件输出路径> -o target_file_dir<apk文件路径>

4、签名

apk文件打包好后必须得有签名的,不然无法正常安装使用

在cmd中执行命令keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -validity 10000 并回车

输入密匙库口令【密匙口令 (自己设置) 即为密码,最好设成数字,记住就行】+回车建

后面都是自己输入后以回车键结束,最后  是否输入正确输入 y。

一直回车。。。。就可以生成签名证书,建议回车使用同一个密码

如何对Android的APP进行签名

现在进入到目录bin就可以找到debug.keystore这个文件了。

好了,这个文件就是用来对Android的APP进行签名的签名证书。

个人觉得应该把这个文件上传到你自己的网盘中保存好,因为后面对APP进行签名时要用到同一个签名证书,签名证书不同会导致签名后的APP无法再手机上运行。

如何对Android的APP进行签名

签名文件生成后,便需要对apk文件进行签名了。

def qianming_pack(password, keystore_path, apk_dir, apk_qianming_dir):
    '''

    :param password: 获取签名文件时的密码
    :param keystore_path: 签名文件的绝对路径
    :param apk_dir: 未签名的apk文件路径
    :param apk_qianming_dir:    签名后的apk文件路径
    keystore_alise: 别名 《直接写签名文件的名称就可以了,不要带后缀》
    :return:
    '''
    dirname, keystore_alise = os.path.split(keystore_path)
    ResultFile = os.system(
        'jarsigner -verbose -storepass ' + password + " -keypass " + password + ' -keystore ' + keystore_path + " -signedjar "
        + apk_dir + ' ' + apk_qianming_dir + ' ' + keystore_alise)
    if ResultFile == 0:
        print('成功')

也可以直接在命令行执行:
'jarsigner -verbose -storepass password<签名的密码> -keypass password<签名的密码> -keystore keystore_path<签名文件路径> -signedjar apk_dir<未签名apk文件路径> apk_qianming_dir<签名后的apk文件输出路径> keystore_alise<别名,直接写签名文件名称就可,记得去掉后缀>

就此,我的android反编译流程的整个流程已经结束,提示下,最好使用git保持apk文件的版本更新,避免改到不该改的东西,不然会很难受,一起跟狗哥前进吧!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值