Скорее всего она появляется при отладочной сборке.
PE Section names – re-visited .gfids – section added by new Visual Studio (14.0); purpose unknown .giats – section added by new Visual Studio (14.0); purpose unknown .gljmp – section added by new Visual Studio (14.0); purpose unknown
Ранг: 16.3 (новичок), 2thx Активность: 0.15↗0.22 Статус: Участник
Создано: 07 марта 2017 00:34 · Поправил: zombi-vadim · Личное сообщение · #3
Jupiter пишет: Скорее всего она появляется при отладочной сборке. Она появляется и при сборке Deubg так и при Release, у меня всегда содержит пару строчек кода и буфер заполненный нулями. И как этот мусор убрать из сборки ? purpose unknown цель неизвестна!! Но цель то есть!!
guard flag, в google: IMAGE_GUARD_FLAG_FID_SUPPRESSED или просто обновите компилятор, у вас видимо как раз тот самый сломанный билд который не реагирует на флаги защиты и включает ее даже со сброшенными флагами.
Jupiter пишет: Добавь объединение секций к опциям линкера: Вы прям глаза открыли .... Добавить непонятный мусор в другую секцию. Я знаю как это делать, мне интересно что в ней. И почему shellstorm решил что у меня сломанный билд я вообще не понял!
Ранг: 431.7 (мудрец), 390thx Активность: 0.73↘0.32 Статус: Участник
Создано: 07 марта 2017 02:11 · Поправил: dosprog · Личное сообщение · #7
Та секция чем-то мешает? А то впечатление, что снесши голову, начинается плач по утраченным волосам. Пользуйте MSVC 2.0 - там никакие "странные" секции не добавляются.
Jupiter пишет: Самый простой вариант - слить с другой секцией
Или не трогать вовсе..
Скорее всего, то статические инициализированные переменные.
) Подключают тучи неведомых гигантских библиотек и ничего, как так и надо, а тут какая-то секция..
Слить эту секцию с другой при компоновке - надёжнее, чем удалять её из готового файла. Если в Release сборке со всеми оптимизациями эта секция остаётся, значит её лучше не удалять. Самый простой вариант - слить с другой секцией
dosprog пишет: Та секция чем-то мешает? Она мне не мешает абсолютно. Я просто хотел узнать какая информация в ней содержится и для чего используется. А если никто понятия не имеет то так и скажите.
какая проблема взять и самому разобраться для чего эта секция и рассказать другим ? pdb компилера доступны, вытягиваете, реверсите, и другим объясняете
автор красивых картинок устройства PE формата(кто знает) тоже в прошлом году пытался найти инфо по этой и другим новым секциям, не нашел
очень просто задавать вопросы, но намного интереснее быть тем кто умеет находить ответы на вопросы - ответы на котрых в гугле нет
вряд ли что то скажут все же быстрее pdb вытянуть и посмотреть код где эта секция добавляется наверняка там и название функции которая эту секцию добавляет будет осмысленной
reversecode пишет: pdb компилера доступны, вытягиваете, реверсите, и другим объясняете Угу если вы не заметили, я задаю вопрос в разделе новичков, если бы я был настолько крут чтобы сделать то что предложили вы, то скорее всего мне и форум этот был бы не интересен!
"Крутыми" не рождаются. Все где-то начинают. Очень часто сама попытка найти решение, пусть даже не удачная, дает больше, чем любой готовый ответ. Что и правда мешает взять и посмотреть? А потом сказать: вот, пробовал то-то и то-то, узнал то-то, как интерпретировать? Это все же лучше, чем тупо долбить один и тот же вопрос.
zombi-vadim пишет: И почему shellstorm решил что у меня сломанный билд я вообще не понял!
Потому что в предыдущим билде опции нужно было специально выставлять, чтобы появилась эта секция или секция cfg, следующий билд оказался сломан опции не отключаются. zombi-vadim пишет: настолько крут чтобы сделать то что предложили вы
Вот я могу, даже давно сделал и выше написал для чего эта секция, неужели так сложно нагуглить опции защиты, а после прочитать несколько статей по отдельным опциям? Это нужно, чтобы всякие киндеры не срывали стек и не переполняли буфер. Мне лень расписывать подробности, но если интересно разобраться вот прям в деталях, откройте в IDA link.exe студийный, отфильтруйте функции по слову "Guard". Но раз такие сложности в простых вещах, значит вам это еще незачем знать.
shellstormЯ знаю про Control Flow Guard, просто как то не вяжется cfg с gfids. Я не вдавался в подробности, но после отключения cfg, файл уменьшается в размерах, значит флаг работает теоретически. Однако никакого влияния на секцию gfids это не оказывает она остается прежней и в размерах и в содержимом. Вы уверены что правы?
При использовании CFG поведение приложения сильно отличается. Нельзя произвольно что то вызвать(что далее приведёт к проблемам). Ну и в студии по дефолту линкуется всякое дерьмо.
difexacaw пишет: в студии по дефолту линкуется всякое дерьмо Я понимаю, что по умолчанию, всякая ненужная гадость добавляется в файл, но где бы я не спрашивал как оптимизировать настройки линковщика, мне отвечают, раз он что то создает то трогать это нельзя, оно значит нужно для корректной работы..
Это не правильный совет что трогать не нужно. Без понимания что и зачем линкуется приложение будет анстаб. Нужно найти ссылки на то, что добавляется в модуль. Если прямых ссылок нет, то следует посмотреть сам формат - скорее всего это поддержка новых механизмов(CFG, RFG etc).
difexacaw пишет: При использовании CFG поведение приложения сильно отличается. Нельзя произвольно что то вызвать(что далее приведёт к проблемам) Нельзя ли пожалуйста обьяснить какие проблемы появляются, потому как этот флаг включен в студии по умолчанию.
Включается механизм валидации ссылок через карту в памяти, описывающую начало каждой процедуры в модуле. При любом косвенном вызове - передаче управления не на начало процедуры приложение будет убито.
reversecode пишет: мне нужен компилер который это генерит, линкер итд Я уже говорил что я новичок. Я много не понимаю. У меня стоит Visual Studio 2015. Что конкретно и откуда вам скинуть?
Это массив адресов RVA. Если пройти по этим адресам, то каждый указывает на какую-то из процедур в модуле. Это может быть отладочная информация, может быть что угодно. Но удалять её нельзя. Чтобы убедиться в этом, достаточно обнулить этот массив.
Полистайте .map-файл. Там тоже бывает полезная информация.
--Добавлено-- Вон выше уже написали, что это такое.
У меня этот модуль всё равно не запускается, так что проверить не смогу.
И пускай бы это была самая грязная "грязь" в том файле.. Ерунда это всё короче.