车智赢unidbg调用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package demo;


import com.github.unidbg.AndroidEmulator;
import com.github.unidbg.Module;
import com.github.unidbg.linux.android.AndroidEmulatorBuilder;
import com.github.unidbg.linux.android.AndroidResolver;
import com.github.unidbg.linux.android.dvm.*;
//import com.github.unidbg.linux.android.dvm.jni.ProxyClassFactory;
import com.github.unidbg.memory.Memory;

import java.io.File;


public class che extends AbstractJni {
public static AndroidEmulator emulator;
public static Memory memory;
public static VM vm;
public static DalvikModule dm;
public static Module module;

public static final String processName = "com.che168.autotradercloud";
public static final String fileName = "unidbg-android/apks/che/atc241.apk";
public static final String libName = "unidbg-android/apks/che/libnative-lib.so";

che() {

// 1.创建设备(32位或64位模拟器), 具体看so文件在哪个目录。 在armeabi-v7a就选择32位
emulator = AndroidEmulatorBuilder.for32Bit().setProcessName(getClass().getSimpleName()).build();

// 2.获取内存对象(可以操作内存)
memory = emulator.getMemory();

// 3.设置安卓sdk版本(只支持19、23)
memory.setLibraryResolver(new AndroidResolver(23));

// 4.创建虚拟机(运行安卓代码需要虚拟机,就想运行py代码需要python解释器一样)
vm = emulator.createDalvikVM(new File(fileName));
vm.setJni(this);
//vm.setVerbose(true); //是否展示调用过程的细节

// 5.加载so文件
DalvikModule dm = vm.loadLibrary(new File(libName), false);
//dm.callJNI_OnLoad(emulator);

// 6.dm代表so文件,dm.getModule()得到module对象,基于module对象可以访问so中的成员。
module = dm.getModule();

}

public static void main(String[] args) {
che obj = new che();
obj.sign();
}

public void sign() {
DvmClass checkSignUtil = vm.resolveClass("com/autohome/ahkit/jni/CheckSignUtil");

StringObject obj = checkSignUtil.callStaticJniMethodObject(emulator,
"get3desKey(Landroid/content/Context)Ljava/lang/String",
vm.resolveClass("android/content/Context").newObject(null)
);

System.out.println(obj.getValue());
}

}

车智赢unidbg调用
https://kingjem.github.io/2024/10/14/车智赢unidbg调用/
作者
Ruhai
发布于
2024年10月14日
许可协议