| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Разблокировать exe файл |
| Автор: bass 25.8.2015, 11:39 |
| Доброго дня. Не когда не стояло такой задачи, но тут она встала. Нужно модифицировать свой EXE. На ХР как то писал самоудаление помогала функция UnmapViewOfFile(0х400000); //при штатном распределении памяти CloseHandle(4); Но в семерке встала проблема с данными действиями. Уже в место UnmapViewOfFile пробовал FreeLibrary возвращает 1. Взял программу HANDLE не одного открытого дескриптора с данным файлом не нашел да и с другими приложениями тоже. Кто по глубже знает систему. Ведь при старте процесса он открывается с помощью CreateFile, потом отображается в память. Должны быть дескрипторы. За ранее спасибо. |
| Автор: _zorn_ 25.8.2015, 20:14 |
| Что это за набор мыслей ? Я где то когдато что делал ? Озвучь проблему. Что хочешь сделать и что не получается. |
| Автор: bass 25.8.2015, 23:32 | ||
Прошу прощения за столь сумбурно заданный вопрос. Хочу написать счетчик запуска программы и счетчик времени работы. Не чего не пришло в голову как перезапись самого ехе файла. В системе ХР я бы воспользовался функцией: UnmapViewOfFile CloseHandle(4); Все бы сработало. Пробую данную манипуляцию на 7-ке - выходит болт. Пытаюсь найти кто держит файл в заблокированном состояние. Для данных манипуляций воспользовался утилитой HANDLE не каких десткрипторов удерживающих файл она мне не показала. Кто на момент работы приложения все таки удерживает файл приложения в заблокированном состоянии. |
| Автор: feodorv 26.8.2015, 06:50 |
| А почему обязательно экзешник? Вариант с переменной в реестре (отдельном файле и т.д.) не подходит? Сама система и держит (делает ему memory map на чтение). Если EXE запущен, то модификация его запрещена. |
| Автор: bass 26.8.2015, 10:06 | ||||
Сейчас и остановился на реестре. Система звучит как то размыто. Координаты по точнее требуются. Вот в ХР сам процесс и держал данный файл. При такой манипуляции:
Система отпускала файл, есть нюансы что при этом выгрузиться имидж самого отгружаемого модуля. Но вопрос с отгруженным куском исполняемой памяти решается. И делай все что угодно со своим файлом. Что в семерке изменилось??? |
| Автор: feodorv 26.8.2015, 19:34 |
Скорее всего, закрыли это недоразумение. Это какой-то хакерский приём с непонятными последствиями (судя по всему, плохими). Правильно сделали, что прикрыли))) |
| Автор: disputant 26.8.2015, 22:03 |
| А ведь в добрые старые времена вирусы именно так и работали... |
| Автор: bass 27.8.2015, 00:59 |
| Короче поиски меня не к чему не привели, судя по ответам не кто мне не подскажет суть этого явления.. )))) Будем придумывать что то... |
| Автор: GremlinProg 27.8.2015, 10:35 |
| Process Explorer покажет, кто держит открытым дескриптор |
| Автор: bass 27.8.2015, 11:31 | ||
Не показал, все дескрипторы связанные с данным процессом закрывал и файлом. Дискрипторы открытого процесса были даже в системных процессах (Именно процесса а не файла). Закрывал все!!!!!! Выход из своей ситуации я то нашел, прикрепил ключи гуардант а здесь уже интерес разобрал. Хотел маленькую защитку от копирования сделать, файл сверяет свои временные метки перезаписывает свой модуль, одновременно уменьшает счетчик запуска. Конечно это все мертвому припарки но в библиотечке хотелось бы иметь защитку от дурака. |
| Автор: GremlinProg 27.8.2015, 16:11 |
| ...защиту от дурака? а чем не устраивают классические методы: http://forum.vingrad.ru/forum/topic-289403/view-all.html ? Guardant - круто, правильно! |
| Автор: bass 27.8.2015, 17:21 | ||
Да просто со старой работы завалялись ключики...)))) Парочку оприходывал.))))Щ Стандартные методы ?????? По сути в той ветке процесс удаления файлов. А мне нужен процесс перезаписи. Через бат файл как-то данное дияние неохото совершать. Инжект встанут проблемы с АВП, длл рядом с ЕХЕ модулем. Запуск дочернего процесса не должно спровоцировать АВП. Создать виртуальный диск запихнуть из ресурсов патчЕХЕ. Запустить сторонний процесс из памяти. Есть еще вариант хукнуть стороннее приложение и далее с помощью релоков распеделить код в стороннем процессе., длл должна рядом с EXE модулем лежать. На какой метод будут срабатывать АВП пока мне не ясно. Хотел малой кровью отделаться - Ключи на разумнешее решение..)))) Только вот с флешкой еще и ключик придется вставлять, устанавливать драйвера хотя можно в HID режиме ключики запустить.. Да даже знаменитая программа UNlocker не справилась с данным заданием, уж так интересно стало чего накалякали специалисты Microsoft для совершения данной подлянки... ))))) |
| Автор: volatile 27.8.2015, 18:12 |
появился ACL Может банально нет прав? |
| Автор: bass 27.8.2015, 18:30 | ||
ProcessExplorer правда не нашел данного дескриптора. Но можно и под учетной записью системы запуститься..... Боюсь не исправит данное действие картину.... Мне кажется дело где-то глубже зарыто например в драйвере файловой системы. |
| Автор: bass 28.8.2015, 10:01 | ||||||
Сама страница памяти выгружается.... |
| Автор: feodorv 28.8.2015, 10:51 |
Не понял мысли |
| Автор: bass 28.8.2015, 11:40 | ||
Да понял я мысль, все что угодно они могли написать, задокументировали бы это.... |