String initial
=
"unidbg"
;
int
initial_length
=
initial.length();
/
/
开辟一块的空间来存放第一个参数
MemoryBlock initial_msg
=
emulator.getMemory().malloc(initial_length
+
1
, false);
UnidbgPointer initial_msg_ptr
=
initial_msg.getPointer();
/
/
将参数
1
写入
initial_msg_ptr.write(initial.getBytes());
/
/
开辟一块
16
字节的空间来存放第三个参数
MemoryBlock digest
=
emulator.getMemory().malloc(
16
, false);
UnidbgPointer digest_ptr
=
digest.getPointer();
/
/
准备参数
List
<
Object
> args
=
new ArrayList<>();
args.add(initial_msg);
args.add(initial_length);
args.add(digest_ptr);
/
/
执行
module.callFunction(emulator,
0x7A8D
+
1
, args.toArray());
/
/
打印结果
Inspector.inspect(digest_ptr.getByteArray(
0
,
0x10
),
"digest"
);