From a3ea514521ff174b96666b344814c64ed64bfe76 Mon Sep 17 00:00:00 2001 From: alienhe <753458929@qq.com> Date: Fri, 15 Jan 2021 17:10:33 +0800 Subject: [PATCH] fix: elemSize=0 fill_array_data_payload insn obfuscation (PR #1082) Co-authored-by: hexun --- .../main/java/jadx/core/dex/instructions/FillArrayData.java | 1 + .../main/java/jadx/plugins/input/dex/insns/DexInsnFormat.java | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/jadx-core/src/main/java/jadx/core/dex/instructions/FillArrayData.java b/jadx-core/src/main/java/jadx/core/dex/instructions/FillArrayData.java index ec1693b43..8a8bf4957 100644 --- a/jadx-core/src/main/java/jadx/core/dex/instructions/FillArrayData.java +++ b/jadx-core/src/main/java/jadx/core/dex/instructions/FillArrayData.java @@ -39,6 +39,7 @@ public final class FillArrayData extends InsnNode { private static ArgType getElementType(int elementWidthUnit) { switch (elementWidthUnit) { case 1: + case 0: return ONE_BYTE_TYPE; case 2: return TWO_BYTES_TYPE; diff --git a/jadx-plugins/jadx-dex-input/src/main/java/jadx/plugins/input/dex/insns/DexInsnFormat.java b/jadx-plugins/jadx-dex-input/src/main/java/jadx/plugins/input/dex/insns/DexInsnFormat.java index 72b64ad21..d13c0be6a 100644 --- a/jadx-plugins/jadx-dex-input/src/main/java/jadx/plugins/input/dex/insns/DexInsnFormat.java +++ b/jadx-plugins/jadx-dex-input/src/main/java/jadx/plugins/input/dex/insns/DexInsnFormat.java @@ -336,6 +336,10 @@ public abstract class DexInsnFormat { data = array; break; } + case 0: { + data = new byte[0]; + break; + } default: throw new DexException("Unexpected element size in FILL_ARRAY_DATA_PAYLOAD: " + elemSize); }