window apktool反编译 使用

安装apktool
1.apktool 下载https://ibotpeaches.github.io/Apktool/install/

2.新建文件apktool.bat 写入下面代码

@echo off
setlocal
set BASENAME=apktool_
chcp 65001 2>nul >nul
 
set java_exe=java.exe
 
if defined JAVA_HOME (
set java_exe="%JAVA_HOME%\bin\java.exe"
)
 
rem Find the highest version .jar available in the same directory as the script
setlocal EnableDelayedExpansion
pushd "%~dp0"
if exist apktool.jar (
    set BASENAME=apktool
    goto skipversioned
)
set max=0
for /f "tokens=1* delims=-_.0" %%A in ('dir /b /a-d %BASENAME%*.jar') do if %%~B gtr !max! set max=%%~nB
:skipversioned
popd
setlocal DisableDelayedExpansion
 
rem 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 fastCommand=b
)
if "%ATTR:~0,1%"=="-" if "%~x1"==".apk" (
    rem APK file, unpack
    set fastCommand=d
)
 
:load
%java_exe% -jar -Duser.language=en -Dfile.encoding=UTF8 "%~dp0%BASENAME%%max%.jar" %fastCommand% %*
 
rem Pause when ran non interactively
for /f "tokens=2" %%# in ("%cmdcmdline%") do if /i "%%#" equ "/c" pause
3.将下载apktool_x.x.x.jar 改为apktool.jar,把 apktool.bat和apktool.jar放在一个文件夹

 放在任意一个盘位置,然后配置环境变量

apktool配置完成

打开cmd 命令输入apktool -version 即可查看配置环境是否成功,如果以前有配置过,请重启电脑后再输入命令查看

反编译开始
1.反编译

输入

apktool d apk文件的路径      #【C:\Users\10544\Desktop\反编译\test.apk】 反编译
 

反编译成功后会在apk所在文件目录下生成apk名称命名的文件

如报错下图

 apktool d apk文件的路径 --only-main-classes   #即可忽略错误


成功反编译生成的目录结构如下图

如何修改内容此不做详细描述了,替换 res/string 文件中的 app_name 的值可以修改app名称

2.重新打包

输入

APK反编译,jar包解析
rar

0星
超过10%的资源
12.07MB

下载
apktool b [反编译的文件夹] #反编译时生成的以apk名称命名的文件夹
重新打包的apk在dist文件下面

此时的apk是没有签名的,无法安装使用的

3.重新对apk进行签名

1.支持v1签名: jarsigner给apk签名,只支持V1签名

 jks 签名:jarsigner -verbose -keystore xxx.jks -signedjar xxx.apk(签名后的apk名字) xxx.apk(需要签名的apk) xxx(keystore别名)

2.同时使用v1和v2签名  

apksigner: 

这个工具位于SDK目录的build-tools目录下。必须说明的是,v2签名方式时在Android7.0后才推出的,所以只有版本>25的SDK\build-tools\中才能找到apksigner.jar。
打开cmd,把目录切到SDK\build-tools\版本号\lib下(例如E:\SDK\build-tools\25.0.2\lib),执行

java -jar apksigner.jar sign           //执行签名操作
 --ks 你的jks路径                       //jks签名证书路径
--ks-key-alias 你的alias                //生成jks时指定的alias
--ks-pass pass:你的密码                 //KeyStore密码
--key-pass pass:你的密码                //签署者的密码,即生成jks时指定alias对应的密码
--out output.apk                        //输出路径
input.apk                               //被签名的apk
示例

Smail2Java.rar
rar

0星
超过10%的资源
6.22MB

下载
java -jar apksigner.jar sign  --ks key.jks  --ks-key-alias releasekey  --ks-pass pass:pp123456  --key-pass pass:pp123456  --out output.apk  input.apk    


验证是否签名成功

java -jar apksigner.jar verify -v my.apk
一般使用apksigner签名,防止没有v2签名无法安装apk

v2签名方法引用:https://www.jianshu.com/p/e1e2fd05bb62

查看apk信息:

aapt dump badging apk文件位置

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值