【APKtool】APKtool实现某瓣APP重签名

news2024/11/24 3:27:25
APP name

在这里插入图片描述

重打包

在这里插入图片描述

重打包完成

开始签名

apktool签名
使用 APKtool 或其他工具生成的签名文件与原始签名文件的区别主要在于它们使用的密钥和证书可能不同。当你使用 APKtool 对 APK 文件进行反编译、修改后再重新打包时,你通常需要使用一个新的密钥和证书对修改后的 APK 文件进行签名,因为你可能没有原始的签名密钥。这种情况下,生成的签名文件与原始的有以下区别:

1. **不同的密钥**:
   - 原始的 APK 文件是由开发者或发布者使用他们的私有密钥进行签名的。如果你没有这个私有密钥,你不能生成与原始签名相同的签名文件。
   - 使用 APKtool 重新签名时,你将使用一个新的密钥(你自己生成的或者是一个调试密钥)来签名 APK。

2. **不同的证书**:
   - 签名文件包含了与私有密钥关联的公开证书。如果你使用一个新的密钥进行签名,那么签名文件中的证书也将是不同的。

3. **安全性和信任级别**:
   - 原始签名由应用的开发者或发布者创建,通常与他们的信任和认证相关联。用户和设备通常信任这个签名。
   - 使用新密钥签名的 APK 文件可能不会被用户或设备以相同的方式信任,尤其是如果它试图替换一个已经在用户设备上安装的应用。

4. **更新和兼容性问题**:
   - 如果一个应用已经安装在用户的设备上,那么只有使用相同的签名密钥签名的更新才能被安装。使用不同的密钥签名的 APK 文件将无法作为更新安装。

5. **应用商店政策**:
   - 应用商店,如 Google Play,要求应用使用开发者账户下的密钥进行签名。使用不同的签名密钥可能会违反应用商店的政策。

总的来说,使用 APKtool 生成的签名文件在技术上与原始签名文件不同,因为它们使用了不同的密钥和证书。这种差异在安全性、信任级别和应用更新方面有重要影响。在进行 APK 的修改和重新签名时,应该意识到这些差异,并考虑到相关的法律和安全问题。
1.生成key文件

在这里插入图片描述

keytool -genkey -alias new.keystore -keyalg RSA -validity 20000 -keystore new.keystore

指令理解:

这段代码是使用 Java `keytool` 工具的命令行,用于生成一个新的密钥库(keystore)文件,并在其中创建一个新的密钥条目。下面是命令各部分的详细解释:

- `keytool`:这是 Java 开发工具包(JDK)中包含的密钥和证书管理工具。

- `-genkey`:这个选项告诉 `keytool` 生成一个新的密钥对(公钥和私钥)。

- `-alias new.keystore`:这里的 `-alias` 选项后面跟着的是密钥条目的别名。在这个例子中,别名被误写为 `new.keystore`,通常别名应该是一个简单的标识符,比如 `mykey`。

- `-keyalg RSA`:这个选项指定生成密钥对时使用的加密算法,这里使用的是 RSA 算法。

- `-validity 20000`:这个选项设置密钥对的有效期,单位是天。在这个例子中,密钥对的有效期被设置为 20000 天。

- `-keystore new.keystore`:这个选项指定密钥库文件的名称。如果文件不存在,`keytool` 将创建一个新文件。如果文件已存在,`keytool` 将把新的密钥条目添加到现有密钥库中。在这个例子中,密钥库文件的名称被设置为 `new.keystore`。

执行这个命令后,通常会提示你输入密钥库的密码,以及新密钥条目的相关信息,如你的姓名、组织和地理信息等。这些信息将被用来创建一个自签名的证书,它与新生成的密钥对关联,并存储在密钥库文件中。

这个命令通常用于为 Java 应用程序或 Android 应用程序生成签名密钥,这些密钥用于在发布时对应用程序进行签名,以确保应用程序的完整性和来源可信。

秘钥库口令:123456

在这里插入图片描述

移动apk到key文件的同名目录中

2.签名APK

命令:

jarsigner -verbose -keystore new.keystore -signedjar news-douban7.18.apk build-douban7.18.apk new.keystore

jarsigner -verbose -keystore new.keystore -signedjar news.apk old.apk new.keystore

在这里插入图片描述

完成签名,得到新的apk。

在这里插入图片描述

在这里插入图片描述

显示签名不成功

重新签名并重装试试

可能是手机没有root

在这里插入图片描述

用模拟器打开就成功了。

在这里插入图片描述

在这里插入图片描述

Frida检测

在这里插入图片描述

9 frida 检测

1、D-Bus

Frida 使用 D-Bus 协议通信,可以遍历 /proc/net/tcp 文件,或者直接从 0-65535

向每个开放的端口发送 D-Bus 认证消息,哪个端口回复了REJECT,就是 frida-server

2、端口检测

通过检测默认端口 27042 是否开放来检测frida是否开启,只需要启动时指定端口即可绕过

3、进程名检测

进程名检测,遍历运行的进程列表,检测 frida-server 是否运行

4、默认路径

frida 默认会在 /data/local/tmp/re.frida.server/frida-agent-64.so 中存放 frida-agent ,可

以查找此路径下是否存在对应文件

5、扫描maps文件

maps 文件用于显示当前app中加载的依赖库

Frida在运行时会先确定路径下是否有 re.frida.server 文件夹

若没有则创建该文件夹并存放 frida-agent.so 等文件,该so会出现在 maps 文件中

解决方法
1.改变端口

在这里插入图片描述
在这里插入图片描述

2.对文件名哈希

在这里插入图片描述

app开启后,可以关闭frida server。

检测点很多的话,需要Xposed。

JAR 包的作用:

  1. 封装:JAR 文件可以将 Java 类文件、相关的元数据和资源文件(如文本、图片和配置文件)封装在一个单一的文件中,便于传输和部署。

  2. 模块化:JAR 文件支持模块化编程,允许开发者将应用程序或库划分为可重用的组件。

  3. 安全性:JAR 文件可以签名,以确保文件的完整性和来源安全。

  4. 执行:可执行的 JAR 文件包含一个特定的清单文件,该文件指定了应用程序的入口点(main 方法所在的类),使得 JAR 可以作为独立的应用程序运行。

举例说明:

一个常见的例子是使用 JAR 文件来分发 Java 库或框架。例如,Apache Commons Lang 是一个提供额外 Java 核心类库功能的库,它被打包成一个 JAR 文件。开发者可以将这个 JAR 文件添加到他们的项目中,来使用其中的实用程序类和方法。

另一个例子是分发桌面应用程序。Java 开发的应用程序可以被打包成一个 JAR 文件,用户可以通过双击 JAR 文件来运行应用程序,前提是他们的系统上已经安装了 Java 运行时环境(JRE)。

如何打开 JAR 包:

  1. 作为 ZIP 文件:由于 JAR 文件基于 ZIP 格式,你可以使用任何支持 ZIP 格式的文件压缩工具(如 WinRAR、7-Zip)来打开和查看 JAR 文件的内容。

  2. 使用命令行:在支持 Java 的命令行环境中,你可以使用 jar 工具来查看、提取或运行 JAR 文件。例如,查看 JAR 文件内容的命令是:

    jar tf myapp.jar
    

    提取 JAR 文件内容的命令是:

    jar xf myapp.jar
    

    运行 JAR 文件的命令是:

    java -jar myapp.jar
    
  3. 在 IDE 中:集成开发环境(IDE)如 IntelliJ IDEA 或 Eclipse 允许你直接导入 JAR 文件并浏览其内容。

请注意,如果 JAR 文件是可执行的,并且你的系统已经安装了 Java,通常可以通过双击 JAR 文件来运行它。如果不能运行,可能需要在命令行中使用 java -jar 命令。

以下是 APK 文件的结构展示,它是一个树状图,描述了 APK 文件的主要组成部分:

APK 文件是 Android 应用程序的包文件格式,用于分发和安装移动应用。它本质上是一个 ZIP 文件,包含了应用的代码、资源和元数据。一个标准的 APK 文件通常包含以下内容:

  • META-INF/:包含应用的签名信息和清单文件。
  • res/:包含应用的资源文件,如布局(XML 文件)、字符串、图片等。
  • assets/:包含应用需要的原始文件,开发者可以随意访问。
  • lib/:包含针对不同架构的本地库(.so 文件)。
  • AndroidManifest.xml:描述应用的名称、版本、权限和其他配置信息的 XML 文件。
  • .dex 文件:包含编译后的应用代码,适用于 Android 运行时的 Dalvik 字节码。
  • resources.arsc:包含编译后的资源文件,如二进制 XML。

这个结构使得 Android 设备能够有效地安装和运行应用程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1690089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器人非线性控制方法——线性化与解耦

机器人非线性控制方法是针对具有非线性特性的机器人系统所设计的一系列控制策略。其中,精确线性化控制和反演控制是两种重要的方法。 1. 非线性反馈控制 该控制律采用非线性反馈控制的方法,将控制输入 u 分解为两个部分: α(x): 这是一个与…

计算机毕业设计 | springboot养老院管理系统 老人社区管理(附源码)

1,绪论 1.1 背景调研 养老院是集医疗、护理、康复、膳食、社工等服务服务于一体的综合行养老院,经过我们前期的调查,院方大部分工作采用手工操作方式,会带来工作效率过低,运营成本过大的问题。 院方可用合理的较少投入取得更好…

HTML5 + CSS3模拟庆余年中“五竹”的镭射眼动画特效

庆余年2已经火热开播了,据说反响强烈啊,不知道这一部里面,五竹的镭射眼会不会表现出来,我还挺想看看他的镭射眼的,我看到底有没有杀死剧中的庆帝。 回想第一部,我都快记不清那是几年前开播的了,…

Ubuntu 安装 LibreOffice

1. 删除预安装的LibreOffice Ubuntu 和其他的 Linux 发行版带有预安装的 LibreOffice。这可能不是最新的,这是因为发行版有特定的发行周期。在进行新安装之前,你可以通过以下命令删除 Ubuntu 及其衍生发行版中的的旧版本。 sudo apt remove –purge li…

VScode SSH连接远程服务器报错

一、报错 通过VScode SSH插件远程连接服务器,输入密码后没有连接成功,一直跳出输入密码界面,在输出界面里,一直是Waiting for server log或者是显示Cannot not find minimist 二、处理 🐱: 这个时候应该…

安全工程师考试摸拟试题

安全工程师考试摸拟试题安全工程师是指在工程项目中负责安全管理和安全技术服务的专业人员。他们需要具备扎实的理论知识和丰富的实践经验,能够有效预防和控制各类安全风险… 1 安全工程师考试摸拟试题 安全工程师是指在工程项目中负责安全管理和安全技术服务的专业…

Vue开发实例(十三)用户登录功能

使用Vue实现登录具有以下几个好处: 响应式界面:Vue框架的响应式特性可以帮助开发者轻松地实现用户登录界面的交互效果,包括表单验证、实时错误提示等,从而提升用户体验。组件化开发:Vue框架支持组件化开发,…

pillow学习3

Pillow库中,图像的模式代表了图像的颜色空间。以下是一些常见的图像模式及其含义: L(灰度图):L模式表示图像是灰度图像,每个像素用8位表示(范围为0-255),0表示黑色&#…

国家开放大学-实验3:类、对象、方法和修饰符的使用

作业答案 联系QQ:1603277115 实验目的 通过本实验,了解和掌握类、方法以及各个修饰符的使用。 问题描述 基于面向对象思想和类的方式,创建一个计算金额的程序。 啤酒 3.5元/罐, 方便面 4.5元/包, 矿泉水 2.0 元/瓶。 优惠规…

【Linux】信号之信号的产生详解

🤖个人主页:晚风相伴-CSDN博客 💖如果觉得内容对你有帮助的话,还请给博主一键三连(点赞💜、收藏🧡、关注💚)吧 🙏如果内容有误的话,还望指出&…

Java入门基础学习笔记50——ATM系统

1、项目演示; 2、项目技术实现; 1)面向对象编程: 每个账户都是一个对象,所以要设计账户类Account,用于创建账户对象封装账户信息。ATM同样是一个对象,需要设计ATM类,代表ATM管理系…

打破壁垒,实现多引擎3D内容轻量化交付|点量云流

随着应用场景的不断拓展,传统的视频流技术已难以满足日益复杂的需求。当前市场上的视频流解决方案支持的引擎基本是UE、Unitiy输出的exe3D应用,在处理WebGL等3D内容时,也存在诸多局限性,例如性能限制、跨平台兼容性问题、无法直接…

玩转OpenHarmony PID:教你打造两轮平衡车

简介 此次为大家带来的是OpenAtom OpenHarmony(以下简称“OpenHarmony”)系统与PID控制算法相结合并落地的平衡车项目。 PID控制算法是一种经典的,并被广泛应用在控制领域的算法。类似于这种:需要将某一个物理量保持稳定的场合&…

java学习五

Java方法 方法是什么 方法Debug 方法定义注意点 方法总结 方法使用时的常见问题

电商内卷时代,视频号小店凭借一己之力“脱颖而出”

大家好,我是电商笨笨熊 今年618各大电商平台花样百出; 某宝更是直接取消了“预售”,从5月就开始进入618预热期; 不少玩家既开心又难过,市场如此内卷,618确实是个爆发期,但更多的需要不断压低…

数据量较小的表是否有必要添加索引问题分析

目录 前言一、分析前准备1.1、准备测试表和数据1.2、插入测试数据1.3、测试环境说明 二、具体业务分析2.1、单次查询耗时分析2.2、无索引并发查询服务器CPU占用率分析2.3、添加索引并发查询服务器CPU占用率分析 三、总结 前言 在一次节日活动我们系统访问量到达了平时的两倍&am…

普乐蛙VR元宇宙展厅VR航天航空知识长廊

有没有幻想过有生之年可以亲自开战斗机?还是大名鼎鼎的“歼-20”哦!上到四五十岁的中年人,下到十几岁的小年轻,无论男女老少,没人能逃得过炫酷到飞起的新一代战斗机!快跟上小编的脚步,带你去开V…

2024云曦期中考(部分复现)

目录 一、Web Web_SINGIN 好玩的PHP 渗透的本质 简简单单的文件上传 简简单单的sql ​编辑 二、Crypto Crypto_Singin easy_rsa 三、Misc easy_singin Xjpg 四、Pwn pwn_Sing 五、Reverse babyre easy xor 一、Web Web_SINGIN F12代码中就有flag&#xff0…

构建稳健、高效与安全的企业级API网关

在现代企业信息化建设中,各种微服务架构系统以及不同类型的管理系统广泛兴起,平台中的数据安全逐渐成为企业重视的部分,在iPaaS系统中,一个名为“企业级API网关”的功能出现在大众眼中,随着企业信息化建设的不断深入&a…

ubuntu server 24.04 网络 SSH等基础配置

1 安装参考上一篇: VMware Workstation 虚拟机安装 ubuntu 24.04 server 详细教程 服务器安装图形化界面-CSDN博客 2 网络配置 #安装 sudo apt install net-tools#查看 ifconfig #修改网络配置 sudo vim /etc/netplan/50-cloud-init.yaml network:version: 2ethernets:en…