Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 2000/XP (http://forum.oszone.net/forumdisplay.php?f=6)
-   -   [решено] Переименовать EXE в BAT (http://forum.oszone.net/showthread.php?t=280501)

PavlovAV 07-04-2014 19:37 2334406

Переименовать EXE в BAT
 
Добрый день всем!

Только зарегистрировался, первый раз пишу, сильно не пинайте))
Сегодня узнал, что если переименовать файл *.exe в *.bat, то винда без проблем запускает его.
Пробовал на простенькой игрушке, типа пасьянса марьяж.
Как ни странно - работает.
Подскажите, это извращение?)))
PS история:
Техподдержка (сторонняя организация) обычно присылала запросы к БД Oracle в виде двух файликов, bat и sql,
но сегодня почему-то прислали exe с файлами параметров (sql-запросы).
Попросил прислать bat, они тупо переименовали и прислали тот же файл изменив его тип (размер и содержимое файла те-же).
Мне очень не хочется, чтобы присылали "не известно что", народ посоветовал фразу "пришлите файл с открытым кодом",
думаю что это единственный вариант.

Iska 07-04-2014 20:04 2334429

Цитата:

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

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

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

yurfed 07-04-2014 21:10 2334464

Цитата:

Цитата Iska
Считайте «фича». »

Да какая это фича? Изврат полный :)
Цитата:

Цитата Iska
Собственно, для возможности исполнения файла PE-формата расширение вообще не играет никакой роли »

А если он без расширения и не имеешь понятия как выглядит заголовок того или иного файла, будешь долго думать чем открыть. Windows не умеет принимать решения с различными известными ему файлами, но отличными расширениями.
Например в Linux'е подсунь MP3 файл с расширением TXT или вообще без расширения, он тут же откроет его в проигрывателе и не будет "кочевряжится" с Блокнотом.
Windows к расширениям очень привязан (хотя BAT и CMD можно запустить. Они отрабатываются как исполняемые). Опять, те же "Лини" смотрят на содержимое заголовка, а не в "хвост" имени.
Цитата:

Цитата PavlovAV
Мне очень не хочется, чтобы присылали "не известно что" »

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

Iska 07-04-2014 22:06 2334500

Цитата:

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

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

Цитата:

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

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

PavlovAV 07-04-2014 22:46 2334524

Цитата:

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

Да нет (русский язык - это чудо)))), с содержимым программы вопросов нет, не запускаю то что не известно - и все.
Тот же far, или встроенный в WinCmd просмотрщик показывает что внутри файла (с блокнотом сложнее, кодировка не та).
Странным был подход тех.поддержки, это и напрягло.
Вариантов 2: либо выпрошу исходные sql-файлы (батник сам дорисую), либо добьюсь чтобы прислали "читаемый" bat-файл (но тогда sql-файлы пусть нормальные шлют).
Вопрос-то был в следующем - с чего вдруг винда понимает, что переименованный файл (из exe в bat) является на самом деле exe-файлом, и все работает? Документировано ли это где-нибудь?
Да, не всегда это прокатывает (тот же ворд не заработает, т.к. сложный установщик, реестр задействован и т.п.), но на простеньких программках почему-то получается.
По сути - и txt можно открыть хоть вордом, хоть экселем - все будет читаемо, но наоборот - мало вероятно)))

yurfed 07-04-2014 23:28 2334541

Цитата:

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

Формат ассоциаций запуска у них возможно одинаковый. Примерно что то так, только через 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 можно открыть хоть вордом, хоть экселем - все будет читаемо, но наоборот - мало вероятно))) »

Word понимает формат TXT, блокнот - не понимает doc, rtf, docx и тд. Тут вроде всё понятно.
Ещё раз повторю - BAT, CMD запускаются через интерпретатор Cmd.exe.
Опять примерно
%SystemRoot%\system32\CMD.EXE %1

Iska 07-04-2014 23:45 2334548

Цитата:

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

Здесь:
Код:

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

Цитата:

Цитата PavlovAV
Да, не всегда это прокатывает (тот же ворд не заработает, т.к. сложный установщик, реестр задействован и т.п.) »

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

Цитата:

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

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

PavlovAV 08-04-2014 00:37 2334562

Цитата:

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

Логично))
СПАСИБО всем, закрываем.
PS в свое время в конец bmp скрытно дописывал свой текстовый лог
bmp при этом не страдал (паинтом читалось только начало файла, картинка открывалась нормально).

yurfed 08-04-2014 00:39 2334564

Цитата:

Цитата PavlovAV
PS в свое время в конец bmp скрытно дописывал свой текстовый лог
bmp при этом не страдал (паинтом читалось только начало файла, картинка открывалась нормально). »

Для чего, зачем?
Вы наверно великий пакостник :)

Iska 08-04-2014 00:55 2334566

Цитата:

Цитата yurfed
Для чего, зачем? »

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

PavlovAV 15-04-2014 20:20 2338544

Цитата:

Цитата yurfed
кий »

Ну... Нужно было скрытно кое-что логировать
Новые файлы хоть и не легко - но найти можно
А вот существующие... )))


Время: 20:27.

Время: 20:27.
© OSzone.net 2001-