[Android逆向] 重打包时报BrutException

android,逆向,打包,时报,brutexception · 浏览次数 : 131

小编点评

**错误原因:** 在重打包 APK 时,xml 文件 `color.xml` 中的 `@android` 修饰符 `color` 被视为私有的。 **解决方案:** 将 `@android` 修饰符中的 `color` 更改为 `@*android`。这样做可以将 `color.xml` 中的所有颜色资源包含进来,以便在重打包时处理它们。 **修改步骤:** 1. 在 `color.xml` 中更改 `@android:color/ Teal_800` 等式,将其更改为 `@*android:color/ Teal_800`。 2. 重打包 APK。 **注意:** * 此解决方案假设 `color.xml` 文件中的所有颜色资源使用 `@android` 修饰符。 * 如果 `color.xml` 中存在其他类型的资源,例如字体文件,则可能需要对其他资源进行类似的更改。

正文

执行apktool b --use-aapt2 进行重打包时,重打包失败,抛出异常

apktool b  /Users/***/work/appsApk/testApp --use-aapt2
I: Using Apktool 2.6.0
I: Checking whether sources has changed...
I: Checking whether sources has changed...
I: Checking whether sources has changed...
I: Checking whether sources has changed...
I: Checking whether sources has changed...
I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:74: error: resource android:color/Teal_800 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:75: error: resource android:color/Teal_700 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:76: error: resource android:color/Blue_700 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:77: error: resource android:color/Red_800 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:78: error: resource android:color/Red_700 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:79: error: resource android:color/Purple_800 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:80: error: resource android:color/Purple_700 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:81: error: resource android:color/Pink_800 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:82: error: resource android:color/Pink_700 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:83: error: resource android:color/Indigo_800 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:84: error: resource android:color/Indigo_700 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:85: error: resource android:color/GM2_grey_800 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:86: error: resource android:color/Blue_800 is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:87: error: resource android:color/background_cache_hint_selector_device_default is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:88: error: resource android:color/autofilled_highlight is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:89: error: resource android:color/accent_device_default is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:90: error: resource android:color/autofill_background_material_light is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:91: error: resource android:color/autofill_background_material_dark is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:92: error: resource android:color/accessibility_focus_highlight is private.
W: /Users/stlior/work/appsApk/testApp/res/values/colors.xml:93: error: resource android:color/accent_material_light is private.
brut.androlib.AndrolibException: brut.common.BrutException: could not exec 

出错的XML

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="m3_ref_palette_dynamic_neutral0">@android:color/Teal_800</color>
    <color name="m3_ref_palette_dynamic_neutral10">@android:color/Teal_700</color>
    <color name="m3_ref_palette_dynamic_neutral100">@android:color/Blue_700</color>
    <color name="m3_ref_palette_dynamic_neutral20">@android:color/Red_800</color>
    <color name="m3_ref_palette_dynamic_neutral30">@android:color/Red_700</color>
    ....
....

解决办法

将color.xml 中的 @android 换成 @*android

再次重打包,成功打出apk

与[Android逆向] 重打包时报BrutException相似的内容:

[Android逆向] 重打包时报BrutException

#### 执行apktool b --use-aapt2 进行重打包时,重打包失败,抛出异常 ``` apktool b /Users/***/work/appsApk/testApp --use-aapt2 I: Using Apktool 2.6.0 I: Checking whether so

【Android 逆向】apk反编译后重打包

1. 执行 apktool b smali_dir smali_dir 为反编译出来的数据目录 执行后可能会报错 I: Building resources... W: /root/Desktop/tmp/qimao_dir/qimao_v5.4/AndroidManifest.xml:1: err

【Android逆向】某小说网站签名破解

1. 豌豆荚下载v5.4的版本 2. 参考前面两篇文章进行反编译和重打包后,安装到手机发现会有验签失败的报错 抓取log 03-29 16:15:37.545 25910 26539 D KM-NATIVE: call Java_com_km_encryption_api_Security_sign

【Android逆向】滚动的天空中插入smali日志

1. 编写一个MyLog.java 放到一个android工程下,编译打包,然后反编译拿到MyLog的smali代码 package com.example.logapplication; import android.util.Log; public class MyLog { public st

【Android 逆向】【攻防世界】boomshakalaka-3

1. apk 安装到手机,是一个cocos2dx 写的打飞机的游戏 题目描述跟得分有关(题目描述: play the game, get the highest score) 2. jadx 打开apk public class FirstTest extends Cocos2dxActivity

【Android 逆向】【攻防世界】app1

1. apk安装到手机, 老套路了 2. jadx打开 this.btn.setOnClickListener(new View.OnClickListener() { // from class: com.example.yaphetshan.tencentgreat.MainActivity.1

【Android逆向】修改so文件方式修改程序行为

1. 还是之前的那个apk 链接:https://pan.baidu.com/s/1vKC1SevvHfeI7f0d2c6IqQ 密码:u1an 尝试使用 010Editor来修改so文件 2. 使用ida打开so文件,双击 hello 52pojie!,会跳转到该字符串的偏移地址,ida显示是00

【Android逆向】静态分析+frida破解test2.apk

有了上一篇的基础 https://www.cnblogs.com/gradyblog/p/17152108.html 现在尝试静态分析的方式来处理 为什么还要多此一举,因为题眼告诉了我们是五位数字,所以可以爆破,不告诉这个题眼的话,就得分析 1. IDA 打开libroysue.so,查看JNI_O

【Android逆向】算法还原2

这题比较简单 1. app-release.apk 安装至手机 提示需要输入账号和密码 2. jadx 打开看看 public native boolean check(byte[] bArr, byte[] bArr2); static { System.loadLibrary("native-l

【Android 逆向】VM Kali 中 charles 抓android https 协议

1. 虚拟机调成桥接模式(不用选择 复制物理网络链接状态) 2. 虚拟机中 打开 Charles 4. 选择 Proxy ->SSL Proxying Settings 1. 选择SSL Proxying 菜单 2. 勾选Enable SSL Proxying 3. 在include 中选择Add