关于使用python反编译apk签名出包的问题

 更新时间:2021年03月18日 11:01:09   作者:花了脸  
这篇文章主要介绍了使用python反编译apk签名出包,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

demo实现脚本下载

安装工具

需要python3,apktool.jar,apktool

1.用apktool进行反编译

cmd = 'apktool d -f '+apkPath+' -o '+outPath

2.修改需要配置的参数值

说明:如果是AndroidManifest.xml,注意在 parse 前 一定要设置namespace, 不然就会出现 ns0:name错误, 而不是预期的 android:name,设置namespace的方法 ET.register_namespace('android', "http://schemas.android.com/apk/res/android")

curPath = (apktoolPath+'/ihdrm202103161405apk/')
 tree = ET.parse(curPath + 'AndroidManifest.xml')  #打开xml
 root = tree.getroot() #找到manifest的根文件
 print(root.tag)    #我们输出一下就知道root目录就是manifest目录
 print(root.attrib)   #输出一下root目录的成员
 #获取package
 versionName = root.get('package')
 #修改
 root.set('package', 'com.youxi.jiayou')
 #获取application目录
 application = root.find('application')
 #遍历所有meta-data
 for item in application.iter('meta-data'):
  name = item.attrib.get(SPACE +'name')
  value = item.attrib.get(SPACE +'value')

3.修改应用名字

def appnamechang():
 print('--------修改应用名字完成--------')
 tree = read_xml(in_path)
 text_nodes = get_node_by_keyvalue(find_nodes(tree, "string"), {"name": "app_name"})
 change_node_text(text_nodes, "霸道传奇")
# write_xml(tree, "./strings的绝对路径.xml")
 write_xml(tree,apktoolPath+"/ihdrm202103161405apk/res/values/strings.xml")

4.修改icon图标

source_path = (apktoolPath+'/icon')
target_path = (apktoolPath+'/ihdrm202103161405apk/res')
def copy_search_file():
 print('--------修改icon成功--------')
 '''将一个目录下的全部文件和目录,完整地<拷贝并覆盖>到另一个目录'''
 # source_path 源目录
 # target_path 目标目录
 if not (os.path.isdir(source_path) and os.path.isdir(target_path)):
  return
 for a in os.walk(source_path):
#  #创建目录
  for d in a[1]:
   dir_path = os.path.join(a[0].replace(source_path,target_path),d)
   if not os.path.isdir(dir_path):
    os.makedirs(dir_path)
  #拷贝文件
  for p in a[2]:
   dep_path = os.path.join(a[0],p)
   arr_path = os.path.join(a[0].replace(source_path,target_path),p)
   shutil.copy(dep_path,arr_path)

5.删除签名回编译

cmd = 'apktool b -f '+outPath

6.创建证书

def createzu():
 cmd = 'keytool -genkey -alias jayoux.keystore -keyalg RSA -validity 20000 -keystore jayoux.keystore'
 print('-------- 创建证书--------')
 os.system(cmd)

到此这篇关于使用python反编译apk签名出包的文章就介绍到这了,更多相关python反编译apk内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解在OpenCV中如何使用图像像素

    详解在OpenCV中如何使用图像像素

    像素是计算机视觉中图像的重要属性。它们是表示图像中特定空间中光的颜色强度的数值,是图像中数据的最小单位。本文将详细为大家介绍如何在OpenCV中使用图像像素,感兴趣的可以了解一下
    2022-03-03
  • 详解Python中expandtabs()方法的使用

    详解Python中expandtabs()方法的使用

    这篇文章主要介绍了详解Python中expandtabs()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下
    2015-05-05
  • python解析发往本机的数据包示例 (解析数据包)

    python解析发往本机的数据包示例 (解析数据包)

    这篇文章主要介绍了使用python解析获取发往本机的数据包,并打印出来, 大家参考使用吧
    2014-01-01
  • python3 scrapy框架的执行流程

    python3 scrapy框架的执行流程

    Scrapy的安装有多种方式,它支持Python2.7版本及以上或Python3.3版本及以上。下面说明python3 scrapy框架的常用命令及框架执行流程,感兴趣的朋友一起看看吧
    2021-07-07
  • 玩转python爬虫之正则表达式

    玩转python爬虫之正则表达式

    这篇文章主要介绍了python爬虫的正则表达式,正则表达式在Python爬虫是必不可少的神兵利器,本文整理了Python中的正则表达式的相关内容,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • 浅谈Django中的数据库模型类-models.py(一对一的关系)

    浅谈Django中的数据库模型类-models.py(一对一的关系)

    今天小编就为大家分享一篇浅谈Django中的数据库模型类-models.py(一对一的关系),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python+Kivy编写一个乒乓球游戏

    Python+Kivy编写一个乒乓球游戏

    Kivy 是用 Python 和 Cython 编写的,基于 OpenGL ES 2,支持各种输入设备并拥有丰富的部件库。本文将教你如何使用 Kivy 编写一款乒乓球游戏,感兴趣的可以动手试一试
    2022-05-05
  • Python使用pyecharts控件绘制图表

    Python使用pyecharts控件绘制图表

    这篇文章介绍了Python使用pyecharts控件绘制图表的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 如何使用Python+ChatGPT批量生成论文

    如何使用Python+ChatGPT批量生成论文

    这篇文章主要介绍了用Python+ChatGPT批量生成论文,我用python+GPT-3 API开发了一个工具,可以直接从arxiv地址生成论文概述,需要的朋友可以参考下
    2023-02-02
  • Tornado 多进程实现分析详解

    Tornado 多进程实现分析详解

    这篇文章主要介绍了Tornado 多进程实现分析详解,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01

最新评论