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

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

Пример 2: Clear the CMOS

"Маленькая, да удаленькая", - говорят в таких случаях. Эта программка весит всего 9 байт, а пользы от нее - хоть отбавляй. Если у тебя BIOS AWARD, то держись - прога сбрасывает пароль и настройки SETUP'а. Теперь сбросить пассворд в BIOS'е так же просто, как его поставить! Записывай и ассемблируй.

model tiny

.code

org 100h

start:

mov al, 5eh

out 70h, al

mov al, 0

out 71h, al

ret

end start

COM-файл получается как в первом примере: tasm.exe+tlink.exe /t. Запусти его, перезагрузись и увидишь при загрузке сообщение типа CMOS checksum error - Defaults loaded. Как это чудо работает? Тебе нужно знать лишь строчки mov... и out... Что делает mov al, 5eh? Просто заносит число 5eh в al (move 5eh to al). А что такое al? Это один из так называемых регистров проца. Регистр - это такая ячейка в процессоре, в которую можно записывать разные числа, хранить их там, чтобы потом использовать. Регистров более 20 штук, и каждый имеет свое имя. Есть регистры вместимостью один, два или четыре байта. Размер AL - байт. Дальше - команда out 70h, al. Это команда вывода в порт числа. Порт - это как бы канал связи камня и внешнего устройства. Каждое устройство (винт, видеокарта, аудиокарта, etc) имеет свой порт, через который проц может управлять им. out 70h, al значит, что надо послать число, которое лежит в al в порт номер 70h. Для справки, порты 70h и 71h соответствуют CMOS'у. Чтобы программировать CMOS, надо сначала вывести в порт 70h то, что в CMOS'е ты хочешь изменить (дата, время, настройки винта, пароль), а затем вывести в порт 71h новое значение (дату, время, параметр винта etc). Здесь мы сначала выводим в порт 70h число 5eh, которое значит, что мы будем изменять настройку пароля on/off. Затем мы выводим в порт 71h ноль, что значит - пароль выключен (чтобы пароль включить, надо вывести единицу). Последняя строчка ret нужна, чтобы вернуться в ДОС - если бы ее не было, то в ДОС бы мы не вернулись и повисли бы.

Вота

Вот такие вещи можно писать на ассемблере. Теперь твоя очередь изучить его. Придется тебе также изучить аппаратные части твоего компа и сам процессор, так как без этого много на ASM'е не напишешь. Необязательно все знать и держать в голове - нужен просто хороший справочник. Предлагаю тебе юзать в этих целях Interrupt List Ральфа Брауна. Там куча разной текстовой инфы - все тянет мегов на пять-шесть. Надеюсь, твоя программерская потенция сильно возросла, и ты полон решимости теперь стать реальным кодером, так что соблюдай дозы ежедневного потребления пива и учи ассемблер. Успехов!

Проснись. Отныне и навсегда двери виртуального пространства для тебя открыты! Еще один шаг продвинул тебя на пути к почетному званию кул-хацкера - ты начал кодить. Запомни день, когда заработала твоя первая прога, и когда наступит день твоего первого взлома, ты подсчитаешь, сколько дней пройдет от кодинга до хака. Обычно это 120-180 дней, в течение которых раз пятнадцать придется переустановить винды, раз десять переформатировать винт и, наконец, раз пять сказать себе, что никогда больше не сядешь за свой поганый комп. Виной всему - первые попытки кодинга на ASM'е, которые заставляют процессор хохотать над твоими потугами, а тебя - радоваться каждой своей удачной проге.

Назад на стр. 004-090-2  Содержание

загрузка...
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