Дата: Понедельник, 23.01.2012, 23:46 | Сообщение # 2
Участник
Группа: Пользователи
Сообщений: 11
Статус: Offline
Вот другой способ тоже работает на семерке
Code
var reg: tregistry; begin if chk1.Checked=True then begin reg := tregistry.create; reg.rootkey := HKEY_CURRENT_USER ; reg.lazywrite := false; reg.openkey('software\microsoft\windows\currentversion\run', false); reg.writestring(Application.Title, application.exename); reg.closekey; reg.free; end
Сообщение отредактировал jaygen - Понедельник, 23.01.2012, 23:46
jaygen, я бы не стал писать этот код, если бы все было так банально... Добавление в реестр работает меньше чем на половине компов под семеркой.
TheDeduction Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
Кстати, забыли библиотечку освободить, чтоб уж совсем красивый код был.
Хотел число переменных к минимуму свести)
Quote (dolphin)
Замечу что таким образом можно запустить любой файл, пробовал даже ави открывает и при входе начинает фильм проигрываться
Потому что запускается так: explorer [filename] Так можно и в реестре сделать)
TheDeduction Для ускорения получения ответов на ваши вопросы рекомендуется подкармливание в виде +'ов в рейтинг :)
Нашел вот такое описание всевозможных значений параметров
Code
uses ShlObj;
const { // Следующие идентификаторы имеются в модуле ShlObj: CSIDL_DESKTOP = $0000; // Виртуальный каталог, представляющий Рабочий стол. (Корень в проводнике) CSIDL_INTERNET = $0001; // Виртуальный каталог для Internet Explorer. CSIDL_PROGRAMS = $0002; // Меню Пуск -> Программы CSIDL_CONTROLS = $0003; // Виртуальный каталог, содержащий иконки пунктов панели управления CSIDL_PRINTERS = $0004; // Виртуальный каталог, содержащий установленные принтеры CSIDL_PERSONAL = $0005; // Виртуальный каталог, представляющий папку "Мои документы" // До Vista ссылался на какталог "Мои документы" на жёстком диске CSIDL_FAVORITES = $0006; // Избранное. (обычно C:\Documents and Settings\username\Favorites) CSIDL_STARTUP = $0007; // Пуск -> Программы -> Автозагрузка CSIDL_RECENT = $0008; // Недавние документы (обычно C:\Documents and Settings\username\My Recent Documents // Для добавления ссылки документа используйте SHAddToRecentDocs CSIDL_SENDTO = $0009; // Папка, содержащая ярлыки меню "Отправить" (Sent to...) (обычно C:\Documents and Settings\username\SendTo) CSIDL_BITBUCKET = $000a; // Виртуальный каталог, содержащий файлы в корзине текущего пользователя CSIDL_STARTMENU = $000b; // Элементы меню Пуск текущего пользователя (обычно C:\Documents and Settings\username\Start Menu) CSIDL_DESKTOPDIRECTORY = $0010; // Рабочий стол текущего пользователя (обычно C:\Documents and Settings\username\Desktop) CSIDL_DRIVES = $0011; // Виртуальный каталог, представляющий папку "Мой компьютер" CSIDL_NETWORK = $0012; // Виртуальный каталог, представляющий "Сетевое окружение" CSIDL_NETHOOD = $0013; // Папка "My Nethood Places" (обычно C:\Documents and Settings\username\NetHood) // В неё ссылки на избранные расшаренные ресурсы CSIDL_FONTS = $0014; // Папка, содержащая установленные шрифты. (обычно C:\Windows\Fonts) CSIDL_TEMPLATES = $0015; // Шаблоны документов. (Обычно Settings\username\Templates) CSIDL_COMMON_STARTMENU = $0016; // Элементы меню Пуск для всех пользователей. (обычно C:\Documents and Settings\All Users\Start Menu) // Константы, начинающиеся на CSIDL_COMMON_ существуют только в NT версиях CSIDL_COMMON_PROGRAMS = $0017; // Меню Пуск -> программы для всех пользователей (обычно C:\Documents and Settings\All Users\Start Menu\Programs) CSIDL_COMMON_STARTUP = $0018; // Меню Пуск -> Программы -> Автозагрузка для всех пользователей (обычно C:\Documents and Settings\All Users\Start Menu\Programs\Startup) CSIDL_COMMON_DESKTOPDIRECTORY = $0019; // Элементы Рабочего стола для всех пользователей (обычно C:\Documents and Settings\All Users\Desktop) CSIDL_APPDATA = $001a; // Папка, в которой рограммы должны хранить свои данные(C:\Documents and Settings\username\Application Data) CSIDL_PRINTHOOD = $001b; // Установленные принтеры. (обычно C:\Documents and Settings\username\PrintHood) CSIDL_ALTSTARTUP = $001d; // DBCS // user's nonlocalized Startup program group. Устарело. CSIDL_COMMON_ALTSTARTUP = $001e; // DBCS // Устарело CSIDL_COMMON_FAVORITES = $001f; // Ссылки "Избранное" для всех пользователей CSIDL_INTERNET_CACHE = $0020; // Временные Internet файлы (обычно C:\Documents and Settings\username\Local Settings\Temporary Internet Files) CSIDL_COOKIES = $0021; // Папка для хранения Cookies (обычно C:\Documents and Settings\username\Cookies) CSIDL_HISTORY = $0022; // Хранит ссылки интернет истории IE } // Следующих идентификаторов нет в ShlObj: CSIDL_ADMINTOOLS = $30; // Административные инструменты текущего пользователя (например консоль MMC). Win2000+
CSIDL_CDBURN_AREA = $3b; // Папка для файлов, подготовленных к записи на CD/DVD // (Обычно C:\Documents and Settings\username\Local Settings\Application Data\Microsoft\CD Burning)
CSIDL_COMMON_TEMPLATES = $2d; // Папка шаблонов документов для всех пользователей (Обычно C:\Documents and Settings\All Users\Templates)
CSIDL_COMMON_MUSIC = $35; // Папка "Моя музыка" для всех пользователей. (обычно C:\Documents and Settings\All Users\Documents\My Music)
CSIDL_COMMON_PICTURES = $36; // Папка "Мои рисунки" для всех пользователей. (обычно C:\Documents and Settings\All Users\Documents\My Pictures)
CSIDL_COMMON_VIDEO = $37; // Папка "Моё видео" для всех пользователей (C:\Documents and Settings\All Users\Documents\My Videos)
CSIDL_COMPUTERSNEARME = $3d; // Виртуальная папка, представляет список компьютеров в вашей рабочей группе
CSIDL_CONNECTIONS = $31; // Виртуальная папка, представляет список сетевых подключений
CSIDL_LOCAL_APPDATA = $1c; // AppData для приложений, которые не переносятся на другой компьютер (обычно C:\Documents and Settings\username\Local Settings\Application Data)
CSIDL_PROFILE = $28; // Папка пользователя (обычно C:\Documents and Settings\username)
CSIDL_PROGRAM_FILES = $26; // Папка Program Files (обычно C:\Program Files)
CSIDL_PROGRAM_FILESX86 = $2a;
CSIDL_PROGRAM_FILES_COMMON = $2b; // Папка Program Files\Common (обычно C:\Program Files\Common)
CSIDL_PROGRAM_FILES_COMMONX86 = $2c;
CSIDL_RESOURCES = $38; // Папка для ресерсов. Vista и выше (обычно C:\Windows\Resources)
CSIDL_RESOURCES_LOCALIZED = $39;
CSIDL_SYSTEM = $25; // Папака System (обычно C:\Windows\System32 или C:\Windows\System)
CSIDL_SYSTEMX86 = $29;
CSIDL_WINDOWS = $24; // Папка Windows. Она же %windir% или %SYSTEMROOT% (обычно C:\Windows)
function GetSpecialPath(CSIDL: word): string; var s: string; begin SetLength(s, MAX_PATH); if not SHGetSpecialFolderPath(0, PChar(s), CSIDL, true) then s := GetSpecialPath(CSIDL_APPDATA); result := PChar(s); end;
Дата: Воскресенье, 12.02.2012, 00:55 | Сообщение # 9
Был не раз
Группа: Пользователи
Сообщений: 35
Статус: Offline
Товарищи, а что если попробовать вклиниться в какой-нить легально автозапускающийся файл и чуть его модифицировать, чтоб он запускал троя??? Можно ли вообще изменить уже запущенный экзешник??? Где-то на wasm.ru видел как читать из занятого системой файла, а вот как записать и что именно... Вот это интересней... Давайте подумаем на эту тему вместе.
Дата: Воскресенье, 12.02.2012, 11:46 | Сообщение # 10
Постоянный
Группа: Проверенные
Сообщений: 96
Статус: Offline
Quote
Можно ли вообще изменить уже запущенный экзешник???
Изменить можно только его память. И после того, как он закроется все изменения пропадут. Проще будет пропатчить в exe шнике что-нить чтоб запускал троян.
Delphi+Assembler=Сила
Сообщение отредактировал Волк-1024 - Воскресенье, 12.02.2012, 11:47