Что касается второй части вашего вопроса, получение сигнатур метода, как правило, невозможно. Эта информация обычно не хранится в самом PE. Для функций C ++ это возможно, поскольку искаженное имя закодирует эту информацию, но многие библиотеки DLL не предоставляют интерфейсы C ++. Для интерфейсов COM эта информация хранится в библиотеке типов, часто встроенной в качестве ресурса в PE. Чтобы увидеть, возможно ли это для конкретных dll, которые вы имеете в виду, вы можете использовать dumpbin и undec, чтобы увидеть, являются ли функции искаженными именами C ++. Если нет, вам понадобится другой источник информации, такой как заголовочные файлы, для создания правильных сигнатур P / Invoke (в этом случае вам, вероятно, не нужно анализировать PE-файл).