Android apk 反编译后打包(含签名)

news/2024/11/8 3:11:33/

想分析某些app源码时,遇到烦人弹框,现在想反编译看看具体实现。
用到的工具: GDA4.06 apk反编译工具
apktool apk 打包工具
jdk 环境

一、反编译分析

将apk反编译打开
在这里插入图片描述
找到入口代码
在这里插入图片描述
弹框代码如图

二、解包、打包

使用apktool解包

ps: apktool工具的用法自行百度

apktool d D:\apk\testOld.apk -o D:\apk\test1

-o模式是指定解包后文件所处位置
在这里插入图片描述
解包完成
打开解开的包
在这里插入图片描述
找到要修改的代码
在这里插入图片描述
在这里插入图片描述
这里的代码有混淆,不需要管,从方法开始到方法结束全部删除即可。

然后使用打包命令

apktool b  D:\apk\test1 -o D:\apk\testNew.apk

在这里插入图片描述
重新打包完成,丢入模拟器测试
在这里插入图片描述
无法安装,因为这里缺失签名,请确保有java环境,下面开始签名

三、apk签名

输入生成签名命令

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

任意输入口令6位以上字符,后面信息无用,可以随意输入,后面要使用。
在这里插入图片描述
生成的文件如下
在这里插入图片描述
输入签名命令

jarsigner -verbose -keystore abc.keystore -signedjar nopassword_signed.apk nopassword.apk abc.keystore

nopassword.apk是你的待签名apk名字
在这里插入图片描述
再次安装,即可。


http://www.ppmy.cn/news/485312.html

相关文章

荣耀智慧屏鸿蒙2.0,21日发!华为“入门级”智慧屏首发鸿蒙2.0,1999元?

华为新款入门级智慧屏将在21号发布,据说价格定在了3000以下,有没有可能接替荣耀智慧屏X系列,主打2000价格段的市场,加上华为的品牌加持,优秀的系统和硬件,必然小米感受到不小的压力! 这款智慧屏…

我的股市生涯

自从上周清仓了所有的股票,我的股市生涯,算告一个段落,原本不想写什么,但在这个过程中,确实有很多体会,对股市外的地方,还是有些指导和借鉴的意义,因此趁着清醒,记录一下…

数据分析的工作目标是什么

题图与内容无关,骗点击的。。。 其实这是回答我知识星球一位读者的问题,但恰好也是我现在在做的事情,所以想想,可以写一篇文章分享一下。 数据分析团队的工作方向,按照阶段分为如下目标。 1、提供准确、可靠、及时的基…

【金猿产品展】ChiefClouds营销数据中台:以大数据驱动企业经营决策升级

ChiefClouds产品 本产品由ChiefClouds投递数据猿参与评选,更多关于【金猿榜/奖2019征集评选】的相关信息,请点击这里了解详情丨征案例、征文章、征产品评企业、评人物、评产品。 大数据产业创新服务媒体 ——聚焦数据 改变商业 ChiefClouds营销数据中台…

动态引入 antDesign 的图标,并注册为组件

1、需要安装 ant-design/icons-vue 图标组件包 npm install --save ant-design/icons-vue2、引入antDesign的图标库 在main.js中 import * as antIcons from ant-design/icons-vue// 将antDesign图标库的所有图标,每个都注册成组件 Object.keys(antIcons).forEach…

【FPGA入门】第六篇、异步串口通信

目录 第一部分、相关知识 1、UART和RS232的区别 2、UART与USART的区别 3、全双工? 4、RS232通信协议 5、波特率 6、如何将外部异步信号变为内部同步信号? 7、什么时间点让FPGA去采集rx线上的数据? 第二部分、串口通信时序图 1、…

node 跟踪异步资源(回调)async_hook、AsyncResource

文章目录 跟踪异步回调的原因异步调用链基础async_hookAsyncResourceasyncResource.runInAsyncScope 跟踪异步回调的原因 node 基于事件循环的异步非阻塞 I/O 模型,发起一次异步调用,回调在之后的循环中才被调用,此时已经无法追踪到是谁发起…

vue中 @scroll的使用

@scroll 是 Vue 中的一个修饰符,可以用来监听元素的滚动事件。 使用方法: 在元素上绑定一个 @scroll 修饰符,并绑定一个事件处理函数,如:<template><div class="container" @scroll="handleScroll"></div> </template><sc…