Re[3]: подмена функции в длл при запуске приложения (с++)
От: мыщъх США http://nezumi-lab.org
Дата: 03.06.11 13:26
Оценка:
Здравствуйте, ieroglif, Вы писали:

I>Здравствуйте, мыщъх, Вы писали:


М>>Здравствуйте, ieroglif, Вы писали:


I>>>Помогите разобраться? Если уж не конкретным примером, то хотя бы ткните куда читать?

М>>очень расплывчатые условия. исходные тексты есть? ладно, нету. библиотеку abc.dll можно переложить в другой каталог? если да -- задача тривиальная, если нет -- то антивирусы на перехват ругаться могут.

I>вместо текущей тупой void aaa() хочется написать нормальный (и весьма большой) код.

I>изначальная библиотека ABC.dll тоже весьма не мала и является частью ещё большего проекта — пересобирать это всё на дебаг режиме, да и вообще разбираться и ковыряться — я ёпнусь, извините =) мне кажется, что проще подменить void aaa() — да и бОльшего мне не требуется..

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

если функция использует глобальные переменные -- вам, очевидно, придется перехватывать и их. в общем, без изучения кода перехват невозможен.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.