![]() |
|
|
![]()
|
|
| SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 9 Всего: 23 |
Вообщем дело состоит так: мне надо, чтобы программа после своей работы удалила сама себя и каталог в котором она лежала - пытаюсь реализовать Uninstall...
Принимаются любые варианты (хотя бы идеи) |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| FFFFFFF7 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 167 Регистрация: 13.10.2006 Репутация: 2 Всего: 2 |
*.bat не подводил еще
--------------------
Да помоги кодеру, а значит - ближнему своему! |
|||
|
||||
| SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 9 Всего: 23 |
А можно как-нить без бат-файла?
Это уже ради интереса |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
можно. читай мою ссылку.
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| SenkraD |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 9 Всего: 23 |
Да читал я это всё...и не раз.
Ну вот один вариант...
Но какой-то он не С++ )) А все остальные варианты - так или иначе, на костылях с использованием промежуточных файлов... Единственный вариант из всех предложенных -
Но несколько непонятно, что именно имеется в виду: сделать отдельный виртуальный процесс, или отдельную программу, которую потом всё равно придётся удалять? |
||||
|
|||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 3 Всего: 128 |
Да чем тебе батник не нравится... Создавай автоматически бат-файл, заполняй его нужной командой, причем в конце батника пропиши удаление самого батника. Затем запусти на выполнение. И усе.
|
|||
|
||||
| RatHat |
|
|||
![]() Вождь индейцев ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 5.9.2005 Репутация: -1 Всего: 1 |
sim7, да костыли это всё...
--------------------
Ma a kis' hi ve'ist i wan'i na e'ho ho wan'i |
|||
|
||||
| BUGOR |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: нет Всего: 16 |
1. Попробуй на лету вызвать следующие функции(в том порядке, в котором я их пишу):
ExitProcess DeleteFile UnmapViewOfFile Но на момент вызова ExitProcess все хэндлы которые открыл процесс должны быть закрыты, окон тоже быть не должно: 2. Если есть права, то выдели участок памяти в, например, explorer.exe, проинжектируй туда код с вызовом Sleep и DeleteFile и выполни его. 3. Если у тебя NTFS, то открой том в RAW и работай напрямую с MFT |
|||
|
||||
| SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 9 Всего: 23 |
BUGOR, спасибо за идеи!
Но тут же появились новые вопросы: 1. Что передать в функцию UnmapViewOfFile? 2. Я пытался для этого юзать ф-цию CreateRemoteThread (этим я уже два дня занимаюсь)
этот код срабатывает у меня только для моего же процесса, для остальных процессов - выдаёт ошибку. Где я ошибся или что я не дописал? 3. Мне надо универсальную программу, без привязки к какой-либо конкретной файловой системе... |
|||
|
||||
| BUGOR |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 325 Регистрация: 12.3.2006 Репутация: нет Всего: 16 |
Очевидно, что свою базу GetModuleHandle(0);
Если ты под админом привелегии тебе вряд ли какие понадобятся, если же твои права урезаны, то нужно получать SeDebugPrivilege. У меня есть 100% работающая реализация на ассемблере, реализовано всё в стиле ЯВУ, так что я думаю ты как сишник разберёшься:
Это первое, второе, где после установки привелегий ты вновь пытаешься открыть процесс? Я не нашёл ещё одного вызова OpenPrcess. И последнее, чтобы твоя ThreadFunc выполнилась в контексте другого приложения её туда нужно проинжектировать Это сообщение отредактировал(а) BUGOR - 15.11.2006, 11:34 |
||||||
|
|||||||
| SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 9 Всего: 23 |
пасибо.
А можно простой пример инжектирования |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |