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

загрузка...
Cпец Хакер #075Cпец Хакер #074Cпец Хакер #073Cпец Хакер #072Cпец Хакер #071Cпец Хакер #070Cпец Хакер #069Cпец Хакер #068Cпец Хакер #067Cпец Хакер #066Cпец Хакер #065Cпец Хакер #064Cпец Хакер #063Cпец Хакер #062Cпец Хакер #061Cпец Хакер #060Cпец Хакер #059Cпец Хакер #058Cпец Хакер #057Cпец Хакер #056Cпец Хакер #055Cпец Хакер #054Cпец Хакер #053Cпец Хакер #052Cпец Хакер #051Cпец Хакер #050Cпец Хакер #049Cпец Хакер #048Cпец Хакер #047Cпец Хакер #046Cпец Хакер #045Cпец Хакер #044Cпец Хакер #043Cпец Хакер #042Cпец Хакер #041Cпец Хакер #040Cпец Хакер #039Cпец Хакер #038Cпец Хакер #037Cпец Хакер #036Cпец Хакер #035Cпец Хакер #034Cпец Хакер #033Cпец Хакер #032Cпец Хакер #031Cпец Хакер #030Cпец Хакер #029Cпец Хакер #028Cпец Хакер #027Cпец Хакер #026Cпец Хакер #025Cпец Хакер #024Cпец Хакер #023Cпец Хакер #022Cпец Хакер #021Cпец Хакер #020Cпец Хакер #019Cпец Хакер #018Cпец Хакер #017Cпец Хакер #016Cпец Хакер #015Cпец Хакер #014Cпец Хакер #013Cпец Хакер #012Cпец Хакер #011Cпец Хакер #010Cпец Хакер #009Cпец Хакер #008Cпец Хакер #007Cпец Хакер #006Cпец Хакер #005Cпец Хакер #004Cпец Хакер #003Cпец Хакер #002Cпец Хакер #001