САБЖ Кто знает - объясните действия загрузчика при обработке подобных секций Интересует именно что происходит в нулевом кольце Если есть куски кода - вообще замечательно ЗЫ: сейчас качаю сорсы реакт-ос. Насколько вынь-загрузчик отличается от реакт_ОС-овского?
хз чо там происходит. По логике общая физическая память мапится в контексты идентичных процессов. Далее они с ней и работают, и соответственно всё друг у друга видят. Вообще у Рихтера кое-какое описалово есть по этому моменту.
Вопрос возник не с проста. Ситуация у меня несколько интереснее... Есть две библиотеки procedures.dll и hooks.dll У обоих ImageBase == 0x1000000 Секция .data в библиотеке hooks.dll с аттрибутом shareable hooks.dll загружается после procedures.dll (точнее, hooks.dll подругжается самой procedures.dll) А вот дальше интересно... . hooks.dll статически импортирует функции из procedures.dll У обоих библотек IAT находится в секции .data! Обе либы подгружаются во все процессы. Финт в том, что действительные базы образов (покоторым загружены либы) - в каждом процессе отличаются, как вывод - в библиотеке хукс отличается ИАТ. А т.к. ИАТ находится в шарабельной секции, то, как я полагал, должен произойти тотальный обвал. Но Все работает. Глобальные переменные действительно видны. А вот импорт свой у каждой копии. Даже в шарабельной секции. Поэтому заинтересовало, как оно там происходит...
Происходит просто - физическая память, занимаемая такой секцией, мапится во все процессы загрузившие эту длл. В отличии от секции данных, которая у каждого процесса своя (мапится в разные области физической памяти)