Несколько быстрых вещей, как я знаю, такие вопросы часто имеют вредоносную основу.
- Я не пытаюсь выполнить что-то в формате файла (JPG)
- Я не пытаюсь просто достичь конечной цели (то есть сделать что-то похожее на jpg, но exectue)
- Я просто пытаюсь понять разницу между тем, как компьютер анализирует информацию
Поэтому, насколько я понимаю, компьютер, работающий с форматом файла данных, таким как JPG, PDF и т.д., Будет анализировать информацию только в том виде, в котором он представляет собой контейнер, соответствующий моим макетам / спецификациям. Обычно вы слышите разницу между форматом файла данных и исполняемым файлом в том, что компьютер не «запускает (выполняет)» файл данных. У меня вопрос - откуда компьютер знает, что читать и что выполнять? В чем разница? Мой мысленный образ компьютера - это то, что шаг за шагом читает инструкции. Если в середине jpg, который он анализировал, он увидел шелл-код для всплывающего сообщения, почему он не активируется при чтении?
Я знаю, что все может быть выполнено с помощью эксплойтов для программного обеспечения, путем обмана парсера - возможно, через переполнение буфера и т.д. Опять же, не так сильно интересует конечная цель, как этого можно достичь. Меня больше интересует, как компьютер может сказать, что должно быть прочитано, что должно быть выполнено, и как чтение может быть достигнуто без выполнения.