Создание COM-файла из текста - PullRequest
4 голосов
/ 22 марта 2011

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

Есть ли хорошая библиотека, которую я могу использовать, чтобы мой вывод был полностью ASCII?Или какие инструменты я бы начал использовать для создания такого типа продукции?Я понимаю, что, скорее всего, я буду создавать 16-битное приложение, но могу ли я также генерировать 32-битные приложения?

Я обнаружил, что программа MSFT debug.exe имеет ассемблер, который работает с этим, новывод, который я получаю от этого не совсем ASCIIКроме того, при разборке программы, представленной в ответе Ленина, я не вижу, куда он звонит int 21 для записи на экран.Где-нибудь еще есть документация для этого типа программ?

Может кто-нибудь еще разобраться с этими загадками, пожалуйста?

Ответы [ 4 ]

4 голосов
/ 22 марта 2011

Классическим примером файла .COM, в котором используются только печатные символы, является EICAR , файл, используемый для проверки антивируса. Некоторое время назад на bugtraq была ветка обсуждения EICAR .

4 голосов
/ 22 марта 2011

Файл text-to-com - очень аккуратный трюк.Он использует тот факт, что 16-разрядный загрузчик загрузит изображение со смещением 0x0100 и начнет выполнять по этому адресу.

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

2 голосов
/ 22 марта 2011

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

Чтобы знать, что делать(pre-www) один получил два или три справочника, в том числе Руководство программиста Питера Нортона для IBM PC , также известное как 'The Pink Shirt Book' '.

Список прерываний Ральфа Брауна является разумной заменой и находится в сети здесь .

Если у вас не имеется старого компьютера, найти подходящую среду выполнения может быть непростодля файла MSDOS .COM.

2 голосов
/ 22 марта 2011

Здесь на самом деле нет «хитрости», за исключением осторожного использования машинного кода, который происходит со всеми отображениями в символы ASCII.Я не в состоянии разобрать этот код в данный момент, но 继 继 雷 'Леник указывает, что здесь задействован какой-то самоизменяющийся код.

...