| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Запуск программ... |
| Автор: V.Turecky 26.7.2002, 18:18 | ||
| Ещё раз здравствуйте. Мне нужно организовать запуск программ своими силами. Обычно программы запускаються, если в определенном ключе реестра есть значение ("%1" %*"), а если нет, или там себя прописывает вирус, тогда глына... Так вот - хочу сделать в своей программе командную строку, с помощью которой можно запускать программы своими силами. Но как организовать такой запуск? В это, собсвенно, мой вопрос. Вот часть реестра, которую бомбят некторые вирусы:
|
| Автор: Mikel 26.7.2002, 18:22 |
| Если про запуск программ, то WinExec, ShellExecute. Но что-то я не совсеи понял. |
| Автор: V.Turecky 26.7.2002, 18:25 |
| Если в реестре не будет этой херни - ("%1" %*"), то никакой WinExec или ShellExecute не запустит программу! |
| Автор: Mikel 26.7.2002, 18:28 |
| WinExec должен запустить, т.к. он использует сам Windows, а не Shell. Можешь попробовать проверить |
| Автор: Vit 26.7.2002, 18:53 |
| CreateProcess - запустит что угодно при любых ключах реестра (причём именно так как ты хочешь), собственно WinExec и ShellExecute при своём выполнении используют CreateProcess. Только с вирусами сложнее - кто твою программу будет загружать? Может тоже вирус?
|
| Автор: Baa 26.7.2002, 19:12 |
| Наерно он хочет сделать так, что при запуске любой проги запускалась сначала его прога, а потом токо прога, которая должна была запуститься или я не так понял? (сделал вывод из ключа реестра) |
| Автор: dr.ZmeY 27.7.2002, 18:14 | ||
Не понял, тебе нужна прога которая прописывала бы в реестр эту хрень, в чём проблема? Или ты хочешь сделать универсальный кряк, который бы запускал любую не регерную прогу? |
| Автор: Vit 27.7.2002, 18:26 |
| Думаю что речь идёт о вирусах подобных SirCom - они переадресуют все запуски програм на себя(путем переправления реестра), и товарищ хочет сделать запуск программы в обход указаний реестра, только тут возникает такой проблем - хорошо, такая программа написана, как она сама будет запускаться? |
| Автор: dr.ZmeY 27.7.2002, 18:33 |
| САМА Если не руками, то автозапуском, вместе с системой или по счётчику... Или я не понял. Можно проверять уже запущенные процессы, и один из них, типа taskmgr.exe |
| Автор: Vit 27.7.2002, 18:53 |
| Там не так всё просто - вирус ассоциирует себя с расширением exe и все файлы запускает из себя, даже таск-менеджер, возможно и можно как-то запустить программу "чисто", как системный сервис или драйвер, но простое прописывание в автозапуск ничего не даст. Я на зараженной системе "чисто" запускал файлы переименовывая их в .сом, но скорее всего появятся клоны вирусов, если уже не появились, которые учтут и эту ситуацию... |
| Автор: dr.ZmeY 28.7.2002, 13:17 |
| Так, он хочет написать такой вирь, или запустить антивирус Что конкретно ему надо? |
| Автор: V.Turecky 30.7.2002, 15:31 |
| Ребята, всем огромное спасибо!!! WinExec запускает даже, когда реестр поврежден тем способом, о котором я упоминал ранее. Но я решил воспользоваться советом Vit'а и применить функцию CreateProcess, что даже лучше, она тоже запускает без проблем. Вся хитрость моей программы в том, что у нее расширение не EXE, а CPL, и при ранее упомянутом повреждении реестра там есть такая функция, которая восстанавливает некоторые ассоциации. Можно выбрать какие именно. Пока только три. |
| Автор: Vit 30.7.2002, 16:04 |
| CPL запускается посредством RunDLL.exe, так что возвращаемся на круги своя. |
| Автор: V.Turecky 30.7.2002, 16:13 | ||
Точно! Только сейчас дошло. Блин, что же делать??? |
| Автор: Vit 30.7.2002, 16:23 | ||
Возможные варианты: 1) Запуск программы как драйвера, системного сервиса и т.п. при старте системы 2) Запуск программы как графической среды по умолчанию 3) Написать программу под ДОС и загружать с дискетты. |
| Автор: V.Turecky 30.7.2002, 16:53 |
| А может лучше написать запускалочку для своей CPL'ки с расширением COM и запускать с помощью CreateProcess или вообще воспользоваться услугами BAT файла? |
| Автор: Vit 30.7.2002, 17:08 | ||
BAT работает через тот же ShellExecute COM - в принципе возможно, но кто поручится, что и это расширение ассоциированно с вирусом? |
| Автор: V.Turecky 30.7.2002, 17:30 |
| Для открытия файлов BAT, COM, EXE в реестре прописано одно и тоже - "%1" %*. Вот ещё один вариант: написать, как я уже упоминал ранее, запускалочку, но только с любым другим расширением, а в реестре прописать для её открытия - "%1" %* и всё. Как идея? Кстати, а какой метод запуска CPL файлов у RunDLL.exe? Я могу воспользоваться CreateProcess? |
| Автор: Vit 30.7.2002, 20:48 | ||
Rundll32.exe shell32.dll,Control_RunDLL <AppletName> |
| Автор: Monty 26.7.2004, 03:58 | ||
by Michael Puff |