Крис Касперски - Техника отладки приложений без исходных кодов (Статья о SoftICE)
Название: | Техника отладки приложений без исходных кодов (Статья о SoftICE) | |
Автор: | Крис Касперски | |
Жанр: | Статьи и рефераты, Самиздат, сетевая литература, Литература ХXI века (эпоха Глобализации экономики), Windows, Крэкинг и реверсинжиниринг, Отладка, тестирование и оптимизация ПО | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | - | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Техника отладки приложений без исходных кодов (Статья о SoftICE)"
Практически все знают, что программы взламываются отладчиком, но не все знают, как. На самом деле ничего сложного в этом нет. Достаточно выучить несколько простых приемов и уже можно начинать ломать.
Читаем онлайн "Техника отладки приложений без исходных кодов (Статья о SoftICE)". [Страница - 3]
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (6) »
Помимо точек останова на API, можно брякать библиотечные функции. В приложениях, написанных на DELPHI/BUILDER/MFC/Visual BASIC прямые вызовы API используются редко. И хотя никакое дело без API-функций, конечно же, не обходится, их анализ мало что дает, особенно если используется динамический обмен данных с окном (DDX) и другие навороченные технологии, обмазывающие API-функциями несколькими мегабайтами кривого кода. Это же сдохнуть можно! Но мы не будем! Библиотечные функции легко опознаются ИДОЙ и брякаются как обычные API-функции только с той разницей, что точка останова носит локальный характер, воздействующий только на отлаживаемое приложение. А это значит, что после нажатия <Ctrl-D> мы должны переключить контекст управления, чтобы попасть в адресное пространство отлаживаемого приложения. Это осуществляется либо командой «ADDR имя_процесса», либо установкой точки останова на любую API-функцию, вызываемую отлаживаемым приложением. Например, SendMessageA. Жмем, <Ctrl-D>, пишем «bpx MeggsageBoxA», выходим из sof-ice, дожидаемся, пока он всплывет (если не всплывает, можно дернуть мышью или щелкнуть по отлаживаемому окну), если в правом нижнем углу отладчика находится имя нашего процесса — все ок, в противном случае выходим из отладчика и ждем его всплытия опять.
Точки останова на сообщения
Допустим, у нас есть окно с несколькими элементами управления (меню, флажок или кнопка) нажатия на которые мы хотим отследить (см. рис. 1). Как это сделать? Очень просто! Установить точку останова на сообщение! В Windows весь интерфейс построен на сообщениях (об этом хорошо написал Петзолд в «Программировании для Windows 95»). В частности, при нажатии на элемент управления (или изменении окна редактирования) окну посылается сообщение WM_COMMAND. Вот на него-то мы и поставим точку останова, но прежде определим дескриптор (handle) окна.
Рисунок 4. Диалоговое окно, на которое мы поставим бряк.
Это можно сделать либо любым Windows-шпионом (например, Spy++, входящим в состав Microsoft Visual Studio), либо средствами самого soft-ice, а конкретно — командой «HWND», выводящей список всех оконных элементов. Если в ответ на «HWND» soft-ice выплюнет «Unable to find a desktop window», необходимо переключить контекст командой «ADDR».
Левая колонка содержит дескрипторы оконных элементов, правая — имена модулей, которым эти элементы принадлежат. Имя модулей не всегда совпадают с именами процессов, если окно принадлежит динамической библиотеке, то soft-ice пишет имя DLL, а не основного процесса. В данном случае диалог обрабатывается библиотекой oodlrwrs, о чем можно узнать с помощью команды MOD, а фрагмент отчета выглядит так:
Handle Class WinProc TID Module
--------------------------------------------------------
010098 VMDropTargetClass 00403810 138 VMwareUser
010096 VMDropTargetClass 00403810 138 VMwareUser
010094 VMDropTargetClass 00403810 138 VMwareUser
010090 VMDropTargetClass 00403810 138 VMwareUser
01001C NDDEAgnt 0100BC04 F8 winlogon
120124 #32770 (Dialog) 00F7BC5E 2BC comctl32
220132 #32770 (Dialog) 00F7BC5E 2BC oodlrwrs
1F00FE Button 00F7BC5E 2BC oodlrwrs
200102 Button 00F7BC5E 2BC oodlrwrs
1B00F0 Button 00F7BC5E 2BC oodlrwrs
320130 Static 00F7BC5E 2BC oodlrwrs
210138 Static 77E19AA4 2BC oodlrwrs
230116 Static 77E19AA4 2BC oodlrwrs
24014C Static 77E19AA4 2BC oodlrwrs
1700F8 Static 00F7BC5E 2BC oodlrwrs
20013A Static 77E19AA4 2BC oodlrwrs
1F0122 Static 77E19AA4 2BC oodlrwrs
Листинг 1. Определение дескрипторов окон и элементов управления.
Мы видим, что три наших кнопки принадлежат диалогу #32770 с дескриптором 220132. В принципе, можно поставить точку останова и на 120124 — адрес оконной процедуры (WinProc) у них одинаков. Говорим: «BMSG 220132 WM_COMMAND» и выходим из soft-ice. Нажимаем на кнопку «Далее >» и… отладчик послушно всплывает! Остается только немного протрассировать оконную процедуру в поисках кода, обрабатывающего это нажатие.
Точки останова на данные
Чаще всего бывает так, что ключевой файл/регистрационные данные извлекаются в --">- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (6) »
Книги схожие с «Техника отладки приложений без исходных кодов (Статья о SoftICE)» по жанру, серии, автору или названию:
Елена Колина - Не без вранья Жанр: Детектив Год издания: 2010 |
Роман Выговский - Игра без Правил Жанр: Фэнтези: прочее Год издания: 2014 |
Мэтью Квик - Нет худа без добра Жанр: Современная проза Год издания: 2014 |
Алекс Орлов - Игра без правил Жанр: Боевая фантастика Год издания: 2015 |
Другие книги автора «Крис Касперски»:
Крис Касперски - Техника отладки программ без исходных текстов Жанр: Отладка, тестирование и оптимизация ПО Год издания: 2005 |
Крис Касперски - Компьютерные вирусы изнутри и снаружи Жанр: Компьютерная безопасность Год издания: 2006 |