Запустите bat-файл при просмотре изображения - PullRequest
3 голосов
/ 07 января 2012

Я хочу скрыть файл bat или его команды в файле изображения, чтобы при открытии изображения выполнялись команды в файле bat.

Ответы [ 4 ]

8 голосов
/ 07 января 2012

Предполагая, что вы говорите специально для платформы Windows (что с «пакетными» файлами), вы не можете.

Пакетные файлы анализируются, а не компилируются, поэтому файл изображения с пакетом в нем все равно будет считываться как файл изображения.

Я действительно не могу подвести итог более ясно, чем вещи, просто не работает так.

Однако, если вы делаете что-то этически , вы можете повторно связать, скажем, расширение .jpg, которое нужно открыть с помощью командной строки, и поместить ваш пакетный скрипт текстовый файл с расширением .jpg.

Просто последнее замечание: подобные вопросы часто плохо воспринимаются членами StackOverflow просто потому, что вы вряд ли когда-либо пытаетесь достичь чего-то подобного с добрыми намерениями. Я не буду первым, кто тебя застрелит, но я точно не буду последним.

4 голосов
/ 07 января 2012

Существует несколько способов, которыми один файл может содержать два разных потока данных, которые не зависят друг от друга и не мешают друг другу. Один из наиболее часто цитируемых примеров этого - то, как можно добавить файл .zip к файлу .jpg и при этом использовать функцию комбинированного файла как файлы обоих типов, в зависимости от того, какое приложение открывает его.,Этот трюк использует преимущества особого способа структурирования файлов jpeg и zip.Файлы этого типа похожи на программу polyglot .

Еще один распространенный метод встраивания несвязанной информации в файл - это стеганография , которая представляет собой сокрытие сообщений в мирских объектах(как файл изображения.)

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

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

Можно с уверенностью предположить, что обычный пользователь не ожидает, что файл, оканчивающийся на .jpg (например), откроет окно cmd.exe и начнет выполнять неизвестные инструкции.Windows Explorer, приложение, которое в большинстве случаев решает, какую программу запускать при двойном щелчке по файлу определенного типа, имеет нормальные значения по умолчанию (т. Е. Файл .jpg открывается с помощью приложения для просмотра изображений), хотя их можно изменить (хотя пользователи обычно неНе меняйте эти нормальные значения по умолчанию на безумные настройки, такие как cmd.exe.)

Самый простой способ - написать собственную программу-обработчик и заставить ее стать обработчиком по умолчанию для типов файлов изображений.Я считаю, что все приложения-обработчики должны быть скомпилированными PE-файлами приложений или библиотек (.exe, .dll, .scr и т. Д.), Поэтому другой пакетный файл здесь не будет работать.Ваш пользовательский обработчик должен отменить встраивание, чтобы извлечь встроенный пакетный файл, а затем выполнить его с помощью cmd.exe.

Но если вам уже удалось заменить стандартный обработчик собственным кодом, встроенный пакетный файл будетспорный вопрос, поскольку ваш код уже запущен.


Я должен повторить то, что @ Di-0xide сказал по этому вопросу.Если вы пытаетесь написать законное приложение, и это является частью вашего плана проектирования, то вам нужно вернуться к чертежной доске, потому что ни одно законное приложение не должно когда-либо делать подобные вещи.

2 голосов
/ 23 января 2015

Хотя нет сомнений, что есть еще много причин, по которым кто-то захочет встроить пакетный файл в изображение, и заставить его выполнить, когда изображение открывается. Я вижу по крайней мере одну законную причину желания выполнить задачу.

Что делать, если у вас есть семейный компьютер, которым поделились двое детей, жена и вы сами. Допустим, у вас есть файлы, которых нет хотите, чтобы ваши дети встретились, или каталог, полный записей журнала. Было бы неплохо, если бы простой пакетный файл, который бы изменить настройки атрибутов каталога, содержащего конфиденциальные файлы. Таким образом, родитель может быть уверен, что их дети не будут натыкаться на фотографии нуди пап. LOL

IE: допустим, кто-то написал 2 простых пакетных файла s.bat (чтобы показать каталог) и h.bat (чтобы скрыть каталог)

hide.bat

@echo off
REM Show the directory containing sensitive info:
attrib +a +s +h +r C:\path\to\the\directory\to\hide

REM Hide this batch file(or image containing the batch file):
attrib +a +s +h +r C:\path\to\the\batch\files\hide.bat

REM Show a batch file(or image containing the batch file) that will allow for showing the directory:
attrib -a -s -h -r C:\path\to\the\batch\files\show.bat

show.bat

@echo off
REM Show the directory containing sensitive info:
attrib -a -s -h -r C:\path\to\the\directory\to\hide

REM Show the batch file(or image containing the batch file) that will allow user to hide directory:
attrib -a -s -h -r C:\path\to\the\batch\files\h.bat

REM Hide this batch file(or image containing the batch file):
attrib +a +s +h +r C:\path\to\the\batch\files\s.bat

Я думаю, что было бы лучше работать с изображениями, которые выполняли бы пакетные файлы show.bat и hide.bat, а не просто менять значок в каждом пакетном файле.

Возможно, сработает программа-обработчик, которая изменит атрибуты каталога, затем откроет образ и свяжет обработчик с каким-то неиспользуемым расширением.

Просто мысль.

1 голос
/ 18 ноября 2017

Самый простой способ сделать это - просто создать свой командный файл как обычно, а затем создать ярлык на рабочем столе того же командного файла.Наконец щелкните правой кнопкой мыши на ярлыке и измените значок на любое изображение, которое вы хотите.После внесения всех изменений при каждом открытии образа запускается командный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...