![]() |
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 ______________________________________________________________________ _______ Добавляйте! Все в ваших руках ![]() ----- программистом не рождаются - им умирают ![]() |
|
Создано: 07 января 2007 06:13 · Личное сообщение · #2 |
|
Создано: 07 января 2007 06:22 · Поправил: HoBleen · Личное сообщение · #3 |
|
Создано: 07 января 2007 08:58 · Поправил: Gambit · Личное сообщение · #4 HoBleen пишет: Правка работает только в течение пары часов со времени самого поста Проблема... Ну ладно, что-нибудь придумаю ![]() 3 минуты спустя... Придумал! Каждую неделю буду создавать обновленную таблицу в новом посте (если у кого есть идеи лучше - пишите (можно в "Личное сообщение") - буду рад рассмотреть предложения ![]() Итак, сегодня первое обновление таблицы. Внимание! У вас должна присутствовать командная строка в ольке. Если у вас ее нет, то скачайте плагин CommandBar. ---------------------------------------------------------------------- ---------------------------------------------------------------- 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 ____________________________________________________________________________________ Найти введенный серийник s d lffffffff "<введённый вами код>"(обязательно в кавычках) <----------> А здесь не все так просто... Дело в том, что специальной команды для такого дела не предусмотрено (а может, просто я не нашел), а потому придется идти таким путем: (если у вас закрыто окно CPU - нажмите Alt+C) 1) В левом нижнем окне ольки (которое сразу над командной строкой) нажмите на правый глаз мышки и поставьте галочку на команду Disassemble. 2) Нажмите Ctrl+B и в выскочившем окне поиска в строке ASII наберите то, что вы только что набрали в проге (серийник или что там еще) 3) На строчке, которая выскочит, поставьте бряк (правый глаз мыши --> Breakpoint -->нужная вам опция) 4) ИМХО это и есть анолог сайсовскому s d lffffffff "<введённый вами код>" ______________________________________________________________________ ______________ ----- программистом не рождаются - им умирают ![]() |
|
Создано: 07 января 2007 14:51 · Личное сообщение · #5 |
|
Создано: 07 января 2007 15:02 · Личное сообщение · #6 |
|
Создано: 08 января 2007 06:05 · Личное сообщение · #7 |
|
Создано: 11 января 2007 14:51 · Поправил: Gambit · Личное сообщение · #8 |
|
Создано: 13 января 2007 03:08 · Личное сообщение · #9 |
|
Создано: 13 января 2007 08:25 · Личное сообщение · #10 |
|
Создано: 14 января 2007 14:11 · Поправил: Gambit · Личное сообщение · #11 таблица обновлена 14.01.07. ____________________________________________________________________________________ SoftIce <---------->OllyDbg ______________________________________________________________________ ______________ Условные обозначения: ## - "такой кнопки нету" ========================================================================== Функциональные клавиши: ====================================================================== ==== F1 <----------> ## // Хэлп F2 <----------> ## // Вкл./выкл окно регистров F3 <----------> ## // Изменяет текущий режим окна кода F4 <----------> F5 // Восстанавливает экран F5 <----------> ## // Возвращается в вашу программу F6 <----------> ## // Переключает курсор между окном команд и окном кода F7 <----------> ## // Прогоняет программу до текущей позиции курсора F8 <----------> F7 // Трассировка с заходом в циклы F9 <----------> F2 // Поставить бряк там, где курсор F10<---------->F8 // Трассировка без захода в циклы (call'ы): CTRL стрелка вверх.. <----------> CTRL стрелка вверх.. // на строку вверх CTRL стрелка вниз.... <----------> CTRL стрелка вниз.... // на строку вниз CTRL стрелка вправо <----------> CTRL стрелка вправо // на одну позицию вправо CTRL стрелка влево.. <----------> CTRL стрелка влево.. // на одну позицию влево ========================================================================== Команды (В ольке должен быть установлен плаг CommandBar) ====================================================================== ==== бряк на память bpx<---------->hr (в ольке допускается только 4 бряка на память) <<пример>> bpx 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 ____________________________________________________________________________________ Найти в отладчике выражение (цифры, слова, введенный вами серийник;) s d lffffffff "<введённое вами выражение>"(обязательно в кавычках) <----------> А здесь не все так просто... Дело в том, что специальной команды для такого дела не предусмотрено (а может, просто я не нашел), а потому придется идти таким путем: 1) Нажмите Alt+M 2) Установите видеокурсор на верхнюю строку открывшегося окна (обязательно!) 3) Нажмите Ctrl+B и напишите, чего вам там надо и нажмите Enter 4) Если чего нибудь найдется, но вам это не подойдет, то продолжить поиск можно командой Ctrl+L ______________________________________________________________________ ______________ ----- программистом не рождаются - им умирают ![]() |
|
Создано: 14 января 2007 17:30 · Поправил: Thofus · Личное сообщение · #12 Gambit пишет: F7 <----------> ## // Прогоняет программу до текущей позиции курсора F7 <----------> F2, F9, F2// Прогоняет программу до текущей позиции курсора Gambit пишет: бряк на память bpx<---------->hr (в ольке допускается только 4 бряка на память) <<пример>> bpx esp-4 <---------->hr esp-4 Ето бряки не на память. Бряк на память в SoftICE - bpm, а не bpx !!!!! Бряк на память в OllyDbg - mr, mw, а не hr !!!!! Но скорее всего правильнее будет аналогия bpm<---------->hr (в ольке допускается только 4 бряка hardware) <<пример>> bpm esp-4 <---------->hr esp-4 ![]() |
|
Создано: 15 января 2007 01:12 · Поправил: Gambit · Личное сообщение · #13 |
|
Создано: 16 января 2007 02:43 · Поправил: PE_Kill · Личное сообщение · #14 |
|
Создано: 16 января 2007 05:49 · Личное сообщение · #15 |
|
Создано: 16 января 2007 06:23 · Личное сообщение · #16 От себя добавлю CTRL+стрелка вверх или вниз В OllyDbg – это смещение на один байт Для примера возьмем такой код: (KeyGenMe by Ms-Rem) (Естественно смещение происходит от байта, который находится первым в начале активного окна) 004010A6 E8 FFFFFFFF CALL 004010AA 004010AB C05D 81 ED RCR BYTE PTR SS:[EBP-7F],0ED 004010AF AB STOS DWORD PTR ES:[EDI] 004010B0 0000 ADD BYTE PTR DS:[EAX],AL 004010B2 0081 FB110100 ADD BYTE PTR DS:[ECX+111FB],AL 004010B8 007410 83 ADD BYTE PTR DS:[EAX+EDX-7D],DH 004010BC FB STI 004010BD 100F ADC BYTE PTR DS:[EDI],CL 004010BF 84A1 00000031 TEST BYTE PTR DS:[ECX+31000000],AH 004010C5 C0E9 A8 SHR CL,0A8 004010C8 0000 ADD BYTE PTR DS:[EAX],AL 004010CA 0083 FF010F85 ADD BYTE PTR DS:[EBX+850F01FF],AL 004010D0 9A 0000008D 8544 CALL FAR 4485:8D000000 004010D7 41 INC ECX 004010D8 0000 ADD BYTE PTR DS:[EAX],AL 004010DA 50 PUSH EAX Этот код сделан специально, для того чтобы анализатор отладчика визуально неверно дизассемблировал машинный код! Но если нажать четыре раза CTRL+стрелка вниз, то мы увидим вот такой код: 004010AA FFC0 INC EAX 004010AC 5D POP EBP 004010AD 81ED AB000000 SUB EBP,0AB 004010B3 81FB 11010000 CMP EBX,111 ;WM_COMMAND 004010B9 74 10 JE SHORT 004010CB 004010BB 83FB 10 CMP EBX,10 004010BE 0F84 A1000000 JE 00401165 004010C4 31C0 XOR EAX,EAX 004010C6 E9 A8000000 JMP 00401173 004010CB 83FF 01 CMP EDI,1 ;ID_CHECK 004010CE 0F85 9A000000 JNZ 0040116E 004010D4 8D85 44410000 LEA EAX,DWORD PTR SS:[EBP+4144] ;Здесь начинается самое интересное =)) 004010DA 50 PUSH EAX То же самое относиться и к активным окнам ACPUDUMP/ACPUSTACK/ADUMP и т. д. (которые имеют в данный момент клавиатурный фокус) ----- ЗЫ: истЕна где-то рядом, Welcome@Google.com ![]() |
|
Создано: 17 января 2007 01:12 · Личное сообщение · #17 |
|
Создано: 17 января 2007 12:18 · Личное сообщение · #18 Thofus пишет: bpm<---------->hr (в ольке допускается только 4 бряка hardware) Да какая разница - в оле или в софтайсе? Аппаратно одно и то же! Всего четыре отладочных регистра для бряков - не важно через что их использовать. Gambit пишет: Но у меня вопрос: зачем Ctrl+G ? Просто если искать как ты сказал, то поиск будет осуществлен только в текущей секции, поэтому надо либо сначала перейти в нужную секцию по ctrl+G (если знаешь где примерно пароль находится), либо по alt+M ctrl+L искать во всей памяти процесса. Что-то типа того. ![]() |
|
Создано: 17 января 2007 14:32 · Личное сообщение · #19 |
|
Создано: 18 января 2007 13:30 · Личное сообщение · #20 Gambit пишет: бряк, просто бряк... bpx [имя функции]<----------> bpx [имя функции] <<пример>> bpx MessageBoxA<----------> bpx MessageBoxA Уже задолбался объяснять, что это не так. BPX – в Оли ставит бряки только на колы тех функций, которые Оля увидела в коде. Часто этого не хватает. Только BP в CmbBar ставит бряки как в Сайсе BPX - на первую команду самой функции. Вот "точное" соответствие: bpx [имя функции]<----------> bp [Имя Функции с соблюдением регистра!] <<пример>> bpx messageboxa<----------> bp MessageBoxA[/i] ----- Всем привет, я вернулся ![]() |
|
Создано: 18 января 2007 14:15 · Личное сообщение · #21 |
|
Создано: 21 января 2007 14:01 · Поправил: Модератор · Личное сообщение · #22 Внимание! У вас должна присутствовать командная строка в ольке. Если у вас ее нет, то скачайте плагин CommandBar. Таблица обновлена 22.01.2007 ____________________________________________________________________________________ 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 ReadFile if (esp->c == 0x400) <---------->bp ReadFile,[ESP+C]==400 где ReadFile - аргумент( либо адрес, либо имя функции, хотя может и ещё чё вписать можно) ____________________________________________________________________________________ бряк на функцию/адрес bpx [имя функции/адрес]<----------> bp [имя функции/адрес] <<пример>>
______________________________________________________________________ ______________ сдампить Переход по адресу в дамп :d<---------->d <<пример>>
В дамп то вы перейдете, но для начала неплохо бы указать в каком виде вы хотите видеть "блюда". Итак, ваш заказ?;) ..........Меню: ..........Дамп в формате HEX, мелко шинкованный на байты ..........:db<---------->db .......... <<пример>>
..........Дамп в формате HEX, натертый словами ..........:dw<---------->dw .......... <<пример>>
..........Дамп в формате HEX, рубленный брусочками двойных слов ..........:dd<---------->dd .......... Самое вкусное (имхо) - db, хотя, конечно, на вкус и цвет... (ой, о чем это я?;)
______________________________________________________________________ ______________ калькулятор :?выражение<---------->? выражение (отступ обязателен) или calc выражение или не париться, а написать просто выражение. <<пример>>
______________________________________________________________________ ______________ Найти в отладчике выражение (цифры, слова, введенный вами серийник ![]() s d lffffffff "<введённое вами выражение>"(обязательно в кавычках) <----------> А здесь не все так просто... Дело в том, что специальной команды для такого дела не предусмотрено (а может, просто я не нашел), а потому придется идти таким путем: 1) Нажмите Alt+M 2) Установите видеокурсор на верхнюю строку открывшегося окна (обязательно!) 3) Нажмите Ctrl+B и напишите, чего вам там надо и нажмите Enter 4) Если чего нибудь найдется, но вам это не подойдет, то продолжить поиск можно командой Ctrl+L ______________________________________________________________________ ______________ ЗЫ: Сильно меня не пинайте - могут быть очепятки... Мне просто завтра (вернее, уже сегодня) ФЫЗЫКУ сдавать ( ![]() ----- программистом не рождаются - им умирают ![]() |
|
Создано: 24 января 2007 01:15 · Поправил: Gambit · Личное сообщение · #23 |
|
Создано: 24 января 2007 02:36 · Личное сообщение · #24 |
|
Создано: 24 января 2007 03:02 · Личное сообщение · #25 |
|
Создано: 24 января 2007 03:12 · Личное сообщение · #26 Зачем новый раздел? Пиши в этом. Будет все наглядно и информативно У тебя же есть например: 1) Нажмите Alt+M 2) Установите видеокурсор на верхнюю строку открывшегося окна (обязательно!) 3) Нажмите Ctrl+B и напишите, чего вам там надо и нажмите Enter 4) Если чего нибудь найдется, но вам это не подойдет, то продолжить поиск можно командой Ctrl+L ![]() |
|
Создано: 24 января 2007 04:19 · Поправил: Gambit · Личное сообщение · #27 |
|
Создано: 24 января 2007 06:27 · Личное сообщение · #28 |
|
Создано: 24 января 2007 09:43 · Личное сообщение · #29 |
|
Создано: 24 января 2007 13:54 · Личное сообщение · #30 |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› Сравнение Olly и сайса (топик специально для таких вопросов) + таблица соответствий |
Эта тема закрыта. Ответы больше не принимаются. |