2012-01-07 3 views
3

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

+4

И это не злонамеренно ... как? – Qix

+1

Я пришел сюда, ища то же самое (годы спустя), потому что я хочу запустить файл .bat, который просто отображает забавное сообщение в командной строке ... потому что мои друзья и я любим шутить друг с другом. :-) Не злонамеренно вообще. – IRGeekSauce

ответ

6

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

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

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

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

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

+1

Я не собираюсь причинять кому-либо вред. Когда изображение просматривается, я хочу всплывать «Желание дня рождения». –

4

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

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

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

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

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

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

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

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

2

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

Что делать, если у вас есть семейный компьютер, который делится с вашими 2 детьми, женой и вами. Допустим, у вас есть файлы, которые у вас нет хотите, чтобы ваши дети попадались, или каталог, полный записей журнала. Это было бы довольно аккуратно, если бы простой командный файл, который бы изменил настройки атрибутов каталога, содержащего чувствительные файлы. Таким образом, родитель может успокоиться, что их дети не будут спотыкаться на фотографии nads pads. 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 

шоу. летучая

@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 пакетных файлы, а не просто изменить значок на каждом пакетный файл.

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

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

0

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

+0

Я не уверен, что это то, что хотел Удара. Это только запускает пакетный файл, если ссылка на thedesctop открыта - не если файл изображения открыт. Theres легкое различие между изображением и файлом .lnk. –

Смежные вопросы