![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
GremlinProg,
Earnest, J0ker, Вы когданибудь видели 97-байтный exe pe файл? Он состоит из 2-байтной сигнатуры MZ выровненной до 4х байт, PE заголовка размером 120 байт (виртуально)), таблицы секций и кода, размещенных внутри PE заголовка. Что характерно значение IMAGE_FILE_HEADER.SizeOfOptionalHeader, там гораздо меньше 97байт, и уж никак не равно размеру опционального заголовка. Я не проверял, но поидее SizeOfOptionalHeader может быть отрицательным, вроде бы ничто не запрещает размещать таблицу секций до PE заголовка) Вы можете иметь какие угодно "представления о программировании", но далеко не факт что они согласуются с действительностью. UPD: к сожалению файл с отрицательным SizeOfOptionalHeader неработает (видимо дело в том, что SizeOfOptionalHeader - это word, а в загрузчике используется movzx, поэтому знак не сохраняется и переполнения не происходит Это сообщение отредактировал(а) GoldFinch - 3.12.2008, 19:33 |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
J0ker, под парсингом обычно понимается разбор, интрепретация. А бинарные файлы просто тупо читают подряд - потому что у них заранее известный строго определенный формат - иначе не прочитаешь. Можно, конечно, заявить, что вот если первый байт равен 11, то дальше идут данные AAA, а если там 22, то это BBB. Но назвать это "разбором" - это уж как-то чересчур...
У меня вообще такое чувство, что тебе нимб жать должен... Добавлено через 2 минуты и 16 секунд GoldFinch, ИСКЛЮЧИТЕЛЬНО БЛАГОДАРЯ ТЕБЕ Я ПРОЗРЕЛА: Я НИЧЕГО НЕ ПОНИМАЮ В ПРОГРАММИРОВАНИИ, И ВООБЩЕ В ЖИЗНИ! ПОЙДУ ПОВЕШУСЬ. -------------------- ... |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
Earnest, я пАражаюсь твоей корректности ) мне б такие нервы
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| J0ker |
|
||||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: -1 Всего: 14 |
называть это как все нормальные люди - tool http://www.google.com/search?q=portable+executable+parsing надеюсь аргументов более чем достаточно? "если слово непонятно - спроси"
да неужели? ну сделай секцию, скажем "dskjrhglkjdsahglkawjhfpoaehgoigsadfgiasigeoirf" а теперь вопрос - с чем она сольется?
не влияет - оптимизация настраивается, выравнивание секций настраивается
не влияет
см. п.2 секция нужна одна - для размещения структуры с данными ну тут одно из двух - либо вы издеваетесь, либо никогда этим не занимались
формат PE расписан и там нет никаких неточностей. Просто многие статьи с его изложением не отличаются полнотой. Так что написание кода с магическими числами не оправдывается ленью ну дык
неправда значение одних полей влияет на интерпретацию других - следовательно имеет место быть парсинг "Можно, конечно, заявить, что вот если первым type-specifier, то дальше идет init-declarator-list, а если там namespace, то это namespace-definition. Но назвать это "разбором" - это уж как-то чересчур..." Добавлено @ 21:03 это word потому, что это РАЗМЕР, и интерпретируется как РАЗМЕР - что совершенно логично Это сообщение отредактировал(а) J0ker - 3.12.2008, 21:11 |
||||||||||||
|
|||||||||||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
J0ker > "это word потому, что это РАЗМЕР, и интерпретируется как РАЗМЕР - что совершенно логично"
- это типа шутка? "формат PE расписан и там нет никаких неточностей. Просто многие статьи с его изложением не отличаются полнотой." так где он полностью расписан-то, если статьи все неполные? Кстати, если вы так хорошо знаете формат PE, может объясните одну вещь, почему файл с секцией у которой raw offset = 0 -неработает, а файл с секцией у которой raw offset = 1 -работает? Вроде бы согласно документации raw offset должен быть выровнен по границе 0х200, как в 1м случае, а вот на практике оказывается наоборот. Или вот еще пример, когда я размещаю директорию импорта в заголовке, если не заполнить IMAGE_DIRECTORY_ENTRY_IAT, файл неработает, хотя нигде не говорится ни о какой связи между размещением директории импорта и IAT. |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: -1 Всего: 14 |
нет, это типа жестокая реальность нашего мира новый анекдот J0ker -- GoldFinch, а какой у вас размер ноги? GoldFinch -- -61445 J0ker -- я вам открою страшную тайну все официальные форматы расписаны в соответствующих спецификациях я не говорил, что хорошо знаю формат я писал парсер PE, и столкнулся с тем, что многие статьи, даже известных людей, страдают неполнотой всю интересующую вас информацию вы можете почерпнуть в спецификации, которая, кстати, имеет страниц 50 - так что не все так просто |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
чтото я не нашел там информации по приведенным мной вопросам. может там и достаточно информации для написания парсера, только вот не всегда надо разбирать файл, иногда и собирать, а то и пересобирать... |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: -1 Всего: 14 |
т.е. вы хотите меня убедить, что вы собираете и пересобираете, а про наличие спецификации впервые услышали от меня, затем изучили за.... момент... 15 минут 50 страниц текста и чего-то там не нашли? |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
я видел круче (точнее я создал) 78 байт, ELF файл Присоединённый файл ( Кол-во скачиваний: 2 )
small 0,08 Kb-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
Да, спецификацию увидел только сегодня, раньше ее не искал, т.к. по отзывам там ничего полезного. За 5-10минут поиском (ctrl-f) посмотрел ключевые моменты, понял что отзывы не врут, т.к. там в самом деле ничего интересного нет. Видимо люди писавшие системный загрузчик относились к спецификации спокойно, поэтому он работает не совсем по спецификации. Т.к. де-факто формат файла определяется исключительно алгоритмом обработки этого файла. MAKCim, на то он и ELF, что не PE вы бы еще 1байтовый .com в виде примера привели, или пустой php скрипт Это сообщение отредактировал(а) GoldFinch - 3.12.2008, 22:31 |
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: -1 Всего: 14 |
в таком случае вы вправе выразить свои претензии создателям загрузчика, и я даже думаю они вполне могут вам ответить, если вы грамотно все напишете однако вы отклонились от темы по поводу различия понятий размер и смещение Добавлено через 11 минут и 48 секунд да, кстати, GoldFinch, вот специально залез в спецификацию и, не поверите, не нашел там никаких "raw offset" в заголовке секций |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
||||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: -1 Всего: 14 |
вот именно Это сообщение отредактировал(а) J0ker - 3.12.2008, 23:37 |
|||
|
||||
| GremlinProg |
|
||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
как же для такой "tool", среди прочих, выделить принадлежность к процессу линковки и предназначение ее использования именно в пайпе для MSVC? даже в веб-программировании, простая консолька - CGI-программа. серое абстрактное название ни как не выделяет ее функционал, все равно, что назвать MSVC программой, или той же tool
среди предложенного списка 2 ссылки относятся к парсингу, остальные к PE, ты быхоть посмотрел для начала список: в первой ссылке слово парсинг используется 2 раза: в названии и в неграмотном втором предложении во второй человек спрашивает, собственно, как парсить PE и я не удивляюсь, почему вопрос так и остался без ответа, поскольку людей, которые писали парсер PE вижу первый раз в жизни: аргументация, J0ker, по крайней мере, весьма странная и это тебе второе предупреждение, ты уже ведешь себя как GoldFinch
если в СОFF для символа создаешь отдельную секцию, название не имеет значения, то она сливается в PE в секцию кода или данных вместе со всеми остальными секциями "символов", если в коде линковщику не указан другой путь директивами code_seg, data_seg и т.п. это уже третье предупреждение, других не будет
чесно говоря, хотел прокомментировать, но ты это уже сделал парой постами выше:
остальные редиректы абсурдны -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||||||
|
|||||||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
В принципе, о терминах спорить не конструктивно... Для кого-то и прыжок со стула - полет... GremlinProg, ребята ведут себя хоть и не взросло, но наказаний, ей-богу, не заслуживают, так что брось (предупреждать). А насчет нервов... у меня такой опыт борьбы с неадекватными пользователями... это как мускулы - от регулрных упражнений они крепчают. Кстати, не напомните, что мы тут обсуждаем? -------------------- ... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |