网站建设的法律依据,北京宣传部新京报,跨境电商平台设计,网站未备案做经营被罚款【安卓逆向】反编译修改APK回编译使用工具流程步骤Apktool相关安装与使用常用命令备查APK签名命令备查实战练习反编译查看修改的地方使用Apktool反编译得到产物文件夹并进行修改回编APK实用场景在日常开发我们可能需要替换某些资源或者修改某些代码#xff0c;但是我们没有源码…
【安卓逆向】反编译修改APK回编译使用工具流程步骤Apktool相关安装与使用常用命令备查APK签名命令备查实战练习反编译查看修改的地方使用Apktool反编译得到产物文件夹并进行修改回编APK实用场景在日常开发我们可能需要替换某些资源或者修改某些代码但是我们没有源码环境只有一个APK或者想通过编写一些工具实现重打包这时我们可以使用apktool 进行对APK包的修改以及重打包
使用工具
工具功能jadx-gui反编译查看源码apktool反编译/回编 APKandroid sdk进行APK签名
流程步骤
使用jadx-gui反编译查看源码确定要修改的点apktool 反编译出smail文件修改smail文件使用apktool 回编APK重签名
Apktool相关
官方编译教程官方安装教程【推荐】建立apktool.bat包装脚本与下载的jar包例如apktool_2.7.0.jar放在同级目录
安装与使用
github最新版本下载将apktool.bat与下载的jar包放置于同级目录或者直接放于C:\Windows脚本内容如下可直接复制
echo off
setlocal
set BASENAMEapktool_
chcp 65001 2nul nulrem Find the highest version .jar available in the same directory as the script
setlocal EnableDelayedExpansion
pushd %~dp0
if exist apktool.jar (
set BASENAMEapktool
goto skipversioned
)
set max0
for /f tokens1* delims-_.0 %%A in (dir /b /a-d %BASENAME%*.jar) do if %%~B gtr !max! set max%%~nB
:skipversioned
popd
setlocal DisableDelayedExpansionrem Find out if the commandline is a parameterless .jar or directory, for fast unpack/repack
if %~1 goto load
if not %~2 goto load
set ATTR%~a1
if %ATTR:~0,1%d (
rem Directory, rebuild
set fastCommandb
)
if %ATTR:~0,1%- if %~x1.apk (
rem APK file, unpack
set fastCommandd
):load
java -jar -Duser.languageen -Dfile.encodingUTF8 %~dp0%BASENAME%%max%.jar %fastCommand% %*rem Pause when ran non interactively
for /f tokens2 %%# in (%cmdcmdline%) do if /i %%# equ /c pause常用命令备查
反编译
apktool d -o output_dir test.apk回编
apktool b input_dir -o result.apkAPK签名命令备查
官网教程apksigner 路径 [安装的sdk路径]\build-tools[SDK版本号]\apksigner.bat v1 jarsigner 签名
jarsigner -verbose -keystore F:\test123456.jks -signedjar F:\test\signed.apk F:\test\unsign.apk [别名]apksigner 签名
apksigner sign --ks F:\test123456.jks --ks-key-alias test123456 --out F:\test\signed-motifyapp.apk F:\test\motified-app.apk签名验证
apksigner verify -v F:\test\signed-motifyapp.apk实战练习
写一个简单的demo点击hello word 会变成 其他文本目标是修改文本内容
反编译查看修改的地方
因为是自己写的所以直接找到要修改的类
使用Apktool反编译得到产物文件夹并进行修改
输入命令apktool d -o test app-release.apk得到产物得到产物后根据Jadx反编译的路径找到对应的smail文件直接用文本工具打开查看smail语句修改对应的点这里修改很简单就是把点击后的修改的文本改为changed click text然后保存文件实际修改可以查看smail语句的语法或者自己写一段代码复制对应的smail语句再替换到所在的地方 回编APK
输入命令apktool b test -o changed.apk得到未签名的APK使用 apksigner 进行重签名 apksigner sign --ks E:\apktools\test.jks --ks-key-alias test --out E:\apktools\signed-changed.apk E:\apktools\changed.apk安装验证修改成功
实用场景
多渠道出包资源替换重打包工具