![]() |
eXeL@B —› Вопросы новичков —› Сравнение Olly и сайса (топик специально для таких вопросов) + таблица соответствий |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 06 января 2007 14:56 · Поправил: Gambit · Личное сообщение · #1 Всем привет! Решил занятся полезным делом ![]() По всему форуму разбросаны очень похожие вопросы, типа: "есть ли аналог такой-то команды сайса в OllyDdg (в ольке)?" Это и неудивительно, ведь в последнее время народ потихонечку (и по-быстрому!) начинает переходить на ольку. Хотя бы потому, что ее меньше программ могут обнаружить, чем сайс, хотя бы потому, что она в ряде случаев удобней в использовании, хотя бы потому, что не появилось еще на Земле человека, у которого бы возникли трудности с установкой ольки, хотя бы потому, что она сравнительно проста в управлении, что особенно важно для новичков... Сейчас стало появлятся все больше статей по исследованию программ (на предмет защиты;) с применением именно Olly Dbg. Наконец, Olly Dbg - просто незаменимый отладчик для тех, у кого не устанавливается сайс. Все это хорошо, но... Но все же большинство статей (полезных статей!) опираются на SoftIce и если о том, как поставить бряк вопросов обычно не возникает, то при встрече в такой статье, например команды bmp esp-4, человеку, который юзает Olly, ничего не остается, как с огорчением закрыть статью... В этом топике (если его через пару постов не закроют;) преполагается расширение таблицы, которую Вы видите ниже. ЗДЕСЬ РАЗРЕШАЕТСЯ: 1)Задавать вопросы по теме 2)Отвечать на вопросы 3)Делится своими наблюдениями/знаниями по теме. ЗАПРЕЩАЕТСЯ: 1) На вопросы по теме отвечать "читай такой-то топик/ такую-то статью" 2) Нарушать правила форума (это не есть флудотоп) Предполагаемая схема работы такова: человек задает вопрос по теме, кто-то на него отвечает, потом я заношу соответствие SoftIce<-->OllyDbg в таблицу. Естественно, не обязательно дожидаться, пока появится вопрос - если Вы знаете о каком-то соответствии, и оно не указано в "таблице", то можете поделится своими наблюдениями. ЗЫ: Этот топик - экспериментальный. Эксперимент разрешил провести модератор lord_Phoenix. SoftIce <---------->OllyDbg ______________________________________________________________________ _______ бряк на память ebp<---------->hr <<пример>> ebp esp-4 <---------->hr esp-4 ______________________________________________________________________ _______ бряк с условием BPX ReadFile if (esp->c == 0x400) <---------->bp ReadFile,[ESP+C]==400 где ReadFile - аргумент( либа адрес, либо имя функции, хотя может и ещё чё вписать можно) ______________________________________________________________________ _______ бряк, просто бряк... bpx [имя функции]<----------> bpx [имя функции] <<пример>> bpx MessageBoxA<----------> bpx MessageBoxA ______________________________________________________________________ _______ сдампить :d<---------->d <<пример>> :d ebp-9c<---------->d ebp-9c ______________________________________________________________________ _______ посчитать :?выражение<---------->? выражение (отступ обязателен) или calc выражение <<пример>> :?eax<---------->? eax или calc eax ______________________________________________________________________ _______ Добавляйте! Все в ваших руках ![]() ----- программистом не рождаются - им умирают ![]() |
|
Создано: 24 января 2007 14:27 · Поправил: Gambit · Личное сообщение · #2 Amok пишет: Между l и ffffffff пробел поставь. "– Как вам удалось бежать? – Сидим день, два,три... а потом индеец ОстрыйГлаз заметил, что у тюрьмы не хватает одной стены;)" Спасибо, ОстрыйГлаз ![]() У-упс! надо же, новая страница. Чтобы не нарушать гармонии, размещу таблицу раньше времени, но зато вначале страницы;) Вы также можете оставить отзывы и предложения по таблице. ![]() Итак, для тех кто попал сразу на вторую страницу, для тех кто в танке. По всему форуму разбросаны очень похожие вопросы, типа: "есть ли аналог такой-то команды сайса в OllyDdg (в ольке)?" В этом топике расширяется таблица, которую Вы видите ниже. ЗДЕСЬ РАЗРЕШАЕТСЯ: 1)Задавать вопросы по теме 2)Отвечать на вопросы 3)Делится своими наблюдениями/знаниями по теме. ЗАПРЕЩАЕТСЯ: 1) На вопросы по теме отвечать "читай такой-то топик/ такую-то статью" 2) Нарушать правила форума (это не есть флудотоп) Предполагаемая схема работы такова: человек задает вопрос по теме, кто-то на него отвечает, потом я заношу соответствие SoftIce<-->OllyDbg в таблицу. Естественно, не обязательно дожидаться, пока появится вопрос - если Вы знаете о каком-то соответствии, и оно не указано в таблице, то можете поделится своими наблюдениями. таблица обновлена 25.01.07. ____________________________________________________________________________________ SoftIce <---------->OllyDbg ______________________________________________________________________ ______________ Условные обозначения: ## - "такой кнопки нету" ========================================================================== Функциональные клавиши: ====================================================================== ==== F1 <----------> ## // Хэлп F2 <----------> ## // Вкл./выкл окно регистров F3 <----------> ## // Изменяет текущий режим окна кода F4 <----------> F5 // Восстанавливает экран F5 <----------> ## // Возвращается в вашу программу F6 <----------> ## // Переключает курсор между окном команд и окном кода F7 <----------> F4 // Прогоняет программу до текущей позиции курсора F8 <----------> F7 // Трассировка с заходом в циклы F9 <----------> F2 // Поставить бряк там, где курсор F10<---------->F8 // Трассировка без захода в циклы (call'ы): CTRL стрелка вправо <----------> CTRL стрелка вправо // на одну позицию вправо CTRL стрелка влево.. <----------> CTRL стрелка влево.. // на одну позицию влево ========================================================================== Команды (В ольке должен быть установлен плаг CommandBar) ====================================================================== ==== аналог айсовскому бряку на память bpm<---------->hr (в ольке допускается только 4 бряка hardware) <<пример>>
______________________________________________________________________ ______________ бряк с условием КСБ - расшифровывается как "КудыСтавитьБряк" BPX КСБ if условие <---------->BP КСБ,условие Расшифровывается как: Поставь бряк туда-то, если выполнилось равенство (неравенство) такое-то <<пример>>
______________________________________________________________________ ______________ бряк на функцию/адрес bpx [имя функции/адрес]<----------> bp [имя функции/адрес] <<пример>>
______________________________________________________________________ ______________ сдампить Переход по адресу в дамп :d<---------->d <<пример>>
В дамп то вы перейдете, но для начала неплохо бы указать в каком виде вы хотите видеть "блюда". Итак, ваш заказ?;) ..........Меню: ..........Дамп в формате HEX, мелко шинкованный на байты: ......... :db<---------->db .......... <<пример>>
......... :db 00458634<---------->db 00458634
..........Дамп в формате HEX, натертый словами: ......... :dw<---------->dw .......... <<пример>>
.......... Такой гурман, как вы, догадается;)
..........Дамп в формате HEX (какое-то однообразие...), рубленный брусочками двойных слов: ......... :dd<---------->dd .......... Самое вкусное (имхо) - db, хотя, конечно, на вкус и цвет... (ой, о чем это я?;)
______________________________________________________________________ ______________ калькулятор :?выражение<---------->? выражение (отступ обязателен) или calc выражение или не париться, а написать просто выражение. <<пример>>
______________________________________________________________________ ______________ Найти в отладчике выражение (цифры, слова, введенный вами серийник;) s d l ffffffff "<введённое вами выражение>"(обязательно в кавычках) <----------> А здесь не все так просто... Дело в том, что специальной команды для такого дела не предусмотрено (а может, просто я не нашел), а потому придется идти таким путем: 1) Нажмите Alt+M 2) Установите видеокурсор на верхнюю строку открывшегося окна (обязательно!) 3) Нажмите Ctrl+B, наберите, чего вам там надо, и нажмите Enter 4) Если чего нибудь найдется, но вам это не подойдет, то продолжить поиск можно командой Ctrl+L ______________________________________________________________________ ______________ ====================================================================== ==== ----- программистом не рождаются - им умирают ![]() |
|
Создано: 24 января 2007 16:59 · Личное сообщение · #3 |
|
Создано: 24 января 2007 23:08 · Личное сообщение · #4 |
|
Создано: 25 января 2007 05:06 · Личное сообщение · #5 Карта памяти процесса в OllyDbg (Alt+M) 1. В левой колонке мы видим адрес первого байта данного блока памяти. 2. Далее размер блока. 3. Если блок принадлежит образу запускаемого модуля (exe или dll), то следующая колонка сообщает нам имя этого файла. 4. Опять же, если речь идёт об образе dll или exe, мы можем узнать имя секции размещённой в данном блоке из колонки - сами догадайтесь с каким именем. 5. Затем Olly выдаёт нам краткую информацию о содержимом блока. 6. Тип блока может иметь такие значения: Priv – Блок занят данными неопределенного типа.
Свободные адреса просто не отображаются 7. Колонка "Access" должна показывать текущее состояние доступа для страниц памяти данного блока. Должна, только не всегда это делает. У меня в OllyDbg 1.10 и Shadow на WinXP SP2 эта колонка неправильно отображается. А по задумке, возможны следующее варианты: пустое место – блок недоступен
Пункт контекстного меню "set access" позволяет менять основные условия доступа, но поскольку колонка отображается некорректно, вы не увидите результат изменения атрибутов (или увидите не правильно). Однако само изменение происходит. А если по каким-то причинам отладчик не может изменить доступ, в строке состояния промелькнёт предупреждение об этом. 8. Колонка "Initial Access" должна показывать начальное состояние доступа для страниц памяти данного блока. Опять это слово – "должна". =( А по задумке, в этой колонке отображаются атрибуты чтения, записи, запуска R,W,E соответственно. Если блок принадлежит образу PE-файла, то эти атрибуты должны были быть взяты из атрибутов секций файла. 9. В последней колонке "Mapped as" отображается путь к проецируемому файлу. PS Интересно у кого нет выше указанных глюков? ----- Всем привет, я вернулся ![]() |
|
Создано: 25 января 2007 14:06 · Личное сообщение · #6 |
|
Создано: 25 января 2007 23:28 · Личное сообщение · #7 |
|
Создано: 28 января 2007 14:06 · Поправил: Gambit · Личное сообщение · #8 таблица обновлена 29.01.07. ____________________________________________________________________________________ SoftIce <---------->OllyDbg ______________________________________________________________________ ______________ Условные обозначения: ## - "такой кнопки нету" ========================================================================== Функциональные клавиши: ====================================================================== ==== F1 <----------> ## // Хэлп F2 <----------> ## // Вкл./выкл окно регистров F3 <----------> ## // Изменяет текущий режим окна кода F4 <----------> F5 // Восстанавливает экран F5 <----------> ## // Возвращается в вашу программу F6 <----------> ## // Переключает курсор между окном команд и окном кода F7 <----------> F4 // Прогоняет программу до текущей позиции курсора F8 <----------> F7 // Трассировка с заходом в циклы F9 <----------> F2 // Поставить бряк там, где курсор F10<---------->F8 // Трассировка без захода в циклы (call'ы): CTRL стрелка вправо <----------> CTRL стрелка вправо // на одну позицию вправо CTRL стрелка влево.. <----------> CTRL стрелка влево.. // на одну позицию влево ========================================================================== Команды (В ольке должен быть установлен плаг CommandBar) ====================================================================== ==== аналог айсовскому бряку на память bpm<---------->hr (в ольке допускается только 4 бряка hardware) <<пример>>
______________________________________________________________________ ______________ бряк с условием КСБ - расшифровывается как "КудыСтавитьБряк" BPX КСБ if условие <---------->BP КСБ,условие Расшифровывается как: Поставь бряк туда-то, если выполнилось равенство (неравенство) такое-то <<пример>>
______________________________________________________________________ ______________ бряк на функцию/адрес bpx [имя функции/адрес]<----------> bp [имя функции/адрес] <<пример>>
______________________________________________________________________ ______________ сдампить Переход по адресу в дамп :d<---------->d <<пример>>
В дамп то вы перейдете, но для начала неплохо бы указать в каком виде вы хотите видеть "блюда". Итак, ваш заказ?;) ..........Меню: ..........Дамп в формате HEX, мелко шинкованный на байты: ......... :db<---------->db .......... <<пример>>
......... :db 00458634<---------->db 00458634
..........Дамп в формате HEX, натертый словами: ......... :dw<---------->dw .......... <<пример>>
.......... Такой гурман, как вы, догадается;)
..........Дамп в формате HEX (какое-то однообразие...), рубленный брусочками двойных слов: ......... :dd<---------->dd .......... Самое вкусное (имхо) - db, хотя, конечно, на вкус и цвет... (ой, о чем это я?;)
______________________________________________________________________ ______________ калькулятор :?выражение<---------->? выражение (отступ обязателен) или calc выражение или не париться, а написать просто выражение. <<пример>>
______________________________________________________________________ ______________ Найти в отладчике выражение (цифры, слова, введенный вами серийник;) s d lffffffff "<введённое вами выражение>"(обязательно в кавычках) <----------> А здесь не все так просто... Дело в том, что специальной команды для такого дела не предусмотрено (а может, просто я не нашел), а потому придется идти таким путем: 1) Нажмите Alt+M 2) Установите видеокурсор на верхнюю строку открывшегося окна (обязательно!) 3) Нажмите Ctrl+B, наберите, чего вам там надо, и нажмите Enter 4) Если чего нибудь найдется, но вам это не подойдет, то продолжить поиск можно командой Ctrl+L ========================================================================== Всякие полезности =) ====================================================================== ==== Карта памяти процесса в OllyDbg (ALT+M) 1. В левой колонке мы видим адрес первого байта данного блока памяти. 2. Вторая колонка – размер блока. 3. Третья колонка сообщает нам имя файла, если данный блок принадлежит образу запускаемого модуля (exe или dll) 4. В колонке нумбер пять мы можем узнать имя секции размещённой в данном блоке из колонки (опять же, если речь идёт об образе dll или exe) 5. В пятой колонке дается краткая информация о содержимом блока. 6. В следующей колонке – тип блока, который может иметь такие значения: Priv – Блок занят данными неопределенного типа. Map – Блок занят прямой или косвенной проекцией файла (Memory Mapped File). Imag – Блок занят образом PE-модуля Свободные адреса просто не отображаются 7. Колонка "Access" должна*** показывать текущее состояние доступа для страниц памяти данного блока. 8. Колонка "Initial Access" должна*** показывать начальное состояние доступа для страниц памяти данного блока. 9. В последней колонке "Mapped as" отображается путь к проецируемому файлу. ***Глюки (см. 2-ю страницу форума - пост четвертый) ______________________________________________________________________ ______________ ЗЫ: Также действует топик для отзывов ----- программистом не рождаются - им умирают ![]() |
|
Создано: 30 января 2007 12:56 · Личное сообщение · #9 |
|
Создано: 30 января 2007 17:57 · Личное сообщение · #10 |
|
Создано: 31 января 2007 13:28 · Личное сообщение · #11 |
|
Создано: 04 февраля 2007 14:02 · Поправил: Gambit · Личное сообщение · #12 таблица обновлена 05.02.2007 в 0:03. – Я тут подумал... А зачем в таблице перед сайсовскими командами ставить двоеточие ![]() впечатывать не надо. Хотя... если кому-то удобней воспринимать таблицу с двоеточиями – отзовитесь (лучше в личку) – верну как было. ====================================================================== =============== Функциональные клавиши: .....SoftIce <---------->OllyDbg..... ====================================================================== =============== Условные обозначения: ## – "такой кнопки нету" ______________________________________________________________________ ____________________________ F1 <----------> ## // Хэлп F2 <----------> ## // Вкл./выкл окно регистров F3 <----------> ## // Изменяет текущий режим окна кода F4 <----------> F5 // Восстанавливает экран F5 <----------> ## // Возвращается в вашу программу F6 <----------> ## // Переключает курсор между окном команд и окном кода F7 <----------> F4 // Прогоняет программу до текущей позиции курсора F8 <----------> F7 // Трассировка с заходом в циклы F9 <----------> F2 // Поставить бряк там, где курсор F10<---------->F8 // Трассировка без захода в циклы (call'ы): CTRL стрелка вправо <----------> CTRL стрелка вправо // на одну позицию вправо CTRL стрелка влево.. <----------> CTRL стрелка влево.. // на одну позицию влево ===================================================================================== Команды (В ольке должен быть установлен плаг CommandBar) .................................SoftIce <---------->OllyDbg................................. Примеч. Квадратные скобки впечатывать не нужно – они для наглядности. ===================================================================================== Править код a [адрес строки]<----------> a [адрес строки] <<пример>>
______________________________________________________________________ ____________________________ аналог айсовскому бряку на память bpm<---------->hr (в ольке допускается только 4 бряка hardware) <<пример>>
______________________________________________________________________ ____________________________ бряк с условием КСБ – расшифровывается как "КудыСтавитьБряк" BPX КСБ if условие <---------->BP КСБ,условие Расшифровывается как: Поставь бряк туда-то, если выполнилось равенство (неравенство) такое-то <<пример>>
______________________________________________________________________ ____________________________ бряк на функцию/адрес bpx [имя функции/адрес]<----------> bp [имя функции/адрес] <<пример>>
______________________________________________________________________ ____________________________ Удалить все бряки bc * <----------> нет и не надо (это можно сделать: Alt+B и Debug > Hardware Breakpoints) __________________________________________________________________________________________________ сдампить Переход по адресу в дамп d<---------->d <<пример>>
В дамп то вы перейдете, но для начала неплохо бы указать в каком виде вы хотите видеть "блюда". Итак, ваш заказ?;) ..........Меню: ..........Дамп в формате HEX, мелко шинкованный на байты: ......... db<---------->db .......... <<пример>>
......... db 00458634<---------->db 00458634
..........Дамп в формате HEX, натертый словами: ......... dw<---------->dw .......... <<пример>>
.......... Такой гурман, как вы, догадается;)
..........Дамп в формате HEX, рубленный брусочками двойных слов: ......... dd<---------->dd .......... Самое вкусное (имхо) – db, хотя, конечно, на вкус и цвет... (ой, о чем это я?;)
______________________________________________________________________ ____________________________ калькулятор (отступ между командой и выражением обязателен) ? выражение<---------->? выражение или calc выражение или, если просто выражение <<пример>>
______________________________________________________________________ ____________________________ Найти в отладчике выражение (цифры, слова, введенный вами серийник;) s d L ffffffff "<введённое вами выражение>"(обязательно в кавычках) <----------> А здесь не все так просто... Дело в том, что специальной команды для такого дела не предусмотрено (а может, просто я не нашел), а потому придется идти таким путем: 1) Нажмите Alt+M 2) Установите видеокурсор на верхнюю строку открывшегося окна (обязательно!) 3) Нажмите Ctrl+B, наберите чего вам там надо и нажмите Enter 4) Если что нибудь найдется, но вам это не подойдет, то продолжить поиск можно командой Ctrl+L ( Кстати в сайсе чтобы продолжить поиск надо ипользовать команду s без параметров )
______________________________________________________________________ ____________________________ Вызвать карту памяти MAP32 <----------> нажать ALT+M __________________________________________________________________________________________________ Вызвать таблицу потоков THREAD <----------> меню: View -> Threads __________________________________________________________________________________________________ Вызвать таблицу о хэнделов окон HWND имя_проги <----------> меню: View -> Windows (если запустили прогу, а в Windows ничего не показывает, то правый глаз мыши->actualize) ===================================================================================== ......... Таблицы ......... .SoftIce <---------->OllyDbg. ====================================================================== =============== Примечание: Здесь A <----> B не есть A=B, а номер колонки с заголовком A = номеру колонки с заголовком B. __________________________________________________________________________________________________ Карта памяти процесса Колонки: № 1. Имя модуля................................................................ ..... <----------> Адрес первого байта данного блока памяти № 2. Имя секции размещённой в данном блоке из колонки <----------> Размер блока в байтах. № 3. Номер выполняемого файла......................................... <----------> Имя модуля № 4. Адрес первого байта данного блока памяти............... <----------> Имя секции размещённой в данном блоке № 5. Размер блока в байтах.................................................. <----------> Краткая информация о содержимом блока № 6. Тип блока................................................................. ... . <----------> Тип блока Также в ольке есть еще три колонки: № 7. Должна*** показывать текущее состояние доступа для страниц памяти данного блока. № 8. Должна*** показывать начальное состояние доступа для страниц памяти данного блока. № 9. Отображается путь к проецируемому файлу. *** Обнаружены баги (см. 2-ю страницу форума – пост четвертый) __________________________________________________________________________________________________ Таблица потоков Колонки: № 1. Идентификационный номер............................................. <----------> Идентификационный номер № 2. Ядро блока переменных окружения потока ................... <----------> Точка входа (EP) № 3. Адрес основания стека потока......................................... <----------> Блок данных № 4. Адрес вершины стека потока........................................... <----------> Сообщение о последней ошибке № 5. Адрес указателя стека потока.......................................... <----------> Состояние процесса (актив/заверш) № 6. Пользовательский блок переменных окружения потока. <----------> Приоритет процесса № 7. Имя и идентификатор процесса-владельца потока(id)... <----------> Пользовательское время Также в OllyDbg есть восьмая колонка: № 8. Системное время. ===================================================================================== ......... Распаковка ......... .SoftIce <---------->OllyDbg. ====================================================================== =============== Кхм... Ну, если я начну сюда копировать все статьи по распаковке, которые есть на кряклабе, то это будет свинством;) Поэтому, просто освещу вопрос "насколько справедливы статьи по распаковке в Сайсе для Ольки?"). 1. В сайсе: всякие манипуляции, потом bpm esp-4*[i/] <----------> В Ольке: просто hr esp-4[i]* 2. Ставим бряк (чтоб вывалиться из проги в сайс), потом трейсим по коду <----------> Сразу трейсим по коду 3. Зациклить прогу, потом снять дамп <----------> Те же операции, но зацикливать не надо 4. Остальное есть в таблице (если нет – задавайте вопросы |=8~)) *Если не действует, стоит попробовать применить esp-24 ______________________________________________________________________ ___________________________ ЗЫ: Также действует <a ----- программистом не рождаются - им умирают ![]() |
|
Создано: 04 февраля 2007 22:18 · Личное сообщение · #13 |
|
Создано: 05 февраля 2007 05:50 · Личное сообщение · #14 |
|
Создано: 07 февраля 2007 07:30 · Личное сообщение · #15 Если, например, eax = 00123456, то: "d 00123456" = "d eax" , при этом в окне дампа появится что-то типа 00214365 "d 00214365" = "d [eax]" Т.е. квадратные скобки позволяют нам "углубиться" в память. Можно использовать несколько скобок ("d [[[eax]]]") И не только с регистрами ("d [00123456]" = "d 00214365") З.Ы. Как это делается в САйсе - не знаю. ![]() |
|
Создано: 09 февраля 2007 18:26 · Личное сообщение · #16 |
|
Создано: 11 февраля 2007 15:19 · Личное сообщение · #17 таблица обновлена 12.02.2007 2:10 ===================================================================================== Функциональные клавиши: .....SoftIce <---------->OllyDbg..... ====================================================================== =============== Условные обозначения: ## – "такой кнопки нету" ______________________________________________________________________ ____________________________ F1 <----------> ## ......... // Хэлп F2 <----------> ## ......... // Вкл./выкл окно регистров F3 <----------> ## ......... // Изменяет текущий режим окна кода F4 <----------> F5.......... // Восстанавливает экран F5 <----------> ALT + F5 // Выход из САйса <----------> Ольку поверх остальных окон (вкл/выкл) F6 <----------> ## ......... // Переключает курсор между окном команд и окном кода F7 <----------> F4 ......... // Прогоняет программу до текущей позиции курсора F8 <----------> F7 ......... // Трассировка с заходом в циклы F9 <----------> F2 ..........// Поставить бряк там, где курсор F10<---------->F8 ..........// Трассировка без захода в циклы (call'ы): CTRL стрелка вправо <----------> CTRL стрелка вправо // на одну позицию вправо CTRL стрелка влево.. <----------> CTRL стрелка влево.. // на одну позицию влево ===================================================================================== Команды (В ольке должен быть установлен плаг CommandBar) .................................SoftIce <---------->OllyDbg................................. Примеч. Квадратные скобки впечатывать не нужно (если нет оговорок) – они для наглядности. ===================================================================================== Править код a [адрес строки]<----------> a [адрес строки] <<пример>>
______________________________________________________________________ ____________________________ аналог айсовскому бряку на память bpm<---------->hr (в ольке допускается только 4 бряка hardware) <<пример>>
______________________________________________________________________ ____________________________ бряк с условием BPX [адрес/функция] if [условие] <---------->BP [адрес/функция], [условие] Расшифровывается как: Поставь бряк туда-то, если выполнилось равенство (неравенство) такое-то <<пример>>
______________________________________________________________________ ____________________________ бряк на функцию/адрес bpx [имя функции/адрес]<----------> bp [имя функции/адрес] <<пример>>
______________________________________________________________________ ____________________________ Удалить все бряки bc * <----------> нет и не надо (это можно сделать: Alt+B и Debug > Hardware Breakpoints) __________________________________________________________________________________________________ сдампить Переход по адресу в дамп d<---------->d <<пример>>
В дамп то вы перейдете, но для начала неплохо бы указать в каком виде вы хотите видеть "блюда". Итак, ваш заказ?;) ..........Меню: ..........Дамп в формате HEX, мелко шинкованный на байты: ......... db<---------->db .......... <<пример>>
......... db 00458634<---------->db 00458634
..........Дамп в формате HEX, натертый словами: ......... dw<---------->dw .......... <<пример>>
.......... Такой гурман, как вы, догадается;)
..........Дамп в формате HEX, рубленный брусочками двойных слов: ......... dd<---------->dd .......... Самое вкусное (имхо) – db, хотя, конечно, на вкус и цвет... (ой, о чем это я?;)
______________________________________________________________________ ____________________________ "Глубокий дамп" (здесь квадратные скобки обязательны!) d *(адрес/регистр)....<---------->d [адрес/регистр] d *(*(адрес/регистр)) <----------> d [[адрес/регистр]] и т.д. <<пример>>
______________________________________________________________________ ____________________________ Найти в отладчике выражение (цифры, слова, введенный вами серийник;) s d L ffffffff "<введённое вами выражение>"(обязательно в кавычках) <----------> А здесь не все так просто... Дело в том, что специальной команды для такого дела не предусмотрено (а может, просто я не нашел), а потому придется идти таким путем: 1) Нажмите Alt+M 2) Установите видеокурсор на верхнюю строку открывшегося окна (обязательно!) 3) Нажмите Ctrl+B, наберите чего вам там надо и нажмите Enter 4) Если что нибудь найдется, но вам это не подойдет, то продолжить поиск можно командой Ctrl+L ( Кстати в сайсе чтобы продолжить поиск надо ипользовать команду s без параметров )
______________________________________________________________________ ____________________________ Вызвать карту памяти MAP32 <----------> нажать ALT+M __________________________________________________________________________________________________ Вызвать таблицу потоков THREAD <----------> меню: View -> Threads __________________________________________________________________________________________________ Вызвать таблицу хэнделов окон HWND имя_проги <----------> меню: View -> Windows (если запустили прогу, а в Windows ничего не показывает, то правый глаз мыши->actualize) VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV VVVVVVVVVVVVVVVVVVVVVVVVVVVV ----- программистом не рождаются - им умирают ![]() |
|
Создано: 11 февраля 2007 15:19 · Личное сообщение · #18 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV ===================================================================================== ......... Таблицы ......... .SoftIce <---------->OllyDbg. ====================================================================== =============== Примечание: Здесь A <----> B не есть A=B, а номер колонки с заголовком A = номеру колонки с заголовком B. __________________________________________________________________________________________________ Карта памяти процесса Колонки: № 1. Имя модуля.............................................................. <----------> Адрес первого байта данного блока памяти № 2. Имя секции размещённой в данном блоке из колонки <----------> Размер блока в байтах. № 3. Номер выполняемого файла...................................... <----------> Имя модуля № 4. Адрес первого байта данного блока памяти............... <----------> Имя секции размещённой в данном блоке № 5. Размер блока в байтах.............................................. <----------> Краткая информация о содержимом блока № 6. Тип блока................................................................. . <----------> Тип блока Также в ольке есть еще три колонки: № 7. Должна*** показывать текущее состояние доступа для страниц памяти данного блока. № 8. Должна*** показывать начальное состояние доступа для страниц памяти данного блока. № 9. Отображается путь к проецируемому файлу. *** Обнаружены баги (см. 2-ю страницу форума – пост четвертый) __________________________________________________________________________________________________ Таблица потоков Колонки: № 1. Идентификационный номер......................................... <----------> Идентификационный номер № 2. Ядро блока переменных окружения потока ................. <----------> Точка входа (EP) № 3. Адрес основания стека потока..................................... <----------> Блок данных № 4. Адрес вершины стека потока....................................... <----------> Сообщение о последней ошибке № 5. Адрес указателя стека потока...................................... <----------> Состояние процесса (актив/заверш) № 6. Пользовательский блок переменных окружения потока. <----------> Приоритет процесса № 7. Имя и идентификатор процесса-владельца потока(id).... <----------> Пользовательское время Также в OllyDbg есть восьмая колонка: № 8. Системное время. ===================================================================================== ......... Распаковка ......... .SoftIce <---------->OllyDbg. ====================================================================== =============== Кхм... Ну, если я начну сюда копировать все статьи по распаковке, которые есть на кряклабе, то это будет свинством;) Поэтому, просто освещу вопрос "насколько справедливы статьи по распаковке в Сайсе для Ольки?"). 1. В сайсе: всякие манипуляции, потом bpm esp-4* <----------> В Ольке: просто hr esp-4* 2. Ставим бряк (чтоб вывалиться из проги в сайс), потом трейсим по коду <----------> Сразу трейсим по коду 3. Зациклить прогу, потом снять дамп <----------> Те же операции, но зацикливать не надо 4. Остальное есть в таблице (если нет – задавайте вопросы |=8~)) *Если не действует, стоит попробовать применить esp-24 ______________________________________________________________________ ___________________________ ЗЫ: Также действует топик для отзывов ----- программистом не рождаются - им умирают ![]() |
|
Создано: 20 февраля 2007 12:50 · Личное сообщение · #19 |
|
Создано: 13 апреля 2007 19:01 · Поправил: Gambit · Личное сообщение · #20 |
|
Создано: 13 апреля 2007 19:01 · Поправил: Gambit · Личное сообщение · #21 |
|
Создано: 14 апреля 2007 23:19 · Поправил: Gambit · Личное сообщение · #22 |
|
Создано: 14 апреля 2007 23:59 · Личное сообщение · #23 |
<< . 1 . 2 . |
![]() |
eXeL@B —› Вопросы новичков —› Сравнение Olly и сайса (топик специально для таких вопросов) + таблица соответствий |
Эта тема закрыта. Ответы больше не принимаются. |