首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >android 反编译后再次打包流程

android 反编译后再次打包流程

作者头像
李小白是一只喵
发布于 2020-12-31 03:29:21
发布于 2020-12-31 03:29:21
2.7K01
代码可运行
举报
文章被收录于专栏:算法微时光算法微时光
运行总次数:1
代码可运行

image.png

准备工作

主要使用工具:

apktool、

反编译流程:

  1. 使用apktool解包
  2. 修改代码
  3. 使用apktool重新打包
  4. 添加签名
使用apktool解包

使用命令如下:

apktool d -f 待反编译的apk -o 反编译之后存放文件夹

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apktool d  xxx.apk 

image.png

反编译得到的文件夹内容如下:

image.png

其中smali文件夹下就是代码编译后生成的smail文件。

修改代码

修改代码也是修改smail文件。

修改smail的时候要先阅读下源码,这个时候要用到反编译。、

反编译参考文章APK逆向工程

image.png

通过GUI界面,查看到源码后,找到对应的smail文件,对应的代码位置进行修改即可。

使用apktool重新打包

重新打包最主要使用的工具还是apktool.

执行命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
apktool b -f ./test/  -o test.apk

打包完后当前目录下会多出两个文件夹:

image.png

dist文件内就是我们需要的apk。

添加签名

如果没有签名,安装时候就会报错:

Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]。

这里主要是生成自己的签名文件。

可以使用 Android Studio可视化操作界面生成一个新的签名文件,也可以直接使用 keytool 工具直接在终端工具上生成,使用时候需要先找到keytool 工具的安装路径,一般是在C:\Users\Admin\AppData\Local\Android\Sdk\build-tools\30.0.3下.

使用命令如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 keytool -genkey -alias abc123.keystore   -keyalg RSA -validity 40000 -keystore abc123.keystore

生成abc123.keystore 签名文件。一般需要输入秘钥,秘钥我这里直接输入123456

然后就可以使用签名文件进行签名了:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 jarsigner -verbose -keystore abc123.keystore -signedjar hello_sign123.apk hello_test.apk abc123.keystore

这样就签名完成了,安装hello_sign123.apk就可以使用了。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android反编译apk并重新打包签名(Mac环境)
根据apktool网站提示的下载方法,右击wrapper script,链接存储为apktool,不要带拓展名
Zachary46
2018/09/12
5.9K0
Android反编译apk并重新打包签名(Mac环境)
APK反编译工具_exe反编译工具
可以利用Python来写一些工具来提高工作效率。把重复繁琐机械化的事情交给Python脚本去完成。 这里利用Python来写一个反编译和重签名的工具。
全栈程序员站长
2022/10/02
5.3K0
APK反编译工具_exe反编译工具
Android应用签名、反编译与防止二次签名
我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行。签名就代表着自己的身份即keystore。小编所在项目,遇到应用被恶意篡改的情况。新版本客户端加入了在线签名逻辑以及防止二次签名逻辑。小编对相关知识加深了理解,并运用在项目测试中,分享给大家。
用户5521279
2019/06/02
5.5K0
App安全测试——Android APK反编译
我们下载到的Android App 安装包是 Apk文件(Android Application Package) 。通过 Apk 文件,我们也可以得到这个应用的代码和资源文件,对应用进行修改。
清风穆云
2021/08/09
1.8K0
Android 对apk进行重签名和查看签名(window 和mac)及生成签名
生成签名文件:其实是有很多工具可以做到,这里不过是想用命令来生成 其命令如下:生成的签名默认在c盘根目录下 keytool -genkey -alias aaaa.keystore -keyalg RSA -validity 2000 -keystore newandroid.keystore 备注说明:-alias后面跟着的是别名(android.keystore) -keystore后面跟着的是具体的签名文件(及签名文件的命名–newandroid.keystore) 当使用这个命令生成后,会有个警告,不符合pkcs12标准,需要消除掉(也可以不消除),使用如下命名: keytool -importkeystore -srckeystore android.keystore -destkeystore newandroid.keystore -deststoretype pkcs12 将上面的android.keystore签名迁移到newandroid.keystore中,其各种参数不变。 截图如下
全栈程序员站长
2022/08/10
7K0
Android 对apk进行重签名和查看签名(window 和mac)及生成签名
Notes|Android 客户端逆向基础知识分享
技术分享,一直都是让人比较无奈的事情。分享的东西对于不感兴趣的童鞋而言,简直枯燥无味,而对于大佬而言,又是关公面前耍大刀。
贺biubiu
2023/05/30
7090
Notes|Android 客户端逆向基础知识分享
Android签名校验机制(数字证书)
之前有多个游戏遇到关于签名错误的问题,加上有些游戏开发不熟悉Android签名校验的机制以及打包的方法,就专门总结了一下,现在整理一下。 首先放上官方文档链接:http://developer.android.com/tools/publishing/app-signing.html 什么是签名 就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。数字签名是个加密的过程,数字签名验证是个解密的过程。 为什么有签名 最简单直接的回答: 系统要
子勰
2018/05/22
7K0
带壳App去除强制升级
这是一款带壳的APP,打开之后要求强制升级最新版,否则无法使用,针对此APP可以进行脱壳后定位关键代码,然后重打包进行消除强制升级弹窗。
辞令
2020/11/25
3.2K0
带壳App去除强制升级
一文了解Android游戏SDK开发
SDK(Software Development Kit)是软件开发工具包的缩写,一般来说,SDK是用于给开发人员提供进行应用程序开发的工具的,这样程序员就可以快速的开发出应用软件,省去了编写硬件代码和基础代码框架的过程,我们常见的Android SDK就属于这一类。除了这种比较大的SDK,我们平时开发的library也属性SDK,只不过功能比较单一,适用的场合也比较简单,如短视频SDK、推送SDK,分享SDK等。 而我们所做的游戏SDK主要是用于第三方游戏开发接入我们的账号体系和支付体系,类似于友盟分享等聚合SDK。
xiangzhihong
2020/07/15
2.6K0
一文了解Android游戏SDK开发
破解APK修改资源文件
本文,乃是反编译(逆向)首战,在此,特意记录过程中遇到的点点滴滴问题,如有不足之处,欢迎指正~
贺biubiu
2019/06/11
10K3
万字长文带你APK反编译&重签名&aab&apks转换
反编译(Decompilation)是将已编译的程序(比如二进制代码)转换回更高级别的编程语言代码的过程。这通常用于理解程序的工作原理,进行软件审计,恢复丢失的源代码,或者进行教学研究。反编译的难度和效果取决于原程序的编译过程中丢失了多少信息(比如变量名、注释等)。
梦无矶小仔
2024/04/18
2K0
万字长文带你APK反编译&重签名&aab&apks转换
【Android笔记】安卓APK安装包解包、重新打包和重新签名
ApkTool官网安装说明页:Apktool - How to Install (ibotpeaches.github.io) 按照说明进入下载页下载apktool.jar文件,例如目前的下载页为:iBotPeaches / Apktool / Downloads — Bitbucket 选择最新的版本下载即可,例如目前是apktool_2.6.1.jar
kr
2022/06/15
7.2K0
程序员跑路了,李老板要求把App换个图标和名称
李老板:奋飞呀,给咱们开发Android App的程序员删库跑路了,明天投资人就要过来,咱们得把App换个图标和名字呀?
奋飞安全
2025/06/03
1220
一文了解Android游戏SDK开发
去年从平安离职之后,加入了一家游戏公司,负责游戏SDK相关的业务开发和维护工作,经过半年来的摸索,对于游戏SDK的开发有了一定的理解,下面就对游戏SDK开发涉及到的知识点进行简单的梳理。
xiangzhihong
2020/07/05
2.9K1
apk伪造签名_如何反编译app
  对apk应用进行激活成功教程并重新打包,反编译就是逆向的过程。   Android apk是用高级语言源代码,通常是Java,对apk的逆向智能转换成汇编语言,即Smali。   这次反编译的目的是为了学习apk的软件安全,了解apk的编译过程。
全栈程序员站长
2022/09/28
1.7K0
apk伪造签名_如何反编译app
apktool重新打包添加签名
一.生成apk apktool b 反编译后项目目录 -o 新apk名称.apk 二.生成签名 keytool -genkeypair -alias 新apk名称.apk -keyalg RSA -validity 100 -keystore app.keystore #拓展 -genkey 生成秘钥 -alias 别名 -keyalg 秘钥算法 -keysize 秘钥长度 -validity 有效期 -keystore 生成秘钥库的存储路径和名称 -keypass 秘钥口令 -storep
小小咸鱼YwY
2020/07/01
7860
Android安全攻防战,反编译与混淆技术完全解析(上)
之前一直有犹豫过要不要写这篇文章,毕竟去反编译人家的程序并不是什么值得骄傲的事情。不过单纯从技术角度上来讲,掌握反编译功能确实是一项非常有用的技能,可能平常不太会用得到,但是一旦真的需要用到的了,而你
用户1158055
2018/01/08
1.9K0
Android安全攻防战,反编译与混淆技术完全解析(上)
Flutter打包apk
这里我们用命令行生成一个.jks的文件。我们使用的是Android Studio自带的debug.keystore密钥库。
用户6094182
2019/08/23
3.1K0
Flutter打包apk
【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
反编译工具 : 总结了一下 linux, windows, mac 上的版本, 一起放到 CSDN 上下载;
韩曙亮
2023/03/27
1.1K0
【Android 应用开发】 Android APK 反编译 混淆 反编译后重编译
Android 空包签名(详细版)
可能一看标题你不知道是什么意思,我这里解释一下什么是空包签名,为什么要空包签名。那是一个风和日丽的早晨,我愉快地敲着代码,于是项目总监告诉有一个老项目维护,给了我源代码,在我修复bug运行成功之后,说要上架到应用市场,我说要上那就上呗,简简单单。然后我发现事情并不是那么简单,平台上之前上架过此应用,那还是16、17年的事情,那时我还在学校呢。而且之前的平台开发者账号找不到了,也就是那之前平台上的应用是个孤儿。平台上有这个应用再想上架的话有两个方案,一、更改包名,应用名,然后上架。二、认领应用。方案一花费的时间太长,因为不仅仅是改一个包名那么简单,里面对接的第三方SDK因为这个包名改动,那么就都要改一次配置才行,周期太长,太繁琐。于是走方案二,就有了本文。
晨曦_LLW
2021/03/28
2.1K0
推荐阅读
相关推荐
Android反编译apk并重新打包签名(Mac环境)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验