Отладчик под Linux.

Тема в разделе "WASM.UNIX", создана пользователем int_0x80, 6 июл 2006.

  1. int_0x80

    int_0x80 New Member

    Публикаций:
    0
    Регистрация:
    4 июл 2006
    Сообщения:
    25
    Столкнулся с отсутствием нормальных отладчиков под линукс. Точнее нормальный там только 1-gdb, но он совершенно не может работать с программами которые не хотят что бы их отлаживали. Решил написать
    подобный отладчик(что то похожее на OllyDbg),который мог бы работать с файлами без section header'а, самотрассирующимся кодом и др. Но вот в чём вопрос можно ли это реализовать при помощи ptrace или нужно выносить всю функциональность в модуль ядра?
    Хотелось бы узнать ваше мнение.
     
  2. Bert

    Bert New Member

    Публикаций:
    0
    Регистрация:
    11 май 2005
    Сообщения:
    20
    Адрес:
    Russia
    Думаю, лучше не пользоваться ptrace вообще. Вот здесь неплохо написано, почему:
    http://the-dude.sourceforge.net/dude_paper.txt

    Есть уже попытки написать отладчик, похожий на Olly:
    http://www.codef00.com/projects.php#Debugger
    Хотя я сам его не пробовал и про него сказать ничего не могу. ;)

    А вообще вот статья "Beginners Guide to Basic Linux Anti Anti Debugging Techniques"
    http://www.codebreakers-journal.com/index.php/CodeBreakersMagazine/article/view/14
    Автор использует только objdump и gdb. Конечно, там элементарные приемы, и, скорее всего, ты их уже знаешь. Но, думаю, другим пригодится. (Хм..., в ней даже есть моя первая ссылка).
     
  3. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    linice кто-то юзал вообще? как он в работе?
     
  4. Bert

    Bert New Member

    Публикаций:
    0
    Регистрация:
    11 май 2005
    Сообщения:
    20
    Адрес:
    Russia
    Вполне рабочий, хотя есть некоторые досадные ограничения. Если пользоваться gdb-like отладчиками непривычно, то он будет в самый раз.
    Однако, против него можно сказать следующее:
    1. Если нужен отладчик уровня ядра, то уже есть (и давно) такие вещи как kgdb или kdb. Имхо, они гораздо более зрелые.
    2. У меня сложилось впечатление, что проект уже минимум год как заброшен. И, думаю, потому что ... см. п. 1.
     
  5. Kola

    Kola New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2004
    Сообщения:
    69
    Вот еще интересный отладчик
    http://www.linice.com/
     
  6. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Смотрим выше.
     
  7. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    Кстати, по поводу Linice, я там не понял, нужно иметь исходники Linux'а, чтобы его подгрузить, или он и без прикомпиляции работает, просто compile-run?
     
  8. letopisec

    letopisec New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2004
    Сообщения:
    228
    >нужно иметь исходники Linux'а, чтобы его подгрузить

    исходники нужны чтобы его скомпилять.

    Broken Sword
    >linice кто-то юзал вообще? как он в работе?

    не смог им пользоваться - очень часто виснул
     
  9. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    По причине отсутствия исходников Linux'а не могу пользоваться linice'ом. А жаль. Под Windows я только SoftIce в качестве основного отладчика использовал, так как он kernel-mode и при этом достаточно крут по сравнению с другими отладчиками режима ядра.
    Есть что-нибудь похожее, не требующее исходников?
     
  10. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Linice Kernel Level Debugger

    Quick Start:

    You need to have kernel sources installed, or at least compile kernel headers for the kernel version for which you are linking Linice.
    =====================
    Нужны только тексты ядра, но достаточно инклюдов на самом деле. А вы хотели чтобы Линуксоиды сделали самонастройку на ядро, как у софтайса :) Так извиняюсь ядро в Линуксе такое гибкое, что вряд ли это возможно.
     
  11. NullSessi0n

    NullSessi0n New Member

    Публикаций:
    0
    Регистрация:
    20 янв 2006
    Сообщения:
    322
    valterg
    Вот-вот, эта строчка меня и повергла в ужас. Нет у меня даже include:dntknw:
    Да понятно. Иначе бы выход нашли бы давно.
     
  12. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    NullSessi0n
    Почему же они не интегрируют этот линайс в популярные дистры? У меня, кстати, куча разных дистров валяется, а исходники только в одном.
     
  13. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Quantum
    Потому что там есть gdb & kgdb. А линайс делали для тех, кто привык к айсу. Поэтому лучше освоить gdb, чем пользоваться сырым продуктом. Кстати есть порт gdb под Винды. Можно тренироваться :)
     
  14. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    valterg
    Он всегда был в Cygwin'е.

    В любом дистре полно текстовых редакторов, браузеров, медиа-плееров и т.д. Почему отладчик должен быть один? Возможно, линайс сырой ещё (а светит ли ему избавиться от сырости?) но в Линуксе почти весь софт такой :)
     
  15. Same

    Same New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2003
    Сообщения:
    114
    Не линукса а ядра =)

    Народ что вы проблему делаете ? заходим на kernel.org скачиваем понравившиеся исходники ядра - компилим ядро - и ядро будет поновее и исходники присутствуют
    не только linice требует наличие исходников ядра а многие проги - например установщик VMWare
    =)
     
  16. Same

    Same New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2003
    Сообщения:
    114
    Ничего подобного = большинство популярных пакетов уже устоялось
     
  17. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    Same
    Диалапщики сейчас кого-то камнями закидают :) Я же не для того Линукс на DVD купил, чтоб потом ещё несколько болванок исходников откуда-то выкачивать.

    Час - полтора?

    Это тема отдельного разговора.

    Что же я постоянно натыкаюсь на явные баги и мелкие недоделки, то в ядре, то в сишной либе, то в компиляторе этом гнутом? И дистры у меня не такие старые и под линукс/бсд я начал кодить относительно недавно.

    Добавил:

    Может, у меня просто руки кривые и искривила их винда, ведь я уже привык, что если моя прога не пашет, то ошибка 99.9% в коде моей проги, а не где-то в другом месте.
     
  18. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Quantum
    Во-первых, тексты ядра не так много занимают, во-вторых, есть дистрибутивы с текстами, в-третьих, ядро-то не надо копилировать - нужны инклюды для того ядра, под которое будем компилить.
    Стабильность систем штука хитрая : 95-й Виндус содержал в реестре патчи для 200 популярных пакетов и игр - вот вам и объяснение почему в 95-м "шли все старые игры". Шли естественно не все, но что значит слово тысяч недовольных против миллионов. Патчи присутствуют и в 2000-м и в ХП и совершенно не афишируются - прогу патчат без вашего ведома или тихо "кончают" :) В Линуксе честно "вылетают" и "виснут".
     
  19. Same

    Same New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2003
    Сообщения:
    114
    Ну извините - тогда пусть диалапщики у друзей поспрашивают =)
    крайнии версии ядра не привышают 40 мб

    Зависит от мошности твоего кома - у мя компилится за 40 максимум
    Сконфигурировал ядро - поставил компилится ушел пить чай и сё =)

    В том то и дело что у тебя дистрибутивы не такие уж старые - разработчики спешать всё поскорее потому часть покетов содержит ошибки в коде
    Правда мне самому таки глюки не разу не попадались - 100% всех глюков и ошибок было по вине моих рук)
    а компилятор и правда иногда того - если поставить ключь опитимизации некотрые проги работают немного иначе чем было задумано =)

    На счет надежности - я использую Debian - на мой взгляд самый надёжный в этом смысле (если интересно прочитай на debian.org требования к версии stable - правда некотороя чась пакетов устарела - но не что не мешает откомпилить любую самую новую версию любого пакета)
     
  20. r90

    r90 New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2005
    Сообщения:
    898
    да ладно тебе, когда я был диалапщиком ядро у меня было всегда самое последнее. на kernel.org не только ядро лежит, но и патчи. ;)
    Но что же за линух ты купил, что на нём нету сорцов ядра?

    PIII 1GHz, ~400Mb после make distclean минут за 20-30 собирается.
    не всё естественно, но на хрена собирать, например, дрова к видяхе которую я никогда не видел и никогда не увижу?