Извлечение ядра из работающей системы

El\b(delimitador de palabra )se puede utilizar en lugar de \<y \>para señalar el principio o el final de una palabra.

Si este es el contenido de unfile:

Hi
this
is test file
to carry out few regular expressions

Entonces:

$ grep -e '\breg' file
to carry out few regular expressions
3
24.05.2019, 15:58
1 ответ

Нет, это невозможно.

Основная проблема заключается в том, что, несмотря на то, что образ ядра загружается непосредственно в память, этот образ изменяется в момент загрузки ядра. Хотя ядро ​​на самом деле не является программой,многие правила о том, как программа компилируется/загружается в память, все еще применяются.


В качестве примера возьмем следующий код C:

char x=5

int some_function() {
    x=100;
}

Первая строка x=5говорит компилятору поместить число 5 в байт где-то в памяти для последующего использования. Когда программа запустится, этот байт будет загружен прямо в память вместе со всем остальным.

Последняя строка x=100указывает компилятору написать машинный код, который при выполнении перезапишет исходное значение. Поэтому, если вы извлекли работающую программу из памяти и скомпилировали ее -, вы могли бы увидеть что-то вроде этого

char x=100

int some_function() {
    x=100;
}

Фактически работающая программа перезаписала -себя.


Аналогично этому, пользовательские -наземные программы хранятся в формате ELF . Когда вы запускаете пользовательскую программу, загрузчик программы должен собрать образ программы из множества частей. Теперь правила для ядра немного другие, но есть параллель с modprobe, которая загружает другие файлы в пространство памяти работающего ядра.


Таким образом, хотя вы можете найти способ выгрузить всю память вашего ядра, результат на самом деле не будет похож на исходный образ ядра и, конечно, его будет недостаточно для загрузки с него.

Здесь я боюсь, что ваш лучший вариант — пойти к системным администраторам и попросить у них копию или запросить доступ.

1
27.01.2020, 21:29

Теги

Похожие вопросы