Отключение защиты (проверка имени файла .exe)
Добрый день, уважаемые форумчане!
У меня есть программа (файл root.exe) которая перестает работать при изменении имени файла, а точнее она запускается, но через некоторое время срабатывает защитный механизм и вылетает ошибка о неверном дескрипторе... пробовал помимо простого переименования с root.exe на port.exe, делать правки в hex редакторе, но проблема осталась... Хотелось бы понять какой ресурс отвечает за проверку имени файла и как его отключить подручными средствами, исходников программы нет :( Вообще интересует и другая сторона вопроса, как реализовать подобное при написании программы?
P.S. Не уверен что выбрал правильную категорию своего вопроса, но попытка не пытка...
|
Цитата:
Цитата Sateur
Вообще интересует и другая сторона вопроса, как реализовать подобное при написании программы? »
|
Элементарно, Ватсон. :)
Код:
//получение полного имени файла с диском и путем
fullFileName := Paramstr(0);
//или
fullFileName := Application.ExeName;
// Показ составляющих частей этого полного имени
ShowMessage('Диск = '+ExtractFileDrive (fullFileName));
ShowMessage('Каталог = '+ExtractFileDir (fullFileName));
ShowMessage('Путь = '+ExtractFilePath (fullFileName));
ShowMessage('Имя = '+ExtractFileName (fullFileName));
ShowMessage('Расширение = '+ExtractFileExt (fullFileName));
Проверяйте в программе, чтобы ExtractFileName (fullFileName)+ExtractFileExt (fullFileName) было равно тому названию, которое вы задали для своей программы...
И если не совпадает, можете грязно обругать юзера и завершить программу. :lol:
|
Не думаю. Такие проверки делаются через вычисление контрольной суммы.
|
Цитата:
Цитата opel431
Не думаю. Такие проверки делаются через вычисление контрольной суммы. »
|
Цитата:
Цитата Sateur
Хотелось бы понять какой ресурс отвечает за проверку имени файла »
|
Речь идет об имени файла, а не о его содержимом...
|
vmzsoft, если Вы почитаете исходное сообщение внимательнее — увидите, что там явно никакая не защита срабатывает, а банальная ошибка возникает. А проверка действительно делается через контрольные суммы.
|
Вот такая ошибка вылетает, при работе приложения с измененным названием, это тайминг защита или я что-то упустил?
Application error
Exception EThread in module port.exe at 000CD29A. Thread Error: Неверный дескриптор (6).
|
Время: 22:02.
© OSzone.net 2001-