Информация об изменениях

Сообщение Re[3]: падает все подряд после замены dll-ки в appinit_dlls от 15.11.2016 15:42

Изменено 15.11.2016 16:05 ononim

O>>1) CreateRemoteThread/ReadVirtualMemory/WriteVirtualMemory в коде наличествует?
O>>2) IPC с передачей указателей на код (функции) длл наличествует?
O>>3) #pragma comment(linker, "/SECTION:БЛАБЛАБЛА,RWS") гденить есть? или /SECTION:БЛАБЛАБЛА,RWS в параметрах линкера?
ksd>этого нет
O>>4) а поговорить А в дебаггере посмотреть, что именно падает, с каким стеком, подумать над полученной информацией — пробовали?
ksd>при запуске же нового процесса падает, как отладчиком цепляться на запуске?
1) запускать под отладчиком
2) запускать под отладчиком установив галку debug child processes чтото другое, например cmd.exe, при этом на время запуска cmd.exe убрать длл. Потом вернуть длл и запустить из cmd.exe то что падает

O>>5) SetWindowsHookEx не используется ли с функцией внутри этой длл?

ksd>используется.
Теперь смотрите. Если вы используете эту ф-ю для того чтоб ставить глобальный хук, то передаете аргументами системе HINSTANCE длл и указатель на функцию — колбяку хука. Система чудес не творит. Она по этому HINSTANCE получает путь к длл, а указатель на функцию превращает в смещение относительно базы длл. В каждом новом процессе она будет загружать длл по полученному пути и добавлять к указанной базе — известное ей смещение. Если по заданному пути окажется другая длл, то по этому смещению скорее всего будет совсем не то, что было по первоначальной длл.
Re[3]: падает все подряд после замены dll-ки в appinit_dlls
O>>1) CreateRemoteThread/ReadVirtualMemory/WriteVirtualMemory в коде наличествует?
O>>2) IPC с передачей указателей на код (функции) длл наличествует?
O>>3) #pragma comment(linker, "/SECTION:БЛАБЛАБЛА,RWS") гденить есть? или /SECTION:БЛАБЛАБЛА,RWS в параметрах линкера?
ksd>этого нет
O>>4) а поговорить А в дебаггере посмотреть, что именно падает, с каким стеком, подумать над полученной информацией — пробовали?
ksd>при запуске же нового процесса падает, как отладчиком цепляться на запуске?
1) запускать под отладчиком
2) запускать под отладчиком установив галку debug child processes чтото другое, например cmd.exe, при этом на время запуска cmd.exe убрать длл. Потом вернуть длл и запустить из cmd.exe то что падает

O>>5) SetWindowsHookEx не используется ли с функцией внутри этой длл?

ksd>используется.
Теперь смотрите. Если вы используете эту ф-ю для того чтоб ставить глобальный хук, то передаете аргументами системе HINSTANCE длл и указатель на функцию — колбяку хука. Система чудес не творит. Она по этому HINSTANCE получает путь к длл, а указатель на функцию превращает в смещение относительно базы длл. В каждом новом процессе она будет загружать длл по полученному пути и добавлять к полученной базе известное ей смещение. Если по заданному пути окажется другая длл, то по этому смещению скорее всего будет совсем не то, что было по первоначальной длл.