Изменить / заменить Exe на лету - PullRequest
1 голос
/ 02 декабря 2008

Всякий раз, когда я загружаю обновление в firefox и применяю его, Антивирус Касперского предупреждает меня, что файл FIREFOX.EXE был изменен. Я хочу знать, как они это делают. Можно ли сделать простую программу, чтобы продемонстрировать этот трюк. Как исполняемый файл будет изначально отображать «Привет, мир!» в командной строке и когда я заменяю / изменяю пример исполняемого файла, он должен отображать «Hello, World! Mod».

Спасибо.

Ответы [ 4 ]

1 голос
/ 02 декабря 2008

У меня сложилось впечатление, что Firefox, когда у него есть обновление, запускает другое приложение и завершает работу. Затем вспомогательное приложение заменяет .exe. Таким образом, он не изменяет себя во время выполнения.

0 голосов
/ 02 мая 2009

Я ищу самоизменяющийся код в c ++. Я думаю, что программы могут изменить себя, отсоединив их от Windows

0 голосов
/ 02 декабря 2008

Я не знаю точно, как Firefox делает свои обновления, но есть ряд общих подходов:

  • В файловой системе, которая позволяет это (например, NTFS), затем переименуйте текущий запущенный .exe, запишите его замену и затем подключите к новому

  • Есть небольшая программа запуска, которая выполняет любое обновление основного exe-файла перед переключением на него.

  • Различные трюки, связанные с тем, чтобы прыгать к ним и прыгать временным бывшим, и т.д.

0 голосов
/ 02 декабря 2008

Самый простой способ - использовать метод FindFirstChangeNotification . Но я предполагаю, что Антивирус подключается на более низком уровне, используя системный хук или другой механизм.

...