Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
по всей видимости, Вы правы. 26.08.05 09:09 Число просмотров: 3118
Автор: Woland Статус: Незарегистрированный пользователь
|
> это не так. если ни один процесс не прилинкован к этой длл
по всей видимости, Вы правы.
специально написал программу, вызывающую из длл функцию типа int test (int Arg) { return (Arg+5);}
после исследования в софтайсе (правил непосредственно в памяти аргумент вызова и константу в возвращаемом значении) выяснилось, что при каждом запуске код в длл возвращался к исходному виду, а код самого ехе - модуля оставался с изменениями. по всей видимости, в этом всё дело.
объясню ситуацию. имеются два процесса - А и В, написанные сторонними разработчиками. процесс В после запуска А проверяет в памяти его целостность (контрольную сумму) и внедряет свою длл через CreateRemoteThread и LoadLibrary. длл при запуске - распаковывается и выполняет кучу разных проверок. после завершения А при его повторном запуске В выдаёт ошибку - "нарушение целостности". я думал, что вся проблема в том, что в памяти остаётся распакованная (соответственно, контрольная сумма другая) внедрённая длл. теперь же склонен считать, что проблема в том, что при повторном запуске сохраняются изменения, сделанные В при внедрении кода (VirtualAllocEx и WriteProcessMemory).
есть какие-нибудь способы избежать этого?
|
|
|