Конечно, это возможно . Почему вы не думаете, что это так? Можно даже определить экспортируемую функцию как псевдоним экспортируемой функции в другой DLL, чтобы проходить через функции, которые вам не интересны.
Вы можете столкнуться с проблемой, когда программное обеспечение использует исходный файл .lib
для статической ссылки на исходную DLL. Поскольку вы, вероятно, не сможете перекомпилировать такое программное обеспечение для использования ваших .lib
файлов, ваша DLL должна иметь то же имя файла, что и исходная DLL, и реплицировать исходные экспорты DLL точно (имена и порядковый).
Другая проблема может возникнуть, если исходная DLL экспортирует класс, используемый программным обеспечением. Их будет сложнее воспроизвести.
Другой подход заключается в том, чтобы вообще не заменять исходную DLL, а вместо этого вставлять вашу DLL в целевой процесс, а затем обходить только те экспорты DLL, которые вас интересуют.