ЖУРНАЛ ХАКЕР

ASM - проще некуда

Спецвыпуск Хакер, номер #004, стр. 004-090-2


Что внутри?

Разберем ее подробнее. В первой строчке написано - model tiny. Это всего-навсего значит, что должен быть com файл, а не exe. Если захочешь exe'шник, то пиши model small. Во второй строчке написано .code. По названию ясно, что так отмечается начало кода проги. Это нужно, потому что у реальных программ код (команды) и данные (переменные) должны быть разделены. Если ты хочешь в каком-то месте вставить данные, то пиши .data, а потом уже сами данные. Далее идет строчка org 100h. Она нужна только для com файлов и связана с особенностями MS-DOS (опять вездесущий Mracosoft), и тебе сейчас необязательно знать, зачем она нужна. Start: - это место, где находится точка входа программы. На ассемблере всегда надо помечать место, где находится начало программы (первая команда). А вот и первая команда - jmp dword ptr reboot. Она говорит процу: прыгай (перейди) по адресу, который находится в переменной reboot. Еще ниже - строчка .data, которая означает, что в этом месте начинаются данные. Сами данные - это переменная reboot, которая описана в следующей строчке - reboot dd 0ffff0000h. dd значит, что переменная занимает 4 байта; если надо один байт, то пишут db, если два - то dw. В ассемблере нет типов данных типа "целое число", символ etc - все в байтах. Для целого числа надо два байта, для символа - один. В нашей проге требуется 4 байта, чтобы записать адрес перехода для команды jmp. Число 0ffff0000h в hex - это значение адреса, куда мы прыгаем. Именно по этому адресу проц считывает первую команду после включения. Вообще, в ASM'е большинство чисел пишут в hexe, поэтому если ты еще не работаешь в этой системе, то придется ее выучить (там всего лишь таблица сложения и умножения). Также, перейдя на hex, ты станешь очень продвинутым чуваком (чувихой), так как будешь владеть самой модной в этом сезоне таблицей умножения. Последняя строчка end start завершает текст исходника и говорит, что точкой входа в прогу будет метка start. Вот так работает ребут. Видишь - немного усилий, и ты получил полезнейшую прогу, которую ты можешь усовершенствовать и использовать ее во множестве случаев: от прописки ее в autoexec.bat до вставки ее в некоторый участок тела вируса.

Назад на стр. 004-090-1  Содержание  Вперед на стр. 004-090-3