为了调用jd.apk中的Java_com_jingdong_common_utils_BitmapkitUtils_getSignFromJni方法,我们需要使用unidbg工具。以下是详细步骤:

  1. 安装unidbg工具并导入jd.apk

首先,需要安装unidbg工具,并将jd.apk导入到工具中。这可以通过以下命令完成:

adb push jd.apk /data/local/tmp/ adb shell chmod 777 /data/local/tmp/jd.apk

然后,在unidbg工具中加载jd.apk,这可以通过以下命令完成:

java -jar unidbg.jar /data/local/tmp/jd.apk

  1. 获取Java对象并调用方法

接下来,我们需要获取Java对象并调用方法。我们可以使用以下代码来获取Java对象:

DvmClass clazz = vm.resolveClass("com/jingdong/common/utils/BitmapkitUtils"); DvmObject<?> context = new DvmObject<>(vm, vm.resolveClass("android/content/Context"), null); String[] args = {"arg1", "arg2", "arg3", "arg4", "arg5", "arg6"};

DvmObject<?>[] dvmArgs = new DvmObject[args.length + 1]; dvmArgs[0] = context;

for (int i = 1; i < dvmArgs.length; i++) { dvmArgs[i] = new StringObject(vm, args[i-1]); }

我们首先使用vm.resolveClass方法获取BitmapkitUtils类,然后创建一个DvmObject来表示context对象。最后,我们使用一个循环来创建一个DvmObject数组,用于表示7个参数。

接下来,我们可以使用以下代码来调用方法:

DvmMethod method = clazz.getMethod("getSignFromJni", "Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;"); StringObject sign = (StringObject) method.callObject(null, dvmArgs);

这里,我们使用clazz.getMethod方法获取getSignFromJni方法,并使用method.callObject方法来调用该方法。我们传递null作为第一个参数,因为该方法是静态方法。最后,我们将返回值强制转换为StringObject对象。

  1. 打印结果

最后,我们可以使用以下代码将结果打印出来:

System.out.println("Sign: " + sign.getValue());

这里,我们将返回的字符串值打印到控制台上。

总结

通过使用unidbg工具,我们可以轻松调用jd.apk中的Java_com_jingdong_common_utils_BitmapkitUtils_getSignFromJni方法。我们首先获取Java对象,然后调用方法,并将结果打印到控制台上。

unidbg 调用jdapk 中的 Java_com_jingdong_common_utils_BitmapkitUtils_getSignFromJni 方法该方法有7个参数其中第一个为context 其他都是string写一个示例详细步骤并且解说

原文地址: https://www.cveoy.top/t/topic/bvbe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录