Сейчас на форуме: tyns777 (+4 невидимых) |
![]() |
eXeL@B —› Программирование —› Размер стёка и кучи в DLL |
Посл.ответ | Сообщение |
|
Создано: 21 октября 2010 16:51 · Личное сообщение · #1 |
|
Создано: 21 октября 2010 16:57 · Личное сообщение · #2 FalseMaster пишет: Или я не прав и есть какая-то страшная тайна Есть. FalseMaster пишет: Я вот чё-то никак не пойму, зачем в PE-заголовке DLL указываются размеры кучи и стёка, ведь по здравому размышлению библа использует хип и стёк процесса, в чьё адресное пространство она проецируется. Это просто интерес, или у тя какие-то проблемы? ----- Лучше быть одиноким, но свободным © $me ![]() |
|
Создано: 21 октября 2010 17:05 · Личное сообщение · #3 |
|
Создано: 21 октября 2010 17:33 · Поправил: SWR · Личное сообщение · #4 |
|
Создано: 21 октября 2010 17:42 · Личное сообщение · #5 |
|
Создано: 21 октября 2010 18:46 · Личное сообщение · #6 Это просто интерес, или у тя какие-то проблемы? Нет, это не праздный интерес. Я пишу прогу (не вирь), которая проделывает некоторые манипуляции с PE'шкой и просто хочу понимать, что делаю. PS DllMain зовется после загрузки и хз скока её стека надо А что, разве DllMain чем-то отличается от других функций? P.S. Просьба ко всем: давайте поконкретнее. ![]() |
|
Создано: 21 октября 2010 19:09 · Личное сообщение · #7 FalseMaster пишет: А что, разве DllMain чем-то отличается от других функций? Ну это точка входа в dll (может и не быть = NULL)/ И её дергает загрузчик со своим стеком. И хрен его знает скока в этой длл выделится памяти для своих нужд (может аллокатор памяти у неё свой). Вот и надо знать скока она хипа требует для полного счастья (заодно проверить есть ли стока линейной виртуальной памяти). ![]() |
|
Создано: 21 октября 2010 19:54 · Личное сообщение · #8 |
|
Создано: 21 октября 2010 20:56 · Поправил: Clerk · Личное сообщение · #9 FalseMaster Эти поля хидера используются только при создании процесса в RtlpCreateStack/BaseCreateStack и не используются в длл, а тока в экзешниках (и тока при создании процесса). ![]() |
|
Создано: 21 октября 2010 21:36 · Личное сообщение · #10 Эти поля хидера используются только при создании процесса в RtlpCreateStack/BaseCreateStack и не используются в длл И я так считаю (см. первый пост) ... Юрий Харон, кстати, тоже - вот выдержка из справки по UniLink: Размер выделяемого на старте хипа должен быть меньше или равен зарезервированному. Линкер округляет указанное значение до кратности 4 байтам. Осмысленно только для .EXE-файлов. Дла стёка тоже самое. Но вот смущает тот факт, что во всех виденных мною DLL'ках значения обсуждаемых полей мало того, что не в нулях, так ещё и варьируются. Выходит, что программисты из мелкософта не знают как функционирует их собственная ось. Подозрительно это как-то. ![]() |
|
Создано: 21 октября 2010 21:44 · Личное сообщение · #11 |
|
Создано: 21 октября 2010 22:43 · Личное сообщение · #12 |
![]() |
eXeL@B —› Программирование —› Размер стёка и кучи в DLL |
Эта тема закрыта. Ответы больше не принимаются. |