.h, то я его могу сделать.
А как эта проблема решается в линуксе?
А как под винду, не подскажешь? С учётом того, что PE ничего о сигнатурах функций не знает
а таблица экспорта на что?)
Не знает. Ему известны только имена
Да если если экспорт не extern "C"?
как нет, а манглинг?)
Речь же идёт об абстрактной dll. То что в названием будет результат манглинга, никто не гарантирует. Да и если в манглинге будет название неизвестной структуры, то задача превращаеться в задачу на реверс
мы говорили про сигнатуру функций вроде, значит вполне может и знать
Мы говорили про возможность восстановить хедер. Этого нельзя сделать в 99.99 процентов случаев(в типо автоматическом режиме)
ну если функции экспортируются то конечно ни разу не 99.99
Точно так же, как и под виндой, берешь и делаешь. Если тебе нужно слинковаться, то под линуксом ты это делаешь напрямую с самим сошником, .lib тебе не нужен, нужно лишь чтобы символы, которые ты используешь где-то там у себя, в самом сошнике были видимыми (ну и чтобы твой компилятор при обращении к ним заманджлил так же, как это сделано в сошнике, а это уже зависит от языка)
про то, как манджлятся символы под линуксом можешь почитать тут: https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling но если кратко, то манджлингу как таковому подвергаются только плюсовые символы, с сишными функциями как правило просто записывается их имя
Обсуждают сегодня