-
-
[分享][讨论]探索vsp扁平化混淆
-
发表于: 2024-4-2 09:47 2448
-
这段代码看起来像是Dalvik虚拟机的字节码,这是Android操作系统中用于执行Java字节码的虚拟机。Dalvik字节码通常在Android应用的APK文件中以.dex(Dalvik Executable)文件的形式存在。这段代码是经过反编译的,可能来自一个Android应用的APK文件。
代码的结构如下:
sparse-switch v0, :sswitch_data_342
- 这行代码开始了一个稀疏开关(sparse switch)结构,它用于根据寄存器v0的值跳转到不同的标签。:sswitch_data_342
可能是一个标签,指向一个包含跳转目标的表。goto :goto_14b
- 这行代码跳转到标签:goto_14b
。:sswitch_151
- 这是一个标签,可能是一个开关结构的一部分。if-eqz v3, :cond_157
- 这行代码检查寄存器v3是否等于0,如果等于0,则跳转到标签:cond_157
。const v0, 0xbe60
- 这行代码将常量值0xbe60赋给寄存器v0。goto :goto_14b
- 跳转回标签:goto_14b
。:cond_157
- 这是一个标签,可能是前面if-eqz
指令的跳转目标。:sswitch_157
- 这是一个标签,可能是另一个开关结构的一部分。const v0, 0xbe41
- 这行代码将常量值0xbe41赋给寄存器v0。goto :goto_14b
- 再次跳转回标签:goto_14b
。:sswitch_15b
- 这是一个标签,可能是另一个开关结构的一部分。const/16 v0, 0x6ad
- 这行代码将常量值0x6ad赋给寄存器v0的低16位。const v1, 0xbe7f
- 这行代码将常量值0xbe7f赋给寄存器v1。:goto_160
- 这是一个标签,可能是跳转的目标。const v4, 0xbe90
- 这行代码将常量值0xbe90赋给寄存器v4。xor-int/2addr v1, v4
- 这行代码执行按位异或
混淆样本
http://dula.fun/uploads/20240331203734_6609590eb85eb.apk
老铁们,有幸欢迎评论
赞赏
- [推荐]实现抽离oncreate加固App方法 2667
- 安卓控制流扁平化vsp混淆 2980
- [分享][讨论]探索vsp扁平化混淆 2449