В последнее время спрос на руках: длл должен быть введен в постоянный процесс, то длл обладает способностью к саморекламе, при поиске новой версии доступна сразу Освободитесь, загрузите новый. Вот план реализации:
открыть слушающий поток, дергать новая версия доступна из Интернета, загрузите во временный каталог, если вы обнаружите , что вам нужно обновить, а затем сразу же FreeLibrary себя, а затем выполнить процесс обновления.
Так как после того, как текущий модуль FreeLibrary область памяти больше не действует, так что процесс обновления использует отдельный поток, а код будет обновлен процесс выделения памяти выполняется в виде письменного шеллкода. Процесс обновления будет использовать некоторые функции системы API, не может быть непосредственно вызываются по имени функции, так как это будет импортировать список доступа и DLL Свободное время было потеряно. Поэтому, подготовив заранее аргумент к нити, параметры резьбы обновляются , чтобы использовать некоторые данные и адрес:
Давайте посмотрим , как обновить слушатель нить работы и как подготовить эти параметры:
После создания потока обновления, что она бросить курить и своевременно Освободите себя (так может обновить свои собственные удалено):
взгляд на то, как обновить работу следующей темы:
как и Free собственного модуля, после того, как параметры последней VirtualFree и страницы доли памяти текущего кода и не может вернуться, путем создания стеки параметров формы, конец текущего потока. Эта функция сохранения скомпилированных двоичных инструкций для глобального массива:
Следующий тест эффекта (XP, Win7 32 & 64 были протестированы):
Наконец, есть несколько мест , чтобы отметить это:
1, поставить временный каталог перед загрузкой новой библиотеки DLL удаленные файлы , чтобы предотвратить рекурсивный процесс обновления цикла происходит.
2, перед выполнением процесса обновления необходимо определить информацию о версии DLL, тот же процесс происходит для того , чтобы предотвратить рекурсию.
открыть слушающий поток, дергать новая версия доступна из Интернета, загрузите во временный каталог, если вы обнаружите , что вам нужно обновить, а затем сразу же FreeLibrary себя, а затем выполнить процесс обновления.
Так как после того, как текущий модуль FreeLibrary область памяти больше не действует, так что процесс обновления использует отдельный поток, а код будет обновлен процесс выделения памяти выполняется в виде письменного шеллкода. Процесс обновления будет использовать некоторые функции системы API, не может быть непосредственно вызываются по имени функции, так как это будет импортировать список доступа и DLL Свободное время было потеряно. Поэтому, подготовив заранее аргумент к нити, параметры резьбы обновляются , чтобы использовать некоторые данные и адрес:
Давайте посмотрим , как обновить слушатель нить работы и как подготовить эти параметры:
После создания потока обновления, что она бросить курить и своевременно Освободите себя (так может обновить свои собственные удалено):
взгляд на то, как обновить работу следующей темы:
как и Free собственного модуля, после того, как параметры последней VirtualFree и страницы доли памяти текущего кода и не может вернуться, путем создания стеки параметров формы, конец текущего потока. Эта функция сохранения скомпилированных двоичных инструкций для глобального массива:
Следующий тест эффекта (XP, Win7 32 & 64 были протестированы):
Наконец, есть несколько мест , чтобы отметить это:
1, поставить временный каталог перед загрузкой новой библиотеки DLL удаленные файлы , чтобы предотвратить рекурсивный процесс обновления цикла происходит.
2, перед выполнением процесса обновления необходимо определить информацию о версии DLL, тот же процесс происходит для того , чтобы предотвратить рекурсию.