LINUX.ORG.RU

Насильно вгрузить модуль от другой версии ядра.

 , ,


1

1

Жил-был один иностранный разработчик. И написал он модуль по работе с сетью для Американской ОС. Очень этот модуль приглянулся КГБ. Они похитили американца, но разговорить не успели - выпил капсулу с Новичком. И где исходники лежат, узнать теперь не получится. Казалось бы - да фиг то с ним, нужное ядро подобрать не проблема, но только отбрасывает оно систему в прошлое. И прибивает к нему гвоздями. Попробовали доблестные разведчики modprobe –force, но на поверку оказалось что он делает обычный insmod. А тот ключа force не знает. И вместо ошибки «Invalid module format» выдаёт «Exec format error». Яндексение выдало что существуют какие-то таблицы символов, в которых прописаны адреса входа в функции ядра, и ежели не совпадут они с модулевскими, наступит хаос и враги победят. Однако есть шанс, что адреса-таки совпадут, либо поправить их можно hex-редактором, вместе с контрольными суммами, если это потребуется. Но модуль нужно любой ценой вгрузить в пространство ядерное, хоть с перфокарт, хоть пересборкой insmod-a, хоть правкой vermagic. Если не получится - то весь отдел расстреляют из пулемёта. Для простоты, версия ядра отличается 3й цифрой и далеко не убежала. Как такое реализовать?


Беги оттуда, пока не расстреляли.

Если после исправления версии в модуле оно загрузится и будет работать, то значит сильно повезло.

Реализовать недостающие функции - не проблема. Исходники всех версий ядер есть.

Различия в параметрах ядерных функций тоже можно обойти.

Есть проблема которая неразрешима - это разница в размерах структур (точнее смещения до полей структур).

Если модуль работал с железом, то либо увольнятся, либо откатываться на требуемую версию ядра.

Если модуль не работал с железом или есть спеки на железо, то появляется третий вариант - написать модуль заново :)

Какая версия ядра требуется модулю?

vel ★★★★★
()
Последнее исправление: vel (всего исправлений: 1)

думаю для начала сравнить vermagic от modinfo на разных модулях(требуемом и одном из текущего ядра).
Если разнятся не только в части номера - то «древняя индейская изба» будет.
Иначе можно уже попробовать что то творить с переделкой.

Atlant ★★★★★
()

модуль подключающий модуль

doc0
()

На бутылку посадить тебя или американца, быстрее процесс пойдет

One ★★★★★
()

Смотря чем этот модуль по факту занимается. Если и правда работа с сетью, то его отреверсить быстрее будет и по умственным усилиям экономия выйдет.

anonymous
()

модуль нужно любой ценой вгрузить в пространство ядерное, хоть с перфокарт, хоть пересборкой insmod-a, хоть правкой vermagic

если не хочешь реверсить, вот твоя цена

Казалось бы - да фиг то с ним, нужное ядро подобрать не проблема, но только отбрасывает оно систему в прошлое. И прибивает к нему гвоздями.

а то это все сработает сегодня, но не сработает завтра и

весь отдел расстреляют из пулемёта.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Ну, это же тролль.

А так – с помощью kvm можно запустить сколько угодно ядер любых разумных версий одновременно.

i586 ★★★★★
()

Американской ОС

Это про винду, что ли?…

hobbit ★★★★★
()
Ответ на: комментарий от vel

vel

Какая версия ядра требуется модулю?

4.z.y-x Таковой не существует. Придётся править ему исходники, чтобы добавить -x.

Atlant

думаю для начала сравнить vermagic от modinfo на разных модулях(требуемом и одном из текущего ядра).

Под текущее или сколько-нибудь новее не существует.

Смотря чем этот модуль по факту занимается. Если и правда работа с сетью, то его отреверсить быстрее будет и по умственным усилиям экономия выйдет.

Подскажите, что почитать. Занимался этим только под винду, в линуксе опен-соурс, даже и не думал что на такое попаду.

t184256

а то это все сработает сегодня, но не сработает завтра и...

Завтра или ишак сдохнет, или Падишах, или я уже свалю. Всё быстро меняться стало. Некоторые решения делаются на 2 года, а то и через месяц уже не надо. Немного неприятно отлаживать серваки в заграничном датацентре, перенеся их с железа, чтобы через месяц фирма закрылась. Кризисы, что поделать. Или под расширившуюся фирму тянуть кабеля, делать всё красиво, а потом директор в бегах с долгом 4 ляма сотрудникам, и мне за 3 месяца. Жизнь - хоть за майнинг держись...

i586

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

Будет ли видеть ПО, которое пользует модуль трафик в хосте? И команду если не сложно.

hobbit

Это про винду, что ли?…

К сожалению, нет.

doc0

модуль подключающий модуль

Вот это интересно. Пакет я перепишу, который пытается подгрузить модуль при установке и ядра сбилдить под него. Но как такое сделать надо почитать. Сам не кодер, админ. И ядру реально пофиг, что валидные модули грузят? Или там проставку надо будет написать, которая адреса конвертирует как-то?

c0unt0
() автор топика
Ответ на: комментарий от c0unt0

Ну да, расстреляйся из пулемёта сам, чего томить.

Как ты меня кастанул так, что уведомления не прилетело?

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Нажал ответить на сообщение верхнего юзера, прописал кв. скобкаuserкв. скобкаИМЯРЕКкв. скобка/userкв. скобка. Поменял раскладку на ЛОРКОДЕ. Позови остальных и скажи как правильно. И пулемёт с цинками патронов отправь, если есть. Правда не обещаю, что себя ))

c0unt0
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.