А в чем отличие библиотеки -- для ассемблера она или нет? Ф-ия библиотеки, написанной на любом языке может быть вызвана из кода на ассемблере...
Zlyden Странно, что оно вообще собралось -- static также ограничивает область видимости ф-ии файлом, в котором она определена. Т.е. если main...
Zlyden .dynstr -- просто секция, куда скидываются все строки, принадлежащие .dynsym (может не только ей, точно не знаю). Т.е. какой-то символ из...
Zlyden Странно, только что собрал delme.c: int f() { return 0; } static int g() { return 0; } Собирал вот так: 'cc delme.c...
Zlyden С -фиями static не работает? Должен быть тот же эффект: //Not visible static int f() { return 0; } //Visible int g() { return 0;...
Zlyden А эти переменные объявлены как static? В Linux все, что не static попадает в секции '.symtab'/'.dynsym'.
Это информация о символах из секции '.symtab'. Удаляется командой strip filename.
Погибло мое сообщение :(. Было так: 'name_of_a_file'::name_of_a_function Имя файла с кавычками.
Как сказал JAPH -- использовать iret/retf, предаврительно сформировав корректные eflags, ss, esp, cs, eip/ss, esp, cs, eip в стеке.
Думаю, это оно: http://ru.wikipedia.org/wiki/Сослан_на_планету_Земля
А в чем проблема? Загружаем программу в gdb, выполняем 'b name_of_a_function_in_shared_object' затем 'r' и ждем, когда произойдет вызов ф-ии. gdb...
Из user-mode это сделать невозможно, т.к. иначе вся защита пойдет лесом. Поэтому придется писать драйвер. Как вариант, отдельные порты...
Сделал так: ./configure ... CFLAGS="-g". Кстати, скомпилировать glibc с -O0 нельзя из-за config.h.in: #if !defined __ASSEMBLER__ && !defined...
Cr4sh Ага, примерно так сейчас и делаю. configure нашелся -- оказывается, если исходник качать через apt-get source libc6, то приходит урезанная...
Может я плохо смотрел, но там нет configure. Сегодня вечером проверю еще раз.
Мое почтение всем. Пытаюсь скомпилировать glibc для отладки загрузчика ELF'ов (ld.so). Собрать хочу с отладочной информацией (-g) и без...
Как уже сказали -- отлаживать можно в *nix/Win с помощью Bochs (http://bochs.sf.net). Bochs дает довольно информативное описание причин перезагрузки.
Самое простое -- вынести массив в отдельную секцию с доступом rw.
Так же, как и у остальных исполняемых -- OptionalHeader::AddressOfEntryPoint. Точка входа одна, а экспортируемых ф-ий может быть много. Речь,...
Если гарантированно есть стековые кадры (а они, судя по всему, есть), то так: mov eax, [ebp] mov eax, [eax+4] and eax, 0FFFFF000h
Имена участников (разделяйте запятой).