/boot/System.map

Тема в разделе "WASM.UNIX", создана пользователем featurelles, 5 янв 2010.

  1. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Доброе утро, хотел узнать, как програмно можно создать файл /boot/System.map для текущего ядра Linux ?
    Предвидя ответы, то что данный файл создаётся автоматически при установке ОС, прошу всёже придерживаться заданого вопроса, и сказать, как его создать именно програмно (желательно из ядра)
     
  2. friackazoid

    friackazoid New Member

    Публикаций:
    0
    Регистрация:
    4 июн 2009
    Сообщения:
    102
    В общем случае процесс должен выглядеть примерно так

    Код (Text):
    1. export sys_execve;
    2.  
    3. printk ("%X - sys_execve", sys_execve);
    Работа с файлами из ядра происходит по такому http://www.linuxjournal.com/article/8110 принципу.
    Другое дело что большая часть представленных в System.map адресов не является экспортируемой и что бы их получить надо сильно хакать.

    Мы как то раз делали нехорошую вешь ввиде чтения всего кода ядра прямо по адресам в цикле и распознавали нужные объекты по сигнатурам. Кстати способ себя полностью оправдал, так как попадание было 90% процентов. Но этот способ приминительно к линуксу сильно хромает ибо ядро сильно обновляется каждые месяца 2, да и пересорка ядра у многих людей прямо таки хобби =)
     
  3. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    friackazoid
    Я видимо действительно очень много кофе пью, и из-за кофеина раздрожителен.

    Отвечаю).. нет не так.

    нет, не по такому.

    Лично мне пофиг, экспортируемая переменная или нет, всёравно её можно использовать.
    Сильно хакать? ))) ..а что такое хакать в вашем понимании? :)

    Вопрос был очень прост)
    Как мне создать файл, аналогичный System.map ?? (чтоб там были записаны все адреса и переменные данного ядра) ( ведь при установке, System.map создаётся, хочу знать как именно =) )
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    из сорцов ядра или по уже собранному?
     
  5. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    n0name
    По уже собранному.

    Но как получить из сорцев ядра, я тоже не знаю.
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    featurelles
    Не при установке, а при сборке. А вообще плохо ищешь, nm или mksysmap.
     
  7. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Booster
    Очень сильно боюсь показаться глупым, но
    ???? ((((
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    featurelles
    >Очень сильно боюсь показаться глупым, но
    В гугле забанили?
    http://linux.about.com/library/cmd/blcmdl1_nm.htm
    mksysmap - скрипт, который вызывается при сборке ядра и вызывает nm.
     
  9. DevL

    DevL New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2007
    Сообщения:
    11
    можно для начала попробывать посмотреть на /proc/kallsyms
     
  10. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    DevL
    Можно только для начала, а что делать когда его нету?
     
  11. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    featurelles
    Да сих пор не понял? ^) nm vmlinux. Ещё можно написать парсер файла, благо исполняемый формат открыт.
     
  12. featurelles

    featurelles New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2009
    Сообщения:
    562
    Booster

    Я весь день (тоесть с начала создания этой темы) спал. Сегодня ночью разберусь с этим nm :)