Kaynağa Gözat

Fixed #TASK_QT-9810 commit inject_asm_code for arm

root 1 yıl önce
ebeveyn
işleme
d6fa1279c3

+ 6 - 1
ebpftracer/ebpf/utrace/java/net/client.probe.bpf.c

@@ -402,8 +402,13 @@ SEC("uprobe/javaaot_asmnop")
 int javaaot_asmnop(struct pt_regs *ctx) {
 	bpf_printk("enter the ret javaaot_asmnop\n");
 	unsigned long jhttpdata_ptr;
-	jhttpdata_ptr = (ctx)->regs[2];
+#if defined(__x86_64__)
+	jhttpdata_ptr = (ctx)->rsi;
+	unsigned long len_from_rbp_ptr = (ctx)->rsp-0x8;
+#elif defined(__aarch64__)
+	jhttpdata_ptr = (ctx)->regs[1];
 	unsigned long len_from_rbp_ptr = (ctx)->regs[16]-0x8;
+#endif
 	bpf_printk("[len_from_rbp_ptr] <0x%lx>", len_from_rbp_ptr);
 
 	// 捕获第六个参数 data_count

+ 5 - 0
ebpftracer/ebpf/utrace/netcore/net/client.probe.bpf.c

@@ -172,8 +172,13 @@ SEC("uprobe/netcore_asmnop")
 int netcore_asmnop(struct pt_regs *ctx) {
 	bpf_printk("enter the ret netcore_asmnop\n");
 	unsigned long jhttpdata_ptr;
+#if defined(__x86_64__)
 	jhttpdata_ptr = (ctx)->rsi;
 	unsigned long len_from_rbp_ptr = (ctx)->rsp-0x8;
+#elif defined(__aarch64__)
+	jhttpdata_ptr = (ctx)->regs[1];
+	unsigned long len_from_rbp_ptr = (ctx)->regs[16]-0x8;
+#endif
 	bpf_printk("[len_from_rbp_ptr] <0x%lx>", len_from_rbp_ptr);
 
 	// 捕获第六个参数 data_count