![]() |
eXeL@B —› Вопросы новичков —› Offset local и программа с инсталляцией. |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 05 сентября 2013 23:33 · Личное сообщение · #1 Здравствуйте уважаемые форумчане. Помогите с двумя вопросами. 1. Подскажите, пожалуйста, отличается чем-то принципиальным взлом программ, требующих установку и программ типа крэкми которые запускаются без установки? 2. Как найти собственно текст, который передается в MessageBox, если ollydbg показывает Offset local 153. ![]() |
|
Создано: 05 сентября 2013 23:38 · Личное сообщение · #2 |
|
Создано: 05 сентября 2013 23:42 · Личное сообщение · #3 |
|
Создано: 06 сентября 2013 00:01 · Личное сообщение · #4 Посмотреть вызов MessageBox в отладчике. Отладчик так и пишет offset local... Попробую загрузить скрин. follow in dump[t][/t] Можно подробней? ![]() ![]() |
|
Создано: 06 сентября 2013 00:17 · Личное сообщение · #5 |
|
Создано: 06 сентября 2013 00:28 · Личное сообщение · #6 |
|
Создано: 06 сентября 2013 00:45 · Личное сообщение · #7 Навожу на строку с Offset local далее follow in dump однако дальше только пункт selection При переходе в нижнем окне АСКИ код видит только крокозябры. PEid говорит, что программа написана Делфи 3.0. Кодировку подобрать не получаеться. Иду дальше, перевожу текст с Меседжбокса в Hex, копирую и пробую найти в програме хекс редактором. Не находиться, какая может быть кодировка? ![]() |
|
Создано: 06 сентября 2013 00:49 · Личное сообщение · #8 |
|
Создано: 06 сентября 2013 00:54 · Личное сообщение · #9 |
|
Создано: 06 сентября 2013 00:58 · Личное сообщение · #10 |
|
Создано: 06 сентября 2013 01:10 · Личное сообщение · #11 |
|
Создано: 06 сентября 2013 02:11 · Личное сообщение · #12 эта фотография не даст абсолютно никому, абсолютно ничего, даже местным экстрасенсам. ![]() |
|
Создано: 06 сентября 2013 10:01 · Личное сообщение · #13 |
|
Создано: 06 сентября 2013 10:05 · Поправил: reversecode · Личное сообщение · #14 |
|
Создано: 06 сентября 2013 10:11 · Личное сообщение · #15 |
|
Создано: 06 сентября 2013 10:26 · Личное сообщение · #16 |
|
Создано: 06 сентября 2013 10:35 · Поправил: neomant · Личное сообщение · #17 Попробую по фото поэкстрасенсить. Видно, что стоит точка останова на 405B4B, а EIP на точке входа. Так почему бы не отпустить приложение по F9 до выпадения на точке в отладчик и не посмотреть на четыре значения на верхушке стека. Два из них будут оффсетами строк заголовка и сообщения MessageBox. ----- Следуй за белым кроликом ![]() |
|
Создано: 06 сентября 2013 11:44 · Личное сообщение · #18 Вообще это похоже на стандартный кривой дельфовый код, который чтоб отобразить 1 мессадж делает 10-ти уровневую процедуру с 20 бесполезными переносами строки туда-сюда и заканчивающуюся обычным мессаджбоксом. И ловить оригинальный оффсет надо как минимум в начале процедуры (а скорее-всего процедуры на 3-4 раньше). ![]() |
|
Создано: 06 сентября 2013 14:04 · Личное сообщение · #19 jossross После фейспалмов я собрался с духом, вошёл в ваше положение и попробую написать всё внятно и понятно. В общем, выложить картинку было не такой уж плохой идеей, но вы это сделали абсолютно не через то место (через ж сделали). Как надо сделать: 1. Выкладывать скрин в момент срабатывания бряка, когда содержимое регистра еах отражает адрес переданной строки сообщения, а в окне дампа нужно отобразить содержимое этого самого адреса. 2. Если седоржимое не отображается в символам аски, то выберите шрифт Lucida (в олли есть), и всё - так можно отобразить русский текст. 3. Если это и правда делфи, то стоит заюзать либо декомпиляторы, либо хотя б флирты из иды, чтоб стаб vcl не отлаживать. Говоря простым языком, многие библиотеные имена могут быть распознаны декомпилятором по сигнатуре, и вместо простых call 00405610, он покажет вполне осмысленные имена, а библиотечный стаб вообще подсветит голубым (по умолчанию). Подскажите, пожалуйста, отличается чем-то принципиальным взлом программ, требующих установку и программ типа крэкми которые запускаются без установки? Ничем. Как найти собственно текст, который передается в MessageBox, если ollydbg показывает Offset local 153. Вот ответил Vovan666: ловить оригинальный оффсет надо как минимум в начале процедуры А как найти начало - ида или декомпиль, можно, в принципе, на глаз и в олли, но с тулзами проще. ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 06 сентября 2013 18:44 · Поправил: Модератор · Личное сообщение · #20 reversecode > пт, если месседж бокс выводит ее, значит она не поксорена в момент вывода И опять ты ... неправду возвестил. MsgBox() имеет в аргументах два PSTR, какой есчо шифр ![]() Просто в 7-м классе не расказали как посмореть текстовый дамп в отладчике. И нечего тут гадать, всё очевидно. От модератора: надоело уже читать эти матюги постоянно, забанен на сутки ![]() |
|
Создано: 08 сентября 2013 23:00 · Поправил: jossross · Личное сообщение · #21 Спасибо всем форумчанам, кто участвует в обсуждении. Вот что нашел по OFFSET LOCAL String address is the second argument in the call. By stating <%s> => OFFSET LOCAL.148 Ollydbg tells you the following: register EDX at the moment of PUSH EDX will contain address of the local variable 148 (148.-th doubleword preceding return address). Inde ed, previous command (LEA EAX,[LOCAL.148] ) loads this address to EDX Я так понял, в здесь в параметр функции передается не сам текст а ссылка на адрес памяти лежит текст. neomant пишет: Попробую по фото поэкстрасенсить. Видно, что стоит точка останова на 405B4B, а EIP на точке входа. Так почему бы не отпустить приложение по F9 до выпадения на точке в отладчик и не посмотреть на четыре значения на верхушке стека. Два из них будут оффсетами строк заголовка и сообщения MessageBox. Точку остановки ставил сам по F9 программа зависает на одной точке и дальше не идет. Vovan666 пишет: И ловить оригинальный оффсет надо как минимум в начале процедуры (а скорее-всего процедуры на 3-4 раньше). Можно пожалуйста подробнее (понимаю что и этого много но, извините, я только учусь)? ARCHANGEL пишет: Как надо сделать: 1. Выкладывать скрин в момент срабатывания бряка, когда содержимое регистра еах отражает адрес переданной строки сообщения, а в окне дампа нужно отобразить содержимое этого самого адреса. 2. Если седоржимое не отображается в символам аски, то выберите шрифт Lucida (в олли есть), и всё - так можно отобразить русский текст. 3. Если это и правда делфи, то стоит заюзать либо декомпиляторы, либо хотя б флирты из иды, чтоб стаб vcl не отлаживать. Говоря простым языком, многие библиотеные имена могут быть распознаны декомпилятором по сигнатуре, и вместо простых call 00405610, он покажет вполне осмысленные имена, а библиотечный стаб вообще подсветит голубым (по умолчанию). Спасибо, не все понял но разбираюсь. Ида показывает наличие текстовой сроки но не показывает же срока по наведению курсора. Извините, но исходный файл залить не смогу так как уволят. ![]() |
|
Создано: 08 сентября 2013 23:39 · Поправил: neomant · Личное сообщение · #22 jossross пишет: Точку остановки ставил сам по F9 программа зависает на одной точке и дальше не идет. Что точку остонова ставили сами это видно по скрину. Что значит зависает на одной точке и дальше не идёт? Нужно предпринять определённые действия в приложении для появления заветного MessageBox, тогда и вывалимся в отладку. Затем смотреть стек и выше каким образом это значение попало в стек. Конечно, в функцию передаются не сами текстовые данные, а лишь ссылка(адрес) на них. ----- Следуй за белым кроликом ![]() |
|
Создано: 08 сентября 2013 23:58 · Личное сообщение · #23 neomant пишет: Что точку остонова ставили сами это видно по скрину. Что значит зависает на одной точке и дальше не идёт? Открываю программу (требует установки), далее нажимаю Плай, отладчик останавливается на одной строке и дальше ни F7 F8 F9 не действуют. нет каких-либо изменений. В списке открытых программ снизу появляется окно установки но при кликанья на него ничего не происходит.neomant пишет: Нужно предпринять определённые действия в приложении для появления заветного MessageBox, тогда и вывалимся в отладку. Попасть на месседж бокс могу только прямо по листингу. ![]() |
|
Создано: 09 сентября 2013 00:21 · Личное сообщение · #24 |
|
Создано: 09 сентября 2013 09:27 · Поправил: neomant · Личное сообщение · #25 ARCHANGEL пишет: Shift+F9? Однозначно. Внимательно читать строку статуса. Скорее всего вывалились на каком-то исключении. jossross: Попасть на месседж бокс могу только прямо по листингу. С этим может справится и дизассемблер, в ИДЕ статический анализ делать намного удобнее. Дебаггер же как раз и предназначен для самой отладки(динамического анализа). ----- Следуй за белым кроликом ![]() |
|
Создано: 09 сентября 2013 23:24 · Поправил: jossross · Личное сообщение · #26 neomant пишет: Shift+F9? Последние сводки с фронта боевых действий. Комбинация клавиш дает результат. Если я открываю исходный файл то запускается установка, а если перегружаю оли и запускаю еще раз то соответственно происходит деинсталляция. Ничего динамически по самой программе посмотреть нельзя. Поэтому я попытался открыть файл из папки с установленной программой (Program files...). Пока вроде все хорошо...Но, в процессе танцев с бубнами возникли еще вопросы: 1. В программе с инсталляцией надо работать над исходным файлом или над тем, который установится после инсталляции? 2. Какой функцией выводится диалоговое окно с тремя полями ввода (два из которых уже заполнены) и кнопками Ок и отмена.... Программа, кстати, останавливается на таком INS BYTE PTR ES:[EDI],DX ![]() |
|
Создано: 10 сентября 2013 02:57 · Личное сообщение · #27 |
|
Создано: 10 сентября 2013 03:15 · Личное сообщение · #28 jossross пишет: 1. В программе с инсталляцией надо работать над исходным файлом или над тем, который установится после инсталляции? Зависит от инсталятора, чаще проверка регистрации в темповых файлах. jossross пишет: 2. Какой функцией выводится диалоговое окно с тремя полями ввода (два из которых уже заполнены) и кнопками Ок и отмена.... KingSise пишет: CreateDialogParamA(hInstance, "MainDialog", 0, 0, 0); к этому добавлю: ![]() |
|
Создано: 12 сентября 2013 02:07 · Личное сообщение · #29 KingSise пишет: например этой: CreateDialogParamA(hInstance, "MainDialog", 0, 0, 0); F_a_u_s_t пишет: howWindow Долго-долго бил-бил и разбил ![]() CPU Disasm Address Hex dump Command Comments 7C9342BE E8 9B8DFDFF CALL ZwContinue Функция выводит и главное окно программы и окно проверки с текстовыми полями. Как с ней бороться? Окно проверки пароля выскакивает с опозданием хотя программа стоит на брейкпоинте. ![]() |
|
Создано: 12 сентября 2013 11:24 · Личное сообщение · #30 jossross пишет: Долго-долго бил-бил и разбил, требуемое окно выскакивает при визове функции zwcontinue. Code:
И какие тут окна? ![]() ![]() |
. 1 . 2 . >> |
![]() |
eXeL@B —› Вопросы новичков —› Offset local и программа с инсталляцией. |
Эта тема закрыта. Ответы больше не принимаются. |