MFC42U.DLL
Aug. 9th, 2005 10:59 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Опять торможу. но уже и сил нет.
Проблем такой.
Моя шпионская длл, перехватывает в импорт тейблах модулей вызовы LoadStringW().
Теперь. когда это в обычных нормальных DLL - вообщем-то все Ok.
Когда я патчу IT of MFC42u.DLL, происходит бяка.
вот код
MessageBox ( 0, "Щас отпатчим этот гребаный MFC42u.dll", "SPY.DLL", MB_OK);
PfnOriginal_LoadStringW = (LOADSTRINGW_PROC) HookImportedFunction (
(HINSTANCE) hMFC,
"USER32.DLL",
"LoadStringW",
(PROC)MyLoadStringW);
wsprintf ( szTmp, "Original address of LoadStringW is 0x%X", PfnOriginal_LoadStringW);
MessageBox ( 0, szTmp, "SPY.DLL", MB_OK);
В функции патченья какбы все Ok. Вылетает отладочный MessageBox ("Patched, blya");
но, на месаджбох после вызова HookImportedFunction уже не возвращается.
Где-то в софтайсе проскакивает сообщение unload spy.dll
когда патчу другие модули, все OK. все отрабатывает, вызовы шпионом ловятся.
мне так кажется, шо MFC42u.dll реализована с отложенной загрузкой, т.е. пока ее родная апп не вызовет, ее в памяти еще нет ну и...
это таки-да?
теперь, как с этим бороться?
Сделал явно в шпионе
hMFC = LoadLibrary ( "MFC42U.DLL");
dwTmp = (DWORD) GetProcAddress ( hMFC, "DllCanUnloadNow");
wsprintf (szTmp, "address of DllCanUnloadNow is 0x%X", dwTmp);
MessageBox ( 0, szTmp, "SPY.DLL", MB_OK);
по фиг.
думаю, может так
сделать свою mfc-used.dll. которая будет слинкована с MFC42u.dll
ее грузить из шпиона, шобы MFC42u.dll разворачивалась в памяти.
я прав?
кто там юзает MFC42U?
как сделать свою дллЮ, которая юзает MFC42u?
щас сдохну.
Проблем такой.
Моя шпионская длл, перехватывает в импорт тейблах модулей вызовы LoadStringW().
Теперь. когда это в обычных нормальных DLL - вообщем-то все Ok.
Когда я патчу IT of MFC42u.DLL, происходит бяка.
вот код
MessageBox ( 0, "Щас отпатчим этот гребаный MFC42u.dll", "SPY.DLL", MB_OK);
PfnOriginal_LoadStringW = (LOADSTRINGW_PROC) HookImportedFunction (
(HINSTANCE) hMFC,
"USER32.DLL",
"LoadStringW",
(PROC)MyLoadStringW);
wsprintf ( szTmp, "Original address of LoadStringW is 0x%X", PfnOriginal_LoadStringW);
MessageBox ( 0, szTmp, "SPY.DLL", MB_OK);
В функции патченья какбы все Ok. Вылетает отладочный MessageBox ("Patched, blya");
но, на месаджбох после вызова HookImportedFunction уже не возвращается.
Где-то в софтайсе проскакивает сообщение unload spy.dll
когда патчу другие модули, все OK. все отрабатывает, вызовы шпионом ловятся.
мне так кажется, шо MFC42u.dll реализована с отложенной загрузкой, т.е. пока ее родная апп не вызовет, ее в памяти еще нет ну и...
это таки-да?
теперь, как с этим бороться?
Сделал явно в шпионе
hMFC = LoadLibrary ( "MFC42U.DLL");
dwTmp = (DWORD) GetProcAddress ( hMFC, "DllCanUnloadNow");
wsprintf (szTmp, "address of DllCanUnloadNow is 0x%X", dwTmp);
MessageBox ( 0, szTmp, "SPY.DLL", MB_OK);
по фиг.
думаю, может так
сделать свою mfc-used.dll. которая будет слинкована с MFC42u.dll
ее грузить из шпиона, шобы MFC42u.dll разворачивалась в памяти.
я прав?
кто там юзает MFC42U?
как сделать свою дллЮ, которая юзает MFC42u?
щас сдохну.
no subject
Date: 2005-08-10 01:27 am (UTC)таки да, с отложенной загрузкой
>как сделать свою дллЮ, которая юзает MFC42u?
хз.. всегда говорил, что mfc - это гадость
no subject
Date: 2005-08-10 10:47 am (UTC)vraxi krugom..
no subject
Date: 2005-08-10 11:48 am (UTC)