Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

31.01.2007, 11:55
|
|
Постоянный
Регистрация: 21.04.2006
Сообщений: 540
Провел на форуме: 1310036
Репутация:
726
|
|
Работа с Debug
P.S Даная статья была взята с xakep.ru, автор которой SerP. Статья будет полезна тем кто собрался изучать или изучает ассемблер. Например мне данная статья помогла сдать экзамен в университете. Так что кто не знает что такое Debug то можно даже не читать
Эта статья посвящена работе с стандартным дебаггером системы ДОС. Ты скажешь: «На кой фиг мне это надо мне, крутому перцу?». Представь ситуацию: ты приходишь в компьютерный клуб (интернет-кафе, к другу домой), а там на тачке дисководы сняты, сидюки заклеены, а пакость сделать все же хочется. Естественно, на любом «нормальном» компе нет никаких компиляторов С, ассемблеров… но почти на каждом «нормальном» компе есть ДОС! Да, именно ДОС, и его последователи - Винды всех типов а конкретнее программа DEBUG.
Как? Набрать короткую (если времени мало, да и сил жалко), но неприятную программку, сохранить ее на диске и потом запустить, получив моральное удовлетворение. Посмотрим, как это делается, но для начала изучим несколько простых, но весьма полезных команд.
Итак, вы запустили программу DEBUG
Первая команда –D (dump) <adress>.
Эта команда позволяет просмотреть некоторую область памяти, адрес которой задан в параметре <adress> в формате сегмент:смещение.
Для начала посмотрим ПЗУ BIOS:
-d F000:E000
Здесь вы видите фирму-производителя вашей BIOS. А по адресу:
-d F000:EC6C
получаем интересную информацию о системе, такую как дата создания БИОС, чипсет… А по данному адресу (0000:046C) находится таймер БИОС. Отчетливо видно, что значения все время меняются. Для программиста удобно просматривать сегменты команд, данных и стека (CS, DS и SS, соответственно).
-d DS:0000
Выше мы видим содержимое сегмента данных, т. е. значения определенных переменных.
-d CS:100
А тут представлено содержимое сегмента команд, т.е. машинные коды команд, готовых к исполнению. Освоив команды просмотра памяти, впоследствии мы сможем эффективно отлаживать наши программы и просматривать введенный нами код перед исполнением (для нас сейчас это приоритетная задача).
Еще одна важная команда -R (register) <register name>, позволяющая просматривать состояние конкретного регистра и изменять его состояние или же сразу перейти к первой выполняемой команде с просмотром всех регистров.
-r AX
AX 1203
: 0
-
В данном фрагменте мы просматриваем регистр АХ и очищаем его (пишем в него 0). Чтобы перейти к первой выполняемой команде (по адресу CS:100):
-r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=3B9A ES=3B9A SS=3B9A CS=3B9A IP=0100 NV UP EI PL NZ NA PO NC
3B9A:0100 E82421 CALL 2227
Третья команда –E (enter) Addres <command list>.
Предназначена она для изменения значений в памяти – с помощью нее можно уже вводить команды в машинных кодах. Замечание: при вводе данных сначала пишется младший байт (по младшему адресу), затем – старший (по старшему), т. е. чтобы записать по адресу DS:0000 число 1234h необходимо ввести:
-E DS:0000 34 12
Например введем следующее:
-E cs:100 B8 34 12
-D CS:100
А с помощью команды U (unassemble) <starting address>, <ending adress> дизассемблируем введенные команды и получим:
-U CS:100,102
3B9A:0100 B83412 MOV AX,1234
Таким же образом можно дизассемблировать любой участок памяти, что очень полезно. Но вместо ввода команд на машинном языке, можно воспользоваться встроенным ассемблером программы DEBUG. Для этого существует команда -A (assemble) <adress>. С помощью этой команды вы можете написать уже нормальную программку на ассемблере, выполняющую необходимые действия.:
-A
0B3B:0100 mov ax,1234
0B3B:0103 mov ah, 4c
0B3B:0105 int 21
0B3B:0107
А как же теперь сохранить программу на диске? Сначала задается имя файла:
-N my_file.com
Затем в регистр СХ необходимо поместить размер программы в байтах. Он будет равен разности конечного и начального смещений. Теперь остается только осуществить запись на диск командой W и в результате увидеть записанное количество байтов. В итоге мы получаем программу, готовую к исполнению. Выход осуществляется командой q. Пример:
-A
0B3B:0100 mov ax,1234
0B3B:0103 mov ah, 4c
0B3B:0105 int 21
0B3B:0107
-u CS:100, 106
0B3B:0100 B83412 MOV AX,1234
0B3B:0103 B44C MOV AH,4C
0B3B:0105 CD21 INT 21
-r cx
CX 0000
:7
-r
AX=0000 BX=0000 CX=0007 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0B3B ES=0B3B SS=0B3B CS=0B3B IP=0100 NV UP EI PL NZ NA PO NC
0B3B:0100 B83412 MOV AX,1234
-N my.com
-W
Запись 00007 байт
-q
В заключение можно сказать, что данный способ создания программ открывает новые возможности для любителей компьютерных пакостей, приколов, да и просто программистов-любителей – ведь теперь для создания небольших программ, вместо установки компиляторов, можно воспользоваться стандартными средствами системы, а DEBUG входит в поставку во все Винды вплоть до ХР. Я думаю, что это поможет вам веселее провести время за чужим компом, вызывая истинное удивление хозяина (дисков и дискет-то вы не приносили!!!) новыми эффектами работы его оборудования. Успехов, юные любители хакерного экстрима!
И ещё добавлю от себя: как можно прикальнутся над чужим компьютерам, просто вводим вот такую команду JMP $ и пользователь до бесконечности будет смотреть на одну и тужу картинку 
|
|
|

31.01.2007, 12:20
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
ничего не заменит книжку
"Персональный компьютер IBM PC и операционная система MS-DOS" П.Нортон, 1992
Статья - голимая, как и 90% статей из хакера.
Эта статья посвящена работе с стандартным дебаггером системы ДОС. Ты скажешь: «На кой фиг мне это надо мне, крутому перцу?». Представь ситуацию: ты приходишь в компьютерный клуб (интернет-кафе, к другу домой), а там на тачке дисководы сняты, сидюки заклеены, а пакость сделать все же хочется.
без комментариев. автору стоит убиться об стенку с особой жестокостью
|
|
|

31.01.2007, 13:37
|
|
Познающий
Регистрация: 11.01.2007
Сообщений: 82
Провел на форуме: 592893
Репутация:
108
|
|
На wasm.ru еще есть похожая+)
|
|
|

27.02.2007, 17:53
|
|
Постоянный
Регистрация: 17.07.2005
Сообщений: 475
Провел на форуме: 1665310
Репутация:
488
|
|
Статья может голимая , но сама программа гут, [хотя непонятен дистурктивный прием, изложенный выше] даже хотя бы взять тот факт, что многие работают в Win системах и не знают о существовании отладчика.
|
|
|

27.02.2007, 19:00
|
|
Banned
Регистрация: 13.12.2005
Сообщений: 1,091
Провел на форуме: 9751364
Репутация:
1847
|
|
Нортона не читал (к сожалению), но Питер Абель рулит 
кстати
Здесь вы видите фирму-производителя вашей BIOS. А по адресу:
-d F000:EC6C
о_О
FE00:05
PS.
Например мне данная статья помогла сдать экзамен в университете.
- какой ужас. Мне страшно за уровень специалистов. Или ты учишься на секретаршу?
Последний раз редактировалось tclover; 27.02.2007 в 19:03..
|
|
|

01.03.2007, 00:22
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
Сообщение от r0
Статья может голимая , но сама программа гут, [хотя непонятен дистурктивный прием, изложенный выше] даже хотя бы взять тот факт, что многие работают в Win системах и не знают о существовании отладчика.
если те "многие" о нем не знают, им и не за чем знать.
зы. какой нахер деструктивный прием? ассемблер учите сначала...
|
|
|

02.03.2007, 14:00
|
|
Постоянный
Регистрация: 21.04.2006
Сообщений: 540
Провел на форуме: 1310036
Репутация:
726
|
|
Сообщение от tclover
PS. - какой ужас. Мне страшно за уровень специалистов. Или ты учишься на секретаршу?
Ты наверно только с этой статьи узнал что такое Debug. Но ты решил показать что ты такой умный!!! Всё ясно.
|
|
|

02.03.2007, 17:24
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
Сообщение от _GaLs_
Ты наверно только с этой статьи узнал что такое Debug. Но ты решил показать что ты такой умный!!! Всё ясно.
ты, наверное, тоже.
кстати в статейке полно бредятины.
мне жалко начинающих кодеров, которые прочитали эту статью.
например, написано что все винды - последователи ДОСа. Простите, но это относится только к версиям 1.х, 2.х, 3.х, 9х и Me. В них реально есть 16битный код.
Но вот все NT-based системы (NT4, 2k, XP, 2k3) полностью 32 битные и ни байта 16битного кода (кроме загрузчика, который 32битным быть не может по определению) нету.
Сразу видно, что автор статьи не разбирается в том, о чем пишет, что весьма печально, но очень типично для "Хакера".
Последний раз редактировалось _Great_; 02.03.2007 в 17:27..
|
|
|

02.03.2007, 17:59
|
|
Постоянный
Регистрация: 21.04.2006
Сообщений: 540
Провел на форуме: 1310036
Репутация:
726
|
|
Сообщение от _Great_
ты, наверное, тоже.
кстати в статейке полно бредятины.
мне жалко начинающих кодеров, которые прочитали эту статью.
например, написано что все винды - последователи ДОСа. Простите, но это относится только к версиям 1.х, 2.х, 3.х, 9х и Me. В них реально есть 16битный код.
Но вот все NT-based системы (NT4, 2k, XP, 2k3) полностью 32 битные и ни байта 16битного кода (кроме загрузчика, который 32битным быть не может по определению) нету.
Сразу видно, что автор статьи не разбирается в том, о чем пишет, что весьма печально, но очень типично для "Хакера".
Походу ты тоже!
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|