首页 > 其他分享 >Android逆向:修改APK并重打包签名

Android逆向:修改APK并重打包签名

时间:2024-08-06 13:25:22浏览次数:16  
标签:... OK apk 逆向 APK Copying Android newdemo

在Android逆向中,经常需要对APK修改,然后重新打包并签名。这篇文章中,介绍了如何使用各个工具来完成这个过程。

各个步骤以及所需工具:

  1. 解压APK文件;  工具:apktool
  2. 进行修改;         工具:看修改需求
  3. 重新打包APK;  工具:apktool
  4. 将APK对齐;      工具:zipalign
  5. 生成密钥文件,并对APK进行签名;  工具:keytool、jarsigner

小白鼠:demo.apk

目标:

addThreeNum(1, 2, 3)改为addThreeNum(4, 5, 6),并且修改后能够成功运行。

demo.apk下载: https://www.123pan.com/s/9j4Xjv-MMAhv.html?提取码:tgno

用到的工具可自行从网上获取。

步骤1:解压APK

使用apktool解压APK到output目录下

E:\> apktool d .\demo.apk -o output\
I: Using Apktool 2.7.0 on demo.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: C:\Users\aaaka\AppData\Local\apktool\framework\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
I: Copying META-INF/services directory

步骤2:修改

在output\smali\com\example\myapplication\MainActivity.smail中,把1 2 3改为4 5 6

步骤3:重打包

解压的逆过程,将output目录打包为newdemo.apk

E:\> apktool b output\ -o .\newdemo.apk
I: Using Apktool 2.7.0
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
I: Copying libs... (/lib)
I: Copying libs... (/kotlin)
I: Copying libs... (/META-INF/services)
I: Building apk file...
I: Copying unknown files/dir...
I: Built apk into: .\newdemo.apk

步骤4:APK对齐

(注意:当用到NDK开发,含有.so库时,需要添加-p参数)

E:\> zipalign -p -v 4 .\newdemo.apk .\newdemo-aligned.apk
Verifying alignment of .\newdemo-aligned.apk (4)...
      49 AndroidManifest.xml (OK - compressed)
    1688 classes.dex (OK - compressed)
 3296246 kotlin/annotation/annotation.kotlin_builtins (OK - compressed)
 3296897 kotlin/collections/collections.kotlin_builtins (OK - compressed)
 3298508 kotlin/coroutines/coroutines.kotlin_builtins (OK - compressed)
                ......(省略)......
 3731560 resources.arsc (OK)
 4709532 assets/dexopt/baseline.prof (OK)
 4711368 assets/dexopt/baseline.profm (OK)
 4711611 DebugProbesKt.bin (OK - compressed)
Verification succesful

步骤5:生成.jks密钥文件

各个参数的含义可自行了解

E:\> keytool -genkeypair -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias akakey
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  aka
您的组织单位名称是什么?
  [Unknown]:  Reverse
您的组织名称是什么?
  [Unknown]:  Android
您所在的城市或区域名称是什么?
  [Unknown]:  shenzhen
您所在的省/市/自治区名称是什么?
  [Unknown]:  guangdong
该单位的双字母国家/地区代码是什么?
  [Unknown]:  CN
CN=aka, OU=Reverse, O=Android, L=shenzhen, ST=guangdong, C=CN是否正确?
  [否]:  是
​
正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天):
         CN=aka, OU=Reverse, O=Android, L=shenzhen, ST=guangdong, C=CN
[正在存储key.jks]

步骤6:重签名

E:\> apksigner sign --ks key.jks --ks-key-alias akakey --out .\newdemo-aligned-signed.apk .\newdemo-aligned.apk
Keystore password for signer #1:
E:\>

最后:尝试运行

可以成功运行,并且修改有效。

疑问:

既然APK可以二次签名,并且能够成功运行。那么,APK中签名机制所起到的作用是什么呢?就是资源文件中META-INF目录下的.RSA .SF .MF三个文件。

标签:...,OK,apk,逆向,APK,Copying,Android,newdemo
From: https://blog.csdn.net/aka_yoo/article/details/140953194

相关文章

  • Android 广播 Broadcast Receiver
    广播(Broadcast)是Android中的一种机制,允许应用程序之间传递消息。广播在Android中扮演着重要角色,能够在不同的组件间传递信息,无论是应用内部还是跨应用。下面我将详细解释广播的机制,并提供几个示例,按照难度逐步增加。广播机制详细解释1.广播的基本概念广播允许应用程序在系统中......
  • Android开发 - DialogFragment 类解析
    DialogFragment是什么DialogFragment是一种用于显示对话框的工具,同时它也是一个抽象类。在Android应用中,对话框是一种小窗口,通常用于显示重要信息或提示用户进行某些操作。通过使用DialogFragment,我们可以在应用中方便地显示和管理对话框DialogFragment的好处使用Dialo......
  • Androidstudio开发,ListView实现通讯录联系人列表( 四)
    文章目录1.涉及到的技术点2.发环境3.需求分析4.实现步骤5.代码实现全部过程6.效果图7.其它资料学习1.涉及到的技术点数据库SQLite的使用列表控件ListView的使用ListView事件监听适配器BaseAdapter的使用线性布局LinearLayoutCompat的使用2.发环境开发工具......
  • 【番外篇】Android Studio 中 Banner控件实现首页轮播图
    目录一、创建一个空项目二、导入依赖包,添加网络权限三、写布局文件四、写入Java代码完整的Java文件代码:完整的xml代码: 许多App首页都会有轮播图,下面来介绍一下AndroidStudio中如何用Banner控件完成轮播图的效果:一、创建一个空项目为了方便,这里我们把模块名命名......
  • Unity Gyro Camera ---- 传感器控制摄像头旋转 + 正北校准 (纯原生支持Android+IOS,无需
    UnityGyroCamera传感器控制摄像头旋转+正北校准纯原生支持Android+IOS,无需安装ARKit,ARCore等插件这篇文章主要介绍如何利用手机原生的传感器,控制摄像头的旋转,最终可以实现AR或者VR的摄像头旋转控制问题提出 虽然,目前有一些用手机传感器控制虚拟摄像头旋转的方案......
  • A092-Android自行车在线租借租赁系统
    【项目功能介绍】功能列表:本系统包含后台管理和前端app双端系统,本系统包含三个角色:管理员,员工,app用户。后台管理员的功能包含:登录,退出,自新车管理,添加自新车,修改自新车,禁用启用自新车;自新车车辆管理,添加自新车车辆,修改自新车车辆,启用禁用自新车车辆;订......
  • APP逆向 day27unidbg打包
    一.前言上三次我们把unidbg的基础到进阶都讲完了,现在我们来讲unidbg的大打包,打包分为两种打包,一种是传参一种是不传参,我根据往期案例挑几个和大家讲二.不传递参数这个我们拿车智赢举例子2.1配置和编译点击这里 再点击这几个选项点击应用,这样就是配置好了再这么选......
  • APP逆向 day26unidbg下-pdd(anti)案例
    一.前言今天我们讲unidbg的下篇,也就是unidbg基础的最后一个部分,我们上节课也有补环境,比如补java环境,补安卓环境,这节课我们讲的肯定比这些都要难,我会给出一个之前讲过的案例,然后会讲一个全新的案例,pdd,这个里面的环境就更加难了,让我们接着往下看吧二.B站sign参数2.1回顾sign......
  • “逆向”分析关键词
    你是否正在寻找一种方法来提升内容营销效果?反向关键词搜索是一种有效的工具,可以帮助你做到这一点!通过使用此技术,你将能够更好地识别哪些关键词与你的目标受众相关,并相应地创建内容。什么是反向关键词搜索?反向关键词搜索,也称为竞争对手关键词分析,涉及分析竞争对手排名的关键......
  • Android Camera close异常导致app的input ANR案例分析
    1.背景在日常的项目开发过程中,经常会收到用户或者测试同仁报过来的ANR(ApplicationNotResponse)的问题,本文结合作者的日常工作中遇到的典型案例,分享ANR的分析过程。ANR(‌ApplicationNotResponding)‌主要分为以下几种类型:‌Inputdispatchingtimedout:‌当输入事件(......