返回列表 发新帖

[求助问答] 这个是加密还是加固呢?

[复制链接]

13

主题

1111

回帖

3173

积分

大学生

Rank: 5Rank: 5

金币
1634
好评
2
信誉
102

MT论坛新人考神MT论坛最佳新人

发表在  2026-3-27 08:50:36 来自手机  | 显示全部楼层 | 阅读模式  来自 福建
dex内容StubApp.看到以为是加固,assets文件里面两个,ehbidafb文件,应该属于加密吧?
麻烦大佬们研究一下他这个加密方式。及如何解密呢?软件点击下载

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

7

主题

392

回帖

1172

积分

高中生

Rank: 4

金币
409
好评
1
信誉
100

考神MT论坛帅哥MT论坛最佳新人

QQ
发表于 2026-3-27 10:11:01 来自手机  | 显示全部楼层  来自 安徽
**好的,已进入第一步分析(StubApp 核心逻辑)。**

我已经仔细阅读了 `Lcom/stub/StubApp;` 的完整 Smali 代码。**这个壳的加密方式已经基本清楚了**,而且**解密过程非常简单**(不是复杂 AES 或 VM 壳,只用了单字节 XOR)。

### 1. 加固/壳类型总结
- 这是**一个轻量级 Dex 加密壳**(非全虚拟机壳)。
- 壳入口是标准的 `com.stub.StubApp`。
- 真实 Application 类名通过 `AndroidManifest.xml` 的 meta-data(key 是 Base64 解码后的字符串)传入 StubApp,保存在 `this.a` 字段。
- 壳主要在 `e()` 方法中处理 **assets** 里的加密文件。

### 2. 加密方式(ehbidafb 文件的解密逻辑)
在 `StubApp.e()` 方法中,关键代码如下(我已提取核心逻辑):

```smali
# 遍历 assets 目录所有文件
invoke-virtual {v3, v4}, Landroid/content/res/AssetManager;->list(Ljava/lang/String;)[Ljava/lang/String;

# 如果文件名以 "ehbidafb" 开头(Base64 解码后正是 "ehbidafb")
const-string v8, "xatkxI9j7p+IxJVlaGJpZGFmYmPun4jElceYx5jEjw=="
invoke-static {v8}, Lcom/stub/StubApp;->ieabaeba(Ljava/lang/String;)Ljava/lang/String;

# 打开文件并读取全部字节
invoke-virtual {v8, v7}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
... read into byte[] v9 ...

# === 解密核心:单字节 XOR 0x66 ===
new-array v7, v8, [B
:loop
aget-byte v11, v9, v10
xor-int/lit8 v11, v11, 0x66
int-to-byte v11, v11
aput-byte v11, v7, v10
add-int/lit8 v10, v10, 1
```

**解密算法极简**:
- 对 `assets/ehbidafb*` 文件的**每一个字节**执行 `byte ^= 0x66`(即 XOR 0x66,也可写作 `byte = byte ^ 102`)。
- 解密后的数据被保存到内部私有目录:`getDir("picture", 0)` 下,文件名类似 `1.jpg`、`2.jpg` 等(其实是解密后的 dex 文件,只是伪装成 .jpg)。
- 然后通过反射修改 ClassLoader 的 `pathList.dexElements`,把这些解密后的 .jpg 文件作为 dex 加入加载路径(典型的动态加载 dex 手法)。

**注意**:
- 它会处理所有以 “ehbidafb” 开头的文件(可能有多个分片 dex)。
- 你之前提到的 “assets 文件里面两个,ehbidafb文件”,很可能就是这个加密 dex(可能还有另一个)。

### 3. 如何解密(实际操作方法)
**最简单粗暴的方式(推荐)**:

1. 把 APK 解压,找到 `assets/` 目录下的 **ehbidafb** 文件(或任何以 ehbidafb 开头的文件)。
2. 用任意十六进制编辑器或 Python 脚本对整个文件做 **XOR 0x66** 操作。
3. 解密后得到的就是原始的 classes.dex(或 classes2.dex 等)。文件头应该变成 `dex\x0A` 开头。

**Python 一键解密脚本示例**(直接复制运行):

```python
with open("ehbidafb", "rb") as f:
    data = f.read()

decrypted = bytes(b ^ 0x66 for b in data)

with open("decrypted.dex", "wb") as f:
    f.write(decrypted)

print("解密完成!保存为 decrypted.dex")
```

解密后可以用 **jadx**、**apktool** 或 **dex2jar** 直接打开查看真实代码。

### 4. 后续壳行为
- 解密并加载 dex 后,壳会通过反射创建真实的 Application(保存在 `this.a`),并调用它的 `attachBaseContext` 和 `onCreate`。
- 还做了 ActivityLifecycleCallbacks 注册,可能用于进一步反调试或界面控制。
- 有简单的签名校验(MD5),但不影响解密。

---

**下一步建议**:
- 你可以先用上面脚本解密 `assets/ehbidafb`(或所有 ehbidafb 开头的文件),得到原始 dex 后告诉我结果(或直接用 jadx 打开看真实包名和主逻辑)。
- 如果解密后还是有多个 dex,或者你想确认是否有 .so 参与,我可以继续帮你分析:
  - 搜索 lib 目录下的 .so 文件
  - 分析真实 Application 类(一旦拿到真实 dex 里的类名)
  - 检查是否有更深的加密

你现在可以试着解密文件,解完后告诉我:
- 文件大小变化
- 文件头是否正常(前 8 字节)
- 用 jadx 打开后看到了什么真实包名/类名

或者直接说 “帮我看解密后的 dex” / “继续分析真实代码”,我再指导你下一步。

这个壳的保护强度**不算高**
这是Claude4.6分析的参考一下吧
已有1人评分金币 理由
辉悅金刚 + 1 感谢

查看全部评分 总评分:金币 +1 

回复

使用道具 举报

7

主题

1480

回帖

6908

积分

硕士生

Rank: 6Rank: 6

金币
443
好评
22
信誉
112
发表于 2026-3-27 11:49:03 来自手机  | 显示全部楼层  来自 云南
好简陋的加密,这猜都能猜出来是异或0x66

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已有1人评分金币 理由
辉悅金刚 + 1 感谢帮助

查看全部评分 总评分:金币 +1 

回复

使用道具 举报

13

主题

1111

回帖

3173

积分

大学生

Rank: 5Rank: 5

金币
1634
好评
2
信誉
102

MT论坛新人考神MT论坛最佳新人

发表于 2026-3-27 12:47:24 来自手机  | 显示全部楼层  来自 福建
LOVELUICU 发表于 2026-3-27 10:11
**好的,已进入第一步分析(StubApp 核心逻辑)。**

我已经仔细阅读了 `Lcom/stub/StubApp;` 的完整 Smali ...

有没好用的工具可以直接解密呢?
回复

使用道具 举报

64

主题

3259

回帖

9177

积分

硕士生

Rank: 6Rank: 6

金币
2194
好评
21
信誉
104

MT论坛帅哥MT论坛新人考神MT论坛最佳新人

发表于 2026-3-27 13:43:25 来自手机  | 显示全部楼层  来自 江苏
辉悅金刚 发表于 2026-3-27 12:47
有没好用的工具可以直接解密呢?

解密并去除弹窗版https://158610.lanzoul.com/ivmDS3lnumkf
已有1人评分金币 理由
辉悅金刚 + 1 感谢大佬帮助

查看全部评分 总评分:金币 +1 

回复

使用道具 举报

13

主题

1111

回帖

3173

积分

大学生

Rank: 5Rank: 5

金币
1634
好评
2
信誉
102

MT论坛新人考神MT论坛最佳新人

发表于 2026-3-27 14:08:10 来自手机  | 显示全部楼层  来自 福建
qeruiop 发表于 2026-3-27 13:43
解密并去除弹窗版https://158610.lanzoul.com/ivmDS3lnumkf

感谢大佬的帮助,但是链接打不开
回复

使用道具 举报

8

主题

633

回帖

3657

积分

大学生

Rank: 5Rank: 5

金币
1841
好评
2
信誉
101
发表于 2026-3-27 18:16:09 来自手机  | 显示全部楼层  来自 安徽
辉悅金刚 发表于 2026-3-27 14:08
感谢大佬的帮助,但是链接打不开

浏览器转到电脑模式
回复

使用道具 举报

13

主题

1111

回帖

3173

积分

大学生

Rank: 5Rank: 5

金币
1634
好评
2
信誉
102

MT论坛新人考神MT论坛最佳新人

发表于 2026-3-27 18:22:00 来自手机  | 显示全部楼层  来自 福建
2432629 发表于 2026-3-27 18:16
浏览器转到电脑模式

谢谢
回复

使用道具 举报

7

主题

392

回帖

1172

积分

高中生

Rank: 4

金币
409
好评
1
信誉
100

考神MT论坛帅哥MT论坛最佳新人

QQ
发表于 2026-3-27 20:05:24 来自手机  | 显示全部楼层  来自 安徽
辉悅金刚 发表于 2026-3-27 12:47
有没好用的工具可以直接解密呢?

termux安装Python运行Python脚本
回复

使用道具 举报

341

主题

2339

回帖

7972

积分

硕士生

Rank: 6Rank: 6

金币
1050
好评
9
信誉
101
发表于 2026-3-29 21:40:10 来自手机  | 显示全部楼层  来自 浙江
加固吧
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表