Скажите пожалуйста, реально ли пропатчить user32.dll так, что бы при вызове функции LockWorkStation выполнялась не блокировка системы, а выполнялась программа или скрипт (к примеру 111.cmd или 111.exe). Или реально ли пропатчить файл http://ifolder.ru/17580073, так чтобы выполнялась не LockWorkStation, а программа или скрипт. Если интресно, то вот для чего это нужно: Есть замечательная программа удаленного администрирования Remonte Office Manager. Отличает ее от других продуктов (Radmin и т.д.) то, что она может (по желанию) блокировать экран и устройства ввода удаленного компьютера. Т.е. чтобы пользователь на управляемом компьютере не мог подсмотреть/принять участие в процессе. Но, есть одно но. Если связь с удаленным компьютером прекращается, то максимум что может сделать программа - это выполнить LockWorkStation. Это все хорошо, если упрвление идет сервером, и за ним никто не работате - он так и будет стоять в локе - пасс то никто не знает. Но в случае с локальным пользователем, пасс ему известен, и он спокойно сможет войти в систему. Вот конкретный пример: У администратора есть зашифрованный том TrueCrypt с системными программами, серийными номерами и другой конфидециальной информацией. Сисадмин подключается к удаленному компьютеру, открывает (монтирует) том TrueCrypt для устанвоки ПО и ввода серийников. В этот момент юзер, умышленно вытаскивает сетевой кабель из сетевухи, и программа ROM Server выполняет User32.dll,LockWorkStation. Но, юзер имеет локальный пароль и спокойно заходит в систему, при этом том TrueCrypt остается смонтированным и вся конфидециальныая информация стала..... Что я хочу: Чтобы выполнялась не LockWorkStation, а моя программа или скрипт. В скрипте я могу автоматом размонтировать том, закрыть нужные программы, или вообще выполнить LogOff. Все было бы классно, да вот буквально на днях контора, разрабатывающая программу aledensoft (http://aledensoft.ru) прекратила свое существование Задал вопрос разработчику - говорят мол с удовольствием, но не имею права. Чзрез пару месяцев будет новый продукт от другой компани, мол в нем это будет... Но, как Вы сами понимаете, нужно здесь и сейчас. Если есть возможность помогите советом/патчем/результатом.
Real_Root Во первых не работает ваша софтина ни на виртуалке, ни на рельном железе в XP. Ждёт чегото или мб деадлок какой хз. Во вторых не вижу в экзешнике никаких признаков этой апи, более того, насколько знаю в текущей сессии вызвать LockWorkStation() может только процесс единажды вызвавший RegisterLogonProcess(), тоесть сторонее приложение её юзать не может, хотя могу и ошибаться. Для начала нужно найти что и где изменять.
Clerk Если exe-шник смотреть WinHEX ом, то по смещению (или как оно там называется - я сисадмин ) h171C28, есть код: LockWorkStation...........user32.dll Отсюда я и подумал, что софтина блокирует комп через вызов rundll32.exe user32.dll,LockWorkStation. Я даже более, чем уверен, что она делает именно так. Ну, а тот exe-шник - это серверная часть приложения. если хотите поиграться с целым софтом, то вот ссылочка: http://rapidshare.com/files/350774671/ROM.v4.1.2-Full.rar пасс: ru-board Большое спасибо, за то что откликнулись.
Real_Root Ага, есть такое. Я только в статике смотрел Код (Text): Base = 0x400000 005727F4 55 push ebp 005727F5 8BEC mov ebp,esp 005727F7 53 push ebx 005727F8 B8 D42E6F00 mov eax,ROMServe.006F2ED4 005727FD B9 28285700 mov ecx,ROMServe.00572828 ; ASCII "LockWorkStation" 00572802 BA 44285700 mov edx,ROMServe.00572844 ; ASCII "user32.dll" 00572807 E8 B8CEEDFF call ROMServe.0044F6C4 0057280C 89EC mov esp,ebp 0057280E 5D pop ebp 0057280F FF25 D42E6F00 jmp dword ptr ds:[6F2ED4] Сомневаюсь что оно работает, только из под винлогона может быть вызвано.. впрочем не важно. На дельфе написана тулза, если никаких самопроверок нет, то пропатчите это место.
Еслиб я еще ассемблер занл... Я только VB да cmd и знаю Ну немножечко Delphi7 изучал. Может быть подскажите, что нужно сделать, чтобы программа выполняла не это, а конкретный exe-файл? Попробуйте в командной строке выполнить rundll32.exe user32.dll,LockWorkStation
Real_Root Я бы длл-ку прицепил, само удобно и из памяти запускал, хотя лучше с диска, тогда можно её изменять без изменения целевого экзешника. Просто поменяйте имя User32.dll на имя своего модуля и добавьте ему в экспорт функу LockWorkStation, либо её имя тоже измените.