Разное - [решено] Переименовать EXE в BAT

Аватара пользователя
PavlovAV

Разное - [решено] Переименовать EXE в BAT

Сообщение PavlovAV »

Добрый день всем!



Только зарегистрировался, первый раз пишу, сильно не пинайте))

Сегодня узнал, что если переименовать файл *.exe в *.bat, то винда без проблем запускает его.

Пробовал на простенькой игрушке, типа пасьянса марьяж.

Как ни странно - работает.

Подскажите, это извращение?)))

PS история:

Техподдержка (сторонняя организация) обычно присылала запросы к БД Oracle в виде двух файликов, bat и sql,

но сегодня почему-то прислали exe с файлами параметров (sql-запросы).

Попросил прислать bat, они тупо переименовали и прислали тот же файл изменив его тип (размер и содержимое файла те-же).

Мне очень не хочется, чтобы присылали "не известно что", народ посоветовал фразу "пришлите файл с открытым кодом",

думаю что это единственный вариант.
Аватара пользователя
Iska

Re: Разное - [решено] Переименовать EXE в BAT

Сообщение Iska »

Цитата PavlovAV:



Подскажите, это извращение?)))
Разное - [решено] Переименовать EXE в BAT




Нет. Считайте «фича».




читать дальше »


P.S. Собственно, для возможности исполнения файла PE-формата расширение вообще не играет никакой роли — см. пример с методом «.RunApplication()» здесь:
vbscript: некоторые интересные объекты Automation — Серый форум
.
Аватара пользователя
PavlovAV

Re: Разное - [решено] Переименовать EXE в BAT

Сообщение PavlovAV »

Цитата Iska:



Считайте «фича».
Разное - [решено] Переименовать EXE в BAT




Да какая это фича? Изврат полный Изображение


Цитата Iska:



Собственно, для возможности исполнения файла PE-формата расширение вообще не играет никакой роли
Разное - [решено] Переименовать EXE в BAT




А если он без расширения и не имеешь понятия как выглядит заголовок того или иного файла, будешь долго думать чем открыть. Windows не умеет принимать решения с различными известными ему файлами, но отличными расширениями.

Например в Linux'е подсунь MP3 файл с расширением TXT или вообще без расширения, он тут же откроет его в проигрывателе и не будет "кочевряжится" с Блокнотом.

Windows к расширениям очень привязан (хотя BAT и CMD можно запустить. Они отрабатываются как исполняемые). Опять, те же "Лини" смотрят на содержимое заголовка, а не в "хвост" имени.


Цитата PavlovAV:



Мне очень не хочется, чтобы присылали "не известно что"
Разное - [решено] Переименовать EXE в BAT




Если сами не можете определиться с содержимым файлов, воспользуйтесь программой

Аватара пользователя
yurfed

Re: Разное - [решено] Переименовать EXE в BAT

Сообщение yurfed »

Цитата yurfed:



А если он без расширения и не имеешь понятия как выглядит заголовок того или иного файла, будешь долго думать чем открыть. Windows не умеет принимать решения с различными известными ему файлами, но отличными расширениями.
Разное - [решено] Переименовать EXE в BAT




Это Вы про Проводник говорите. А я — именно про возможность исполнения файла.




Цитата yurfed:



Например в Linux'е подсунь MP3 файл с расширением TXT или вообще без расширения, он тут же откроет его в проигрывателе и не будет "кочевряжится" с Блокнотом.
Разное - [решено] Переименовать EXE в BAT




Там, очевидно, основано на опросе внутренней структуры. С деталями не знаком.
Аватара пользователя
Iska

Re: Разное - [решено] Переименовать EXE в BAT

Сообщение Iska »

Цитата yurfed:



Если сами не можете определиться с содержимым файлов, воспользуйтесь программой
Разное - [решено] Переименовать EXE в BAT




Да нет (русский язык - это чудо)))), с содержимым программы вопросов нет, не запускаю то что не известно - и все.

Тот же far, или встроенный в WinCmd просмотрщик показывает что внутри файла (с блокнотом сложнее, кодировка не та).

Странным был подход тех.поддержки, это и напрягло.

Вариантов 2: либо выпрошу исходные sql-файлы (батник сам дорисую), либо добьюсь чтобы прислали "читаемый" bat-файл (но тогда sql-файлы пусть нормальные шлют).

Вопрос-то был в следующем - с чего вдруг винда понимает, что переименованный файл (из exe в bat) является на самом деле exe-файлом, и все работает? Документировано ли это где-нибудь?

Да, не всегда это прокатывает (тот же ворд не заработает, т.к. сложный установщик, реестр задействован и т.п.), но на простеньких программках почему-то получается.

По сути - и txt можно открыть хоть вордом, хоть экселем - все будет читаемо, но наоборот - мало вероятно)))
Аватара пользователя
PavlovAV

Re: Разное - [решено] Переименовать EXE в BAT

Сообщение PavlovAV »

Цитата PavlovAV:



Вопрос-то был в следующем - с чего вдруг винда понимает, что переименованный файл (из exe в bat) является на самом деле exe-файлом, и все работает? Документировано ли это где-нибудь?
Разное - [решено] Переименовать EXE в BAT




Формат ассоциаций запуска у них возможно одинаковый. Примерно что то так, только через CMD.EXE

Vadikan, прошу поправить если всё не так Изображение


читать дальше »




Код:

Код: Выделить всё

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.exe]
@="exefile"
"Content Type"="application/x-msdownload"
[HKEY_CLASSES_ROOT\.exe\PersistentHandler]
@="{098f2470-bae0-11cd-b579-08002b30bfeb}"
[HKEY_CLASSES_ROOT\exefile]
@="Application"
"EditFlags"=hex:38,07,00,00
"TileInfo"="prop:FileDescription;Company;FileVersion"
"InfoTip"="prop:FileDescription;Company;FileVersion;Create;Size"
[HKEY_CLASSES_ROOT\exefile\DefaultIcon]
@="%1"
[HKEY_CLASSES_ROOT\exefile\shell]
[HKEY_CLASSES_ROOT\exefile\shell\open]
"EditFlags"=hex:00,00,00,00
[HKEY_CLASSES_ROOT\exefile\shell\open\command]
@="\"%1\" %*"
[HKEY_CLASSES_ROOT\exefile\shell\runas]
[HKEY_CLASSES_ROOT\exefile\shell\runas\command]
@="\"%1\" %*"
[HKEY_CLASSES_ROOT\exefile\shellex]
[HKEY_CLASSES_ROOT\exefile\shellex\DropHandler]
@="{86C86720-42A0-1069-A2E8-08002B30309D}"
[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHandlers]
[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHandlers\PEAnalyser]
@="{09A63660-16F9-11d0-B1DF-004F56001CA7}"
[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHandlers\PifProps]
@="{86F19A00-42A0-1069-A2E9-08002B30309D}"
[HKEY_CLASSES_ROOT\exefile\shellex\PropertySheetHandlers\ShimLayer Property Page]
@="{513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}"








Цитата PavlovAV:



По сути - и txt можно открыть хоть вордом, хоть экселем - все будет читаемо, но наоборот - мало вероятно)))
Разное - [решено] Переименовать EXE в BAT




Word понимает формат TXT, блокнот - не понимает doc, rtf, docx и тд. Тут вроде всё понятно.

Ещё раз повторю - BAT, CMD запускаются через интерпретатор Cmd.exe.

Опять примерно

%SystemRoot%\system32\CMD.EXE %1
Аватара пользователя
yurfed

Re: Разное - [решено] Переименовать EXE в BAT

Сообщение yurfed »

Цитата PavlovAV:



Вопрос-то был в следующем - с чего вдруг винда понимает, что переименованный файл (из exe в bat) является на самом деле exe-файлом, и все работает? Документировано ли это где-нибудь?
Разное - [решено] Переименовать EXE в BAT




Здесь:



Код:

Код: Выделить всё

HKEY_CLASSES_ROOT\batfile\shell\open\command

Ваш «пакетный» файл отправляется на исполнение, где происходит разбор содержимого его заголовка, и он исполняется, как любой другой PE-файл.




Цитата PavlovAV:



Да, не всегда это прокатывает (тот же ворд не заработает, т.к. сложный установщик, реестр задействован и т.п.)
Разное - [решено] Переименовать EXE в BAT




Однако, работает.




Цитата PavlovAV:



По сути - и txt можно открыть хоть вордом, хоть экселем - все будет читаемо, но наоборот - мало вероятно)))
Разное - [решено] Переименовать EXE в BAT




Некорректное объяснение. У нас, фактически, всего-навсего сменён тип файла. Причём эта смена никак не влияет на метод запуска — в обеих разделах реестра однотипное содержимое в глаголе «Open». И только. В любом случае всё вращается вокруг
CreateProcess function (Windows)
.
Аватара пользователя
Iska

Re: Разное - [решено] Переименовать EXE в BAT

Сообщение Iska »

Цитата Iska:



Ваш «пакетный» файл отправляется на исполнение, где происходит разбор содержимого его заголовка
Разное - [решено] Переименовать EXE в BAT




Логично))

СПАСИБО всем, закрываем.

PS в свое время в конец bmp скрытно дописывал свой текстовый лог

bmp при этом не страдал (паинтом читалось только начало файла, картинка открывалась нормально).
Аватара пользователя
PavlovAV

Re: Разное - [решено] Переименовать EXE в BAT

Сообщение PavlovAV »

Цитата PavlovAV:



PS в свое время в конец bmp скрытно дописывал свой текстовый лог

bmp при этом не страдал (паинтом читалось только начало файла, картинка открывалась нормально).
Разное - [решено] Переименовать EXE в BAT




Для чего, зачем?

Вы наверно великий пакостник Изображение
Аватара пользователя
yurfed

Re: Разное - [решено] Переименовать EXE в BAT

Сообщение yurfed »

Цитата yurfed:



Для чего, зачем?
Разное - [решено] Переименовать EXE в BAT




Rarjpeg — Lurkmore
и иже с ним. Но вряд ли. Скорее доморощенная стеганография.
Ответить

Вернуться в «Microsoft Windows 2000/XP»