мінімум softice

Ця корисна прога полегшує
життя і програмістам, і кракери, яка
є просунутим отладчиком,
працюючим в RING0. Для нормальної роботи тобі
необхідне знання ASM-a (рекомендую книгу "Assembler"
Зубкова С.В.).
Почнемо з установки. При інсталяції SoftIce (робоча
версія 4.0) додасть себе в autoexec. для
активізації SoftIce, потрібно натиснути Ctrl + D -
побачиш консоль. Щоб закрити головне меню
і повернутися в систему, слід натиснути F5.
Головне вікно SoftIce складається з декількох
подокон, призначених для відображення
коду, дампа пам'яті, стану регістрів і т.д.
Всі ці вікна можна включати і вимикати. ось
кілька команд (щоб отримати коротку
довідку по командам, треба набрати H або HELP):

WD - (on / off) вікно даних
WC - (on / off) вікно коду
WR - (on / off) вікно стану регістрів
процесора
WF - (on / off) вікно стека співпроцесора
WL - (on / off) вікно локальних змінних
LINES n_of_lines - установка кількості лінія на
екрані (25-128)
WIDTH n_of_col - установка кількості стовпців на
екрані (60-160)
SET ORIGIN x, y - установка лівого верхнього гланого
вікна в позицію x, y
Ctrl + Alt + стрілки - переміщення головного екрану
Ctrl + Alt + Home - переміщення в лівий верхній кут
екрану
Ctrl + Alt + C - переміщення в центр
Ctrl + стрілки - прокрутка вікна коду
Alt + стрілки - прокрутка вікна даних

Тепер команди, який використовуються в
роботі:

F1 - Help
F4 - показати вміст екрану Windows
F5 - вийти
F6 - перевести курсор у вікно коду або з нього
F7 - виконати команди від поточного рядка до
курсора
F8 - трасування з заходом в функцію
F9 - контрольна точка в поточному рядку
F10 - трасування без заходячи в функцію
F12 - виконати команди до ret

BL - список всіх встановлених BP (Break Point)

BD n_of_bp - деактивувати BP

BE n_of_bp - активізувати BP

BC n_of_bp - видалити BP

n_of_bp - номер BP, який можна дізнатися командою
BL.

D addr - відобразити у вікні даних пам'ять,
починаючи з addr

DB, DW, DT, DD, DD - різновиди команди D,
відрізняються тільки форматом відображення.

деякий код
...

...
продовження програми

Трохи про регістрах.

Регістри є складовою частиною
процесора. Вони використовуються для
тимчасового зберігання інформації.
Інтенсивне використання регістрів в
програмі визначається тим, що швидкість
доступу до них набагато більше, ніж до осередків
пам'яті. 32-х бітні процесори мають 16
регістрів. Ми розглянемо лише основні та
найбільш часто використовувані з них:
регістри загального призначення, покажчик
інструкцій, регістри сегментів і регістр
прапорів.

Хоча для зберігання операндів, результатів
операцій і покажчиків Ви можете
використовувати будь-який з перерахованих вище
регістрів, будьте обережні з регістром esp. В
ньому зберігається покажчик вершини стека і
некоректне можна змінювати, якщо
призведе до неправильної роботи програми і
її аварійного завершення.

Багато команд використовують конкретні
регістри для зберігання своїх операндів.
Наприклад, команди обробки текстових
рядків використовують вміст регістрів ecx, esi
і edi в якості операндів.

Основні випадки використання регістрів
загального призначення:
- eax - використовується для зберігання операндів і
результатів операцій
- ebx - як покажчик на дані в сегменті ds
- ecx - як лічильник для строкових операцій і
циклів
- edx - покажчик для введення / виведення
- esi - покажчик на дані в сегменті ds, а
також як покажчик на джерело в командах
роботи з рядками
- edi - покажчик на дані в сегменті es, а
також як покажчик на приймач в командах
роботи з рядками
- esp - покажчик вершини стека в сегменті ss
- ebp - покажчик на деякі дані в стек

У регістрах, що закінчуються на x, можна
звертатися до младщім 16-і бітам (ax, bx, cx і dx
відповідно), які в свою чергу
можна розділити на старший байт (ah, bh, ch і dh) і
молодший (al, bl, cl і dl) і працювати з ними, як з
регістрами довжиною 8 біт. Регістри-покажчики
esp (покажчик вершини стека) і ebp (базовий
регістр), а також індексні регістри esi (індекс
джерела) і edi (індекс приймача) допускають
тільки 32-бітове звернення.

Регістри сегментів (cs, ds, ss, es, fs і gs) зберігають 16-ти
бітні дескриптори сегментів. Дескриптори
сегментів - це спеціальні покажчики,
що визначають розташування сегмента в
пам'яті. У захищеному режимі роботи
процесора (Windows 95/98) все сегментні регист
вказують на один і той же сегмент, тому
зазвичай в програмі вони не використовуються.

Цей регістр являє собою набір
прапорів, що встановлюються або скидаються
за результатами виконуваних команд.

Прапор - це змінна довжиною 1 біт,
використовувана в командах умовного переходу.
Якщо значення цієї змінної дорівнює 1, то
вважається, що прапор встановлений, якщо 0 -
скинутий. В першу чергу нас цікавлять:
прапор нуля, прапор переносу і прапор знака. прапор
нуля (zf) встановлюється в разі отримання
нульового результату при виконанні
черговий команди і скидається при
інших ненульових значеннях.
- Прапор переносу (сf) встановлюється при
перенесення або позику старшого біта в
арифметичних операціях, в інших
випадках скидається.
- Прапор переповнення (оf) встановлюється,
якщо результат арифметичної операції НЕ
вміщується в операнде-приймачі.
- Прапор знака (sf) встановлюється при
одиничному значенні старщего біта
результату - ознаці негативного числа.

Встановлюємо і запускаємо WinZip. Відразу після
старту з'являється вікно, в якому стверджується,
що програма не зареєстрована. якщо
програму не зареєструвати це вікно
з'являтиметься при кожному новому запуску.
У меню Help вибираємо пункт About WinZip ... В
вікні натискаємо кнопку Register.
Відкривається вікно реєстрації. Вводимо в поле
Ім'я ім'я, під яким хочемо зареєструвати
програму (наприклад hack). В поле РН вводимо
будь-яку інформацію (наприклад 1212121212, щоб
потім при необхідності його легко було
впізнати) і натискаємо кнопку ОК. з'являється
вікно, яке повідомить, що введена неповна або
невірна інформація. Звертаю вашу увагу
на це вікно. Це типове вікно MessageBox (вікно
повідомлення). Його відмінними рисами
є:
- неактивна кнопка закриття вікна
- наявність всередині вікна іконки (вид іконки
залежить від типу повідомлення)
- наявність однієї або декількох кнопок (їх
назви і кількість також залежить від типу
повідомлення)

У програмі вікно MessageBox може створюватися з
допомогою чотирьох функцій: MessageBox (), MessageBoxA (),
MessageBoxIndirect () і MessageBoxIndirectA (). Функції, які не
закінчуються символом A (MessageBox (),
MessageBoxIndirect ()) використовуються переважно
додатками Win16 (Windows 3.x) і на них ми будемо
розраховувати найменше. залишаються дві
функції: MessageBoxA () і MessageBoxIndirectA (). Яка з них
використовується програмою, визначаємо
дослідним шляхом:

- Закриваємо вікно повідомлення
- Активізуємо SoftICE (Ctrl + D)
- Встановлюємо точки переривання на виклик
MessageBoxA () і MessageBoxIndirectA () (bpx MessageBoxA, bpx
MessageBoxIndirectA)
- Повертаємося в Windows (F5)

Натискаємо кнопку ОК у вікні реєстрації,
програма переривається при виконанні функції та
передає управління SoftICE. У вікні команд
повідомляється, що програма перервалася при
виконанні функції MessageBoxIndirectA () з модуля USER32. І
дійсно в вікні коду ми бачимо, що
курсор стоїть на першому рядку цієї функції
і, що ім'я поточного модуля USER32 (написано
внизу вікна коду). Далі ми теж знаємо, що
робити:

- Натискаємо F12 (команда p ret), для продовження
програми до виконання команди ret. перед
нами знову з'являється знайоме вікно
повідомлення, при натисканні в ньому на кнопку ОК
програма переривається і управління
передається SoftICE. Ми бачимо, що тепер
програма зупинилася в модулі WINZIP32:

0137: 00426920 FF15C4AF4700 call [USER32! MessageBoxIndirectA]

0137: 00426926 EB14 jmp 0042693C <- в этой строке
знаходиться курсор

Настає вирішальний момент. Вводимо в поле РН
отриманий реєстраційний номер і
натискаємо кнопку ОК. програма просить
підтвердити реєстраційну інформацію, і
після натискання ОК Ви вже є
власником особистого WinZip'а.

Покажи цю статтю друзям:

Скрипти для кріптоджекінга ховаються в віджети LiveHelpNow і вразили понад 1500 сайтів

Вимагач qkG шифрує тільки документи Word і самостійно поширюється за допомогою макросів

Firefox попередить користувачів про відвідування раніше зламаних сайтів

«Код інформаційної безпеки» вперше пройде в Астані

Свіжі уразливості в Intel ME небезпечні для пристроїв Acer, Dell, Fujitsu, HP, Lenovo, Panasonic і так далі

Схожі статті