From 0a8192168ab7e96f5bf2686254bf9d171f874b29 Mon Sep 17 00:00:00 2001 From: Haeter <3461569+haeter525@users.noreply.github.com> Date: Mon, 29 Nov 2021 00:31:28 +0800 Subject: [PATCH] fix(gui): update Quark report parsing (#1289) (PR #1291) --- .../java/jadx/gui/plugins/quark/QuarkReportData.java | 3 ++- .../java/jadx/gui/plugins/quark/QuarkReportPanel.java | 10 +++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportData.java b/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportData.java index ff5a32fdc..951456107 100644 --- a/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportData.java +++ b/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportData.java @@ -3,6 +3,7 @@ package jadx.gui.plugins.quark; import java.util.List; import java.util.Map; +import com.google.gson.JsonElement; import com.google.gson.annotations.SerializedName; import jadx.core.utils.Utils; @@ -15,7 +16,7 @@ public class QuarkReportData { public List permissions; List native_api; - List combination; + List combination; List> register; } diff --git a/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportPanel.java b/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportPanel.java index 7fff7076c..2313b3891 100644 --- a/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportPanel.java +++ b/jadx-gui/src/main/java/jadx/gui/plugins/quark/QuarkReportPanel.java @@ -32,6 +32,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.beust.jcommander.Strings; +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; import jadx.api.JavaClass; import jadx.api.JavaMethod; @@ -246,13 +248,15 @@ public class QuarkReportPanel extends ContentPanel { } add(node); } - List combination = crime.combination; - if (Utils.notEmpty(combination)) { + List combination = crime.combination; + if (Utils.notEmpty(combination) && combination.get(0) instanceof JsonArray) { TextTreeNode node = new TextTreeNode("Combination"); int size = combination.size(); for (int i = 0; i < size; i++) { TextTreeNode set = new TextTreeNode("Set " + i); - for (String mth : combination.get(i)) { + JsonArray array = (JsonArray) combination.get(i); + for (JsonElement ele : array) { + String mth = ele.getAsString(); set.add(resolveMethod(mth)); } node.add(set);