MCPcopy Create free account
hub / github.com/axhlzy/FridaDebugger / writeMemoryValue

Function writeMemoryValue

agent/memory-write.ts:7–56  ·  view source on GitHub ↗
(address: NativePointer, value: PointerInput | number | string, type: MemoryWriteType = "pointer")

Source from the content-addressed store, hash-verified

5export type MemoryWriteType = "pointer" | "ptr" | "u8" | "u16" | "u32" | "u64" | "s8" | "s16" | "s32" | "s64" | "float" | "double" | "utf8";
6
7export function writeMemoryValue(address: NativePointer, value: PointerInput | number | string, type: MemoryWriteType = "pointer"): void {
8 try {
9 switch (type) {
10 case "pointer":
11 case "ptr":
12 address.writePointer(toPointer(value as PointerInput));
13 break;
14 case "u8":
15 address.writeU8(Number(value));
16 break;
17 case "u16":
18 address.writeU16(Number(value));
19 break;
20 case "u32":
21 address.writeU32(Number(value));
22 break;
23 case "u64":
24 address.writeU64(toUInt64(value));
25 break;
26 case "s8":
27 address.writeS8(Number(value));
28 break;
29 case "s16":
30 address.writeS16(Number(value));
31 break;
32 case "s32":
33 address.writeS32(Number(value));
34 break;
35 case "s64":
36 address.writeS64(toInt64(value));
37 break;
38 case "float":
39 address.writeFloat(Number(value));
40 break;
41 case "double":
42 address.writeDouble(Number(value));
43 break;
44 case "utf8":
45 address.writeUtf8String(String(value));
46 break;
47 default:
48 log(`[mem] unsupported write type ${String(type)}`, "red");
49 return;
50 }
51
52 log(`[mem] write ${type} ${address} = ${value}`, "green");
53 } catch (error) {
54 log(`[mem] write failed at ${address}: ${String(error)}`, "red");
55 }
56}
57
58function toUInt64(value: PointerInput | number | string): number | UInt64 {
59 if (typeof value === "number") {

Callers 1

writeMemoryMethod · 0.85

Calls 4

toPointerFunction · 0.85
toUInt64Function · 0.85
toInt64Function · 0.85
logFunction · 0.85

Tested by

no test coverage detected