Войти

Показать полную графическую версию : Отключение защиты (проверка имени файла .exe)


Sateur
27-01-2016, 16:31
Добрый день, уважаемые форумчане!

У меня есть программа (файл root.exe) которая перестает работать при изменении имени файла, а точнее она запускается, но через некоторое время срабатывает защитный механизм и вылетает ошибка о неверном дескрипторе... пробовал помимо простого переименования с root.exe на port.exe, делать правки в hex редакторе, но проблема осталась... Хотелось бы понять какой ресурс отвечает за проверку имени файла и как его отключить подручными средствами, исходников программы нет :( Вообще интересует и другая сторона вопроса, как реализовать подобное при написании программы?

P.S. Не уверен что выбрал правильную категорию своего вопроса, но попытка не пытка...

vmzsoft
29-01-2016, 01:03
Вообще интересует и другая сторона вопроса, как реализовать подобное при написании программы? »
Элементарно, Ватсон. :)
//получение полного имени файла с диском и путем
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
29-01-2016, 11:56
Элементарно, Ватсон »Не думаю. Такие проверки делаются через вычисление контрольной суммы.

vmzsoft
31-01-2016, 03:15
Не думаю. Такие проверки делаются через вычисление контрольной суммы. »
Хотелось бы понять какой ресурс отвечает за проверку имени файла »
Речь идет об имени файла, а не о его содержимом...

Iska
31-01-2016, 12:21
vmzsoft, если Вы почитаете исходное сообщение внимательнее — увидите, что там явно никакая не защита срабатывает, а банальная ошибка возникает. А проверка действительно делается через контрольные суммы.

Sateur
03-02-2016, 06:28
Вот такая ошибка вылетает, при работе приложения с измененным названием, это тайминг защита или я что-то упустил?

Application error
Exception EThread in module port.exe at 000CD29A. Thread Error: Неверный дескриптор (6).




© OSzone.net 2001-2012