forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.LINUX.CHAINIK

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 22.06.2021, 11:15
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию gdb gui ЧЕЛОВЕЧЕСКИЙ существует?

Rinat H. Sadretdinow написал(а) к All в Jun 21 09:51:48 по местному времени:

Нello All!

$Subj!

Чтобы по удобству был уровня досовского Turbo Debugger, или виндового OllyDbg, или x64dbg? На крайний случай даже согласен на неудобный интерфейс Visual Studio Debugger, который тоже не фонтан, но всё же лучше голого gdb. Но чтобы не был такой как WinDGB и не radare (или почивший в бозе SoftICE), это такая же шняга как сам gdb по человеколюбию). Этот команднострочный интерфейс gdb явно сделан садистами для мазохистов. Но не DDD на который без слёз не взглянешь (хотя и лучше чем голый gdb), не gdbgui который вообще на Python написан и не QCreator/KDevelop которые IDE, я хочу просто GUI фронтенд для gdb, возможности IDE мне нафиг не сдались.

Bye!

--- GoldED+/LNX 1.1.5-b20180707
Ответить с цитированием
  #2  
Старый 23.06.2021, 11:13
Leonid Gribanov
Guest
 
Сообщений: n/a
По умолчанию gdb gui ЧЕЛОВЕЧЕСКИЙ существует?

Leonid Gribanov написал(а) к Rinat H. Sadretdinow в Jun 21 12:06:20 по местному времени:

Привет, Rinat!

22 июн 21 09:51, Rinat Н. Sadretdinow -> All:


RS> Чтобы по удобству был уровня досовского Turbo Debugger, или виндового
RS> OllyDbg, или x64dbg? На крайний случай даже согласен на неудобный
RS> интерфейс Visual Studio Debugger, который тоже не фонтан, но всё же
RS> лучше голого gdb. Но чтобы не был такой как WinDGB и не radare (или
RS> почивший в бозе SoftICE), это такая же шняга как сам gdb по
RS> человеколюбию). Этот команднострочный интерфейс gdb явно сделан
RS> садистами для мазохистов. Но не DDD на который без слёз не взглянешь
RS> (хотя и лучше чем голый gdb), не gdbgui который вообще на Python
RS> написан и не QCreator/KDevelop которые IDE, я хочу просто GUI фронтенд
RS> для gdb, возможности IDE мне нафиг не сдались.

А нафига он тебе вообще?
В "голом" gdb глянул строку, в которой память течет и всё.
Закрыл. Забыл.

С наилучшими пожеланиями, Leonid.

--- -Пиши, старик, пиши! Мы тебя не покинем.
Ответить с цитированием
  #3  
Старый 23.06.2021, 13:23
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию gdb gui ЧЕЛОВЕЧЕСКИЙ существует?

Rinat H. Sadretdinow написал(а) к Leonid Gribanov в Jun 21 12:16:38 по местному времени:

Нello Leonid!

23 Jun 21 12:06, you wrote to me:

RS>> Чтобы по удобству был уровня досовского Turbo Debugger, или
RS>> виндового OllyDbg, или x64dbg?

LG> А нафига он тебе вообще?
LG> В "голом" gdb глянул строку, в которой память течет и всё.
LG> Закрыл. Забыл.

Ну как сказать... Чтобы с удобством трассировать чужие программы, для которых ни исходников нет, ни символьной иноформации в них нет.

Bye!

--- GoldED+/LNX 1.1.5-b20180707
Ответить с цитированием
  #4  
Старый 23.06.2021, 20:42
Leonid Gribanov
Guest
 
Сообщений: n/a
По умолчанию gdb gui ЧЕЛОВЕЧЕСКИЙ существует?

Leonid Gribanov написал(а) к Rinat H. Sadretdinow в Jun 21 21:33:24 по местному времени:

Привет, Rinat!

23 июн 21 12:16, Rinat Н. Sadretdinow -> Leonid Gribanov:

LG>> А нафига он тебе вообще?
LG>> В "голом" gdb глянул строку, в которой память течет и всё.
LG>> Закрыл. Забыл.

RS> Ну как сказать... Чтобы с удобством трассировать чужие программы, для
RS> которых ни исходников нет, ни символьной иноформации в них нет.

Насколько я помню, gdb гарантирует работу с бинарниками собранными только GCC с параметром -O0 (без оптимизации).

(По крайней мере с -O2 и -O3 он полноценно дебажить не может)

Откуда ты уверен, что бинарник собран именно GCC, а не каким-нибудь шлангом, да еще и вдобавок с отключенной оптимизацией?


С наилучшими пожеланиями, Leonid.

--- -Пиши, старик, пиши! Мы тебя не покинем.
Ответить с цитированием
  #5  
Старый 23.06.2021, 22:02
Nil A
Guest
 
Сообщений: n/a
По умолчанию gdb gui ЧЕЛОВЕЧЕСКИЙ существует?

Nil A написал(а) к Leonid Gribanov в Jun 21 20:27:58 по местному времени:

Нello, Leonid!

Wednesday June 23 2021 21:33, from Leonid Gribanov -> Rinat Н. Sadretdinow:

LG>>> А нафига он тебе вообще?
LG>>> В "голом" gdb глянул строку, в которой память течет и всё.
LG>>> Закрыл. Забыл.

Необходимость посетить gdb возникает не только когда течёт память. Намного чаще надо проанализировать core dump, например.

RS>> Ну как сказать... Чтобы с удобством трассировать чужие программы,
RS>> для которых ни исходников нет, ни символьной иноформации в них
RS>> нет.

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

LG> Насколько я помню, gdb гарантирует работу с бинарниками собранными
LG> только GCC с параметром -O0 (без оптимизации).

Никто никому ничего не гарантирует в мире gdb. Как минимум, надо было бы упоминуть про gcc -g опцию с разными параметрами, которые хоть что-то могут "гарантировать".

LG> (По крайней мере с -O2 и -O3 он полноценно дебажить не может)

-O Это просто разные уровни оптимизации. На каждом уровне добавляется "пачка" параметров https://gcc.gnu.org/onlinedocs/gcc/O...e-Options.html

Например, даже при -O2 можно добавить -fno-omit-frame-pointer чтобы стек-трейс был адекватным. При этом многие передаваемые переменные будут optimized out и их значение влоб не напечатаешь, плюс много чего будет inline, плюс циклы могут быть развёрнуты и пр. оптимизации, которые не так красиво ложаться на то, чтобы бежать построчно по исходнику.

LG> Откуда ты уверен, что бинарник собран именно GCC, а не каким-нибудь
LG> шлангом, да еще и вдобавок с отключенной оптимизацией?

Я не вижу проблемы с отладкой бинарей собранных клангом, а ты?

Best Regards, Nil
--- GoldED+/LNX 1.1.5
Ответить с цитированием
  #6  
Старый 24.06.2021, 02:33
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию gdb gui ЧЕЛОВЕЧЕСКИЙ существует?

Rinat H. Sadretdinow написал(а) к Leonid Gribanov в Jun 21 01:23:40 по местному времени:

Нello Leonid!

23 Jun 21 21:33, you wrote to me:

RS>> Ну как сказать... Чтобы с удобством трассировать чужие программы,
RS>> для которых ни исходников нет, ни символьной иноформации в них
RS>> нет.

LG> Насколько я помню, gdb гарантирует работу с бинарниками собранными
LG> только GCC с параметром -O0 (без оптимизации).

Мне как-то всё равно что и кто там гарантирует, я говорю про чужие программы, которые я хочу трассировать в ассемблерном виде. А чем они там были собраны мне как-то фиолетово.

LG> (По крайней мере с -O2 и -O3 он полноценно дебажить не может)

Мне не надо отлаживать, мне надо пошагово* *выполнять

LG> Откуда ты уверен, что бинарник собран именно GCC, а не каким-нибудь
LG> шлангом, да еще и вдобавок с отключенной оптимизацией?

Да мне без разницы чем что-то было собрано, мне надо удобство трассировки.

Bye!

--- GoldED+/LNX 1.1.5-b20180707
Ответить с цитированием
  #7  
Старый 24.06.2021, 05:12
Nil A
Guest
 
Сообщений: n/a
По умолчанию gdb gui ЧЕЛОВЕЧЕСКИЙ существует?

Nil A написал(а) к Rinat H. Sadretdinow в Jun 21 04:00:40 по местному времени:

Нello, Rinat!

Thursday June 24 2021 01:23, from Rinat Н. Sadretdinow -> Leonid Gribanov:

RS> Мне как-то всё равно что и кто там гарантирует, я говорю про чужие
RS> программы, которые я хочу трассировать в ассемблерном виде. А чем они
RS> там были собраны мне как-то фиолетово.

Ооо, а может быть тебе и не нужно в рантайме дебажить, может тебе просто надо дизасемлер, типа IDA Pro или бесплатный от NSA ghidra?

RS> Мне не надо отлаживать, мне надо пошагово* *выполнять

Пошагово в асме выполнять немного скучно как-то. В этом плане дизасемблеры тебе графы строят, хорошее визуальное представление что куда вызывается и по каким условиям куда перепрыгиваешь. А ещё там есть внутренние модули, они некий C-подобный исходник пытаются сгенерировать, иногда даже классно получается.

RS> Да мне без разницы чем что-то было собрано, мне надо удобство
RS> трассировки.

Ну ты же хочешь понимать фреймы, т.е. что ты в какой-то функции, какие-то конвенции о передаче параметров.. иначе опять же повторюсь, скучно очень получается "трассировать".

Best Regards, Nil
--- GoldED+/LNX 1.1.5
Ответить с цитированием
  #8  
Старый 24.06.2021, 10:22
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию gdb gui ЧЕЛОВЕЧЕСКИЙ существует?

Rinat H. Sadretdinow написал(а) к Nil A в Jun 21 09:15:50 по местному времени:

Нello Nil!

24 Jun 21 04:00, you wrote to me:

RS>> Мне как-то всё равно что и кто там гарантирует, я говорю про
RS>> чужие программы, которые я хочу трассировать в ассемблерном виде.
RS>> А чем они там были собраны мне как-то фиолетово.

NA> Ооо, а может быть тебе и не нужно в рантайме дебажить, может тебе
NA> просто надо дизасемлер, типа IDA Pro или бесплатный от NSA ghidra?

Я прекрасно знаю и про IDA, и про Ghidra, и оба у меня есть и обоими я пользуюсь.

RS>> Мне не надо отлаживать, мне надо пошагово* *выполнять

NA> Пошагово в асме выполнять немного скучно как-то. В этом плане
NA> дизасемблеры тебе графы строят, хорошее визуальное представление что
NA> куда вызывается и по каким условиям куда перепрыгиваешь.

"Иногда лучше жевать, чем говорить" (C) Stimorol. Так вот иногда гораздо лучше и гораздо проще посмотреть по месту, трассируя, чем разглядывать графы в дизассемблере. А иногда, например в случае запакованного и/или обфусцированного кода иначе как по месту и не посмотришь, любой дизассемблер выдаст только кашу из непойми чего.

NA> А ещё там есть внутренние модули, они некий C-подобный исходник
NA> пытаются сгенерировать, иногда даже классно получается.

Для программ уровня "Нello, world!" да, для программ посложнее почти всегда получается, а для реальных требуется доводка руками довольно конкретная. Говорю как тот, кто на этом собаку съел.

RS>> Да мне без разницы чем что-то было собрано, мне надо удобство
RS>> трассировки.

NA> Ну ты же хочешь понимать фреймы, т.е. что ты в какой-то функции,
NA> какие-то конвенции о передаче параметров.. иначе опять же повторюсь,
NA> скучно очень получается "трассировать".

Кому скучно, а кому и нет. Некоторые, вон, от футбола пруццо, ни один матч по телевизору не пропускают, а мне это так скучно, нудно и зауныло, что за все свои годы я ни* *разу не смотрел целиком ни одного футбола или хоккея. Приходилось, именно что приходилось смотреть куски этого говна когда в больнице лежал. И "повезло" мне что попал как раз во время очередного чемпионата и однопалатники начинали смотреть эту муть с самого утра и заканчивали лишь поздним вечером, чтобы на следующий день смотреть абсолютно то же самое, только с другими игроками. Вот тогда я проклял всё, мне было не просто скучно, мне было так, что я готов был убить кого угодно просто за произнесённое слово "футбол".

А вот вручную "понимать фреймы" и "конвенции о передаче параметров" для меня вовсе даже не скучно. Но выписывать для этого отдельные команды в командной строке как для gdb, как для WinDBG, как для умершего уже SoftICE скучно и нудно. Поэтому я хотел бы frontend, который делает работу с gdb столь же удобной и приятной, как работа с Turbo Debugger или OllyDbg.

Bye!

--- GoldED+/LNX 1.1.5-b20180707
Ответить с цитированием
  #9  
Старый 24.06.2021, 11:43
Nil A
Guest
 
Сообщений: n/a
По умолчанию gdb gui ЧЕЛОВЕЧЕСКИЙ существует?

Nil A написал(а) к Rinat H. Sadretdinow в Jun 21 10:23:34 по местному времени:

Нello, Rinat!

Thursday June 24 2021 09:15, from Rinat Н. Sadretdinow -> Nil A:

RS> Я прекрасно знаю и про IDA, и про Ghidra, и оба у меня есть и обоими я
RS> пользуюсь.

Раз знаешь, то посмотри на новую версию Ghidra 10, в неё добавили дебагер для виндовз и линукс.
Практически, это морда над dbgeng.dll/WinDbg под виндовз, и морда над GDB под линукс - видимо то, что ты ищешь.

RS> "Иногда лучше жевать, чем говорить" (C) Stimorol.

Тебе здесь пытаются помочь, вроде бы как.

RS> А иногда, например в случае запакованного и/или обфусцированного кода
RS> иначе как по месту и не посмотришь, любой дизассемблер выдаст только
RS> кашу из непойми чего.

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

NA>> А ещё там есть внутренние модули, они некий C-подобный исходник
NA>> пытаются сгенерировать, иногда даже классно получается.
RS> Для программ уровня "Нello, world!" да, для программ посложнее почти
RS> всегда получается, а для реальных требуется доводка руками довольно
RS> конкретная. Говорю как тот, кто на этом собаку съел.

Вообще-то в IDA Pro плагин Нex Rays как раз представляет огромную ценность обычно. Ghidra по качеству генерируемого псевдокода пока немного отстаёт от Нex Rays.
На практике, если там какой-то ООП, то без дебаг-символов тебе декомпилятор не разберёт структуры данных - здесь магии нет. Недавно смотрел на Qt приложение, так под коду все QString и прочие виджеты как объекты все на месте. На асемблер этого всего Qt хозяйства я бы не хотел смотреть.

RS> Кому скучно, а кому и нет. Некоторые, вон, от футбола пруццо, ни один
RS> матч по телевизору не пропускают, а мне это так скучно, нудно и
RS> зауныло, что за все свои годы я ни* *разу не смотрел целиком ни
RS> одного футбола или хоккея.

Оффтоп.

RS> Поэтому я хотел бы frontend, который делает работу с gdb столь же
RS> удобной и приятной, как работа с Turbo Debugger или OllyDbg.

Выбирай из опенсорцных
Data Display Debugger https://www.gnu.org/software/ddd/
KDbg https://www.kdbg.org/
Ups http://ups.sourceforge.net/
Xxgdb

Best Regards, Nil
--- GoldED+/LNX 1.1.5
Ответить с цитированием
  #10  
Старый 24.06.2021, 13:13
Rinat H. Sadretdinow
Guest
 
Сообщений: n/a
По умолчанию gdb gui ЧЕЛОВЕЧЕСКИЙ существует?

Rinat H. Sadretdinow написал(а) к Nil A в Jun 21 11:32:44 по местному времени:

Нello Nil!

24 Jun 21 10:23, you wrote to me:

RS>> Я прекрасно знаю и про IDA, и про Ghidra, и оба у меня есть и
RS>> обоими я пользуюсь.

NA> Раз знаешь, то посмотри на новую версию Ghidra 10, в неё добавили
NA> дебагер для виндовз и линукс. Практически, это морда над
NA> dbgeng.dll/WinDbg под виндовз, и морда над GDB под линукс - видимо то,
NA> что ты ищешь.

Для Linux я это уже посмотрел, для Windows ещё нет. Но думается мне что для Windows как был OllyDbg у меня основным (и x64dbg на подхвате), так и останется. А вот для Linux надо будет посмотреть попристальнее. Но я надеялся что существуют альтернативы. Тот же дебаггер в IDA для Windows не оставил никаких радостных впечатлений, он IMНO для программ уровня "Нello, world!" хорош, а для реальные программы не тянет.

RS>> "Иногда лучше жевать, чем говорить" (C) Stimorol.

NA> Тебе здесь пытаются помочь, вроде бы как.

Да я в курсе какбе.

RS>> А иногда, например в случае запакованного и/или обфусцированного
RS>> кода иначе как по месту и не посмотришь, любой дизассемблер
RS>> выдаст только кашу из непойми чего.

NA> В случае упакованного или зашифрованного бинаря, его сначала запускают
NA> под отладчиком, находят точку, когда он распаковывается и делают дамп
NA> памяти.

...и если в бинаре используются антиотладочные и/или антидамповые приёмы, то грустно и печально сначала идут курить бамбук, а после возвращаются в отладчик и пошагово исследуют то, из-за чего всё внезапно вдруг стало раком под отладчиком, а без него прекрасно работает.

NA> Далее уже по распакованному бинарю запускают дисаземблер.

Это не наш метод. Наш метод это когда в одном окне/одной VM программа под отладчиком, а во втором окне/второй VM эта же программа в IDA/Ghidra. И руками-глазами трассировать в первом и синхронизировать с ним второе. И только после этого результат дизассемблирования во втором превращается во что-то более или менее достойное.

NA> Вообще-то в IDA Pro плагин Нex Rays как раз представляет огромную
NA> ценность обычно. Ghidra по качеству генерируемого псевдокода пока
NA> немного отстаёт от Нex Rays.

Тут не согласен. Они оба друг друга стОят -- в одном лучше то, но хуже это, в другом наоборот. Так что я использую и IDA, и Ghidra и результаты обеих уже "линкую" вручную в нечто удобоваримое. Или в голове "линкую" если надо вчера и очень быстро, или руками указываю IDA что она не нашла или криво нашла, но нашла Ghidra и сохраняю полученную IDB на будещее.

NA> На практике, если там какой-то ООП, то без дебаг-символов тебе
NA> декомпилятор не разберёт структуры данных - здесь магии нет.

Надо просто знать и уметь кодогенерацию особо распространённых компиляторов: как они внутри себя VMT строят, как C++ exceptions обрабатывают, в какие конструкции всякие for (...) раскладывают и т.д. У меня в голове такая база знаний давно уже есть. И я её регулярно пополняю. Пока в состоянии. Вот лет через дцать уже не смогу, там уже дядя Альцгеймер будет владеть моим мозгом и ему будет совсем неинтересно поддерживать эту базу знаний в актуальном состоянии.

NA> Недавно смотрел на Qt приложение, так под коду все QString и прочие
NA> виджеты как объекты все на месте. На асемблер этого всего Qt хозяйства
NA> я бы не хотел смотреть.

Qt как раз в IDA выглядит довольно прозрачно. Даже без Нex Rays. А уж с ним вообще можно сказать что готовый исходный код. Даже без отладочных символов.

NA> Выбирай из опенсорцных
NA> Data Display Debugger https://www.gnu.org/software/ddd/

Когда-то я только его и использовал за неимением ничего другого. Да и сейчас иногда запускаю.

NA> KDbg https://www.kdbg.org/

Почему-то не удалось загрузить в него бинарь без отладочных символов.

NA> Ups http://ups.sourceforge.net/

Не смотрел пока что, но чего-то он с 2003-го года не обновляется вообще.

NA> Xxgdb

А это какая-то жалкая попытка сделать те же команды gdb доступными из менюшек.

Ладно, фиг с ним. На нет и суда нет. Попробую пока что отладчик в Ghidra для Linux посмотреть, авось чего получится.

Bye!

--- GoldED+/LNX 1.1.5-b20180707
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:31. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot