Обтекание DLL для регистрации определенных функций - PullRequest
0 голосов
/ 13 мая 2018

Так что, если у меня есть полный набор заголовков и файл .lib для DLL C ++, можно ли создать второй DLL C ++, который оборачивает оригинал и позволяет мне видеть, когда определенные функции вызываются, а затем простовызывает оригинальные функции?Есть ли более простой способ сделать это?Я также обеспокоен только парой функций в большой DLL

1 Ответ

0 голосов
/ 13 мая 2018

Конечно, это возможно . Почему вы не думаете, что это так? Можно даже определить экспортируемую функцию как псевдоним экспортируемой функции в другой DLL, чтобы проходить через функции, которые вам не интересны.

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

Другая проблема может возникнуть, если исходная DLL экспортирует класс, используемый программным обеспечением. Их будет сложнее воспроизвести.

Другой подход заключается в том, чтобы вообще не заменять исходную DLL, а вместо этого вставлять вашу DLL в целевой процесс, а затем обходить только те экспорты DLL, которые вас интересуют.

...