170 похожих чатов

Всем привет. Никто не сталкивался с таким багом(?), странным поведением(??)

линковщика в MSVC: каким-то непонятным хреном на сборочном конвейере он вместо нормального адреса локальной переменной вставляет нулевое смещение в push перед вызовом функции, получается такая дичь:
```
68 00 00 00 10 push offset __ModuleEntry
E8 DD EF FE FF call foo
```

Потом при загрузке либы (dll), это место естественно преобразуется в адрес на начало модуля ну и всё - падаем с access violation.

Есть идеи каким образом до такого можно было дойти, если только не багом линкера?

7 ответов

3 просмотра

Может он ожидал что-то вроде отложенной загрузки dll?

Надо код

Сергей-Казьмин Автор вопроса
Ilya Zviagin
Надо код

https://godbolt.org/z/c5rxPedMj Ну и ещё забыл сказать, что такие спецэффекты наблюдаются только при отключенной оптимизации

Сергей Казьмин
https://godbolt.org/z/c5rxPedMj Ну и ещё забыл ск...

Да потому что нехрен динамически .dll линковать, если не умеешь...

Сергей Казьмин
https://godbolt.org/z/c5rxPedMj Ну и ещё забыл ск...

Функция так объявлена NTSYSAPI NTSTATUS RtlGetVersion( PRTL_OSVERSIONINFOW lpVersionInformation ); А ты её так вызываешь, using fnRtlGetVersion = LONG(WINAPI *)(OSVERSIONINFOEXW*); Ну вот и получи, фашист, гранату...

Сергей-Казьмин Автор вопроса
Ilya Zviagin
Функция так объявлена NTSYSAPI NTSTATUS RtlGetVers...

Эээ, ты удивишься, но это идентичные сигнатуры...

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
131
Ребят, что лучше для реверса: гидра или ида?
En Vind Av Sorg
23
Вопрос я правильно понимаю что в коде newtype ArrowMap k v = ArrowMap { getArrowMap :: k -> Maybe v } getArrowMap есть функция типа k -> Maybe v, если да, то не понимаю задач...
Fedor
64
Делаю велосипед логгер. К сообщению хочу прикрутить некоторую информацию, типа, кем отправлено, какой уровень, и всякое такое. И тут подумалось мне, почему бы не хранить весь...
Serjone
24
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
52
а не подскажете вот это скрин из какой IDE ?
Iluha Companets
14
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Народ всем привет Подскажите, как включить самописные dll библиотеки в итоговую сборку Сейчас при запуске dev сервера локально формируется папка build, из которой запускается...
Андрей
4
Комрады, подскажите, в дельфях есть компоненты а-ля TDirectorySelect?
Ed Doc
15
Карта сайта