-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsysinfo_call.c
More file actions
32 lines (26 loc) · 891 Bytes
/
Copy pathsysinfo_call.c
File metadata and controls
32 lines (26 loc) · 891 Bytes
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
/*
* sysinfo_call.c
*
* Invoca a syscall sysinfo(2) no kernel modificado pelo patch do T01.
* O patch injeta printk() na implementação da syscall, que escreve
* uma string no kernel ring buffer — visível via dmesg.
*
* Compilado estaticamente para rodar em initramfs sem libc disponível.
*
* Syscall sysinfo no x86-64: número 99
* Registrador rax = 99 (número da syscall)
* Registrador rdi = ponteiro para struct sysinfo
*/
#include <sys/sysinfo.h>
#include <stdio.h>
int main(void) {
struct sysinfo info;
printf("[sysinfo_call] Invocando syscall sysinfo(2)...\n");
if (sysinfo(&info) != 0) {
printf("[sysinfo_call] ERRO: sysinfo() retornou erro.\n");
return 1;
}
printf("[sysinfo_call] OK. Uptime: %ld segundos\n", info.uptime);
printf("[sysinfo_call] Confira a saida do patch com: dmesg | grep SOLUCAO\n");
return 0;
}