Здравствуйте. Пытаюсь собрать 2nd-init из git https://github.com/a853/a853_2nd_init Наложил следующие изменения:
--- 2nd-init.orig.c 2012-12-24 10:01:18.919125141 +0400 +++ 2nd-init.c 2012-12-24 10:04:52.284183159 +0400 @@ -22,7 +22,7 @@ #include <sys/wait.h> #include <stdlib.h> #include <unistd.h> -#include <linux/user.h> +#include <sys/user.h> #include <stdio.h> #include <string.h> @@ -153,7 +153,7 @@ /* Main */ int main(int argc, char** argv) { - struct pt_regs regs; + struct pt_regs *regs; char buff[512]; char init_env[512]; @@ -307,10 +307,10 @@ ptrace(PTRACE_GETREGS, 1, NULL, ®s); - regs.ARM_r0 = injected_data_address + 0x0100; /* char* filename */ - regs.ARM_r1 = injected_data_address + 0x0000; /* char** argp */ - regs.ARM_r2 = injected_data_address + 0x0008; /* char** envp */ - regs.ARM_pc = execve_address; + regs->ARM_r0 = injected_data_address + 0x0100; /* char* filename */ + regs->ARM_r1 = injected_data_address + 0x0000; /* char** argp */ + regs->ARM_r2 = injected_data_address + 0x0008; /* char** envp */ + regs->ARM_pc = execve_address; printf("Setting /init PC to: 0xlX.\n", execve_address); Но при этом всё ловлю ошибки:
gcc 2nd-init.c -o 2nd-init 2nd-init.c: В функции «get_free_address»: 2nd-init.c:111:6: предупреждение: подавление присваивания и модификатор размера использованы вместе в формате gnu_scanf [-Wformat] // Ворнинг - фиг бы с ним, но можно тоже пофиксить если не трудно 2nd-init.c: В функции «main»: 2nd-init.c:310:6: ошибка: доступ по указателю на неполный тип 2nd-init.c:311:6: ошибка: доступ по указателю на неполный тип 2nd-init.c:312:6: ошибка: доступ по указателю на неполный тип 2nd-init.c:313:6: ошибка: доступ по указателю на неполный тип
Заранее спасибо за любые идеи как можно поправить эти ошибки.
|