eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: Medsft, CDK1234, vden (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Не могу найти референсные строки в отладчике
Посл.ответ Сообщение

Ранг: 0.4 (гость)
Статус: Участник

Создано: 10 февраля 2015 11:36 New!
Цитата · Личное сообщение · #1

Привет. Ломаю такую штуку

http://yellow-gold-soft.com/statistic_files/statME.php

Запускаю Олли, открываю в нем исполнительный файл, но не могу найти ни одного слова из окна с вылетающей ошибкой. Программа использует локализации и я надеялся найти что-нибудь по ключам для них, но к своему удивлению не обнаружил в файлах локализаций ключей по которым могли бы находиться значения.

Видел, что некоторые проставляют брейкпоинты на MessageBoxA, для программ написанных на Вижуал Си, но в дебаггере опять-таки не нашел ни одного упоминания. Как их найти?

Вилку условия менять не хочу, хочу найти фрагмент сравнения с правильным паролем.

И еще: в Олли нашел такую опцию Execute Till User Code. Правильно ли я понимаю, что это означает, что дебаггер будет выплнять программу до тех пор, пока не будет получено какое-то действие пользователя? Если да, то как правильно использовать эту опцию? Потому что у меня при использовании этого режима дебаггер никак не откликается. Я хочу чтобы дебаггер отловил событие о нажатии визуальной кнопки.

Ранг: 95.7 (постоянный)
Статус: Участник

Создано: 10 февраля 2015 12:17 · Поправил: unknownproject New!
Цитата · Личное сообщение · #2

FennecFix пишет:
Видел, что некоторые проставляют брейкпоинты на MessageBoxA, для программ написанных на Вижуал Си, но в дебаггере опять-таки не нашел ни одного упоминания. Как их найти?


Ранг: 0.4 (гость)
Статус: Участник

Создано: 10 февраля 2015 12:23 New!
Цитата · Личное сообщение · #3

Это какой-то плагин? У меня обыкновенная Олли с офсайта. Поиск через Search For -> All referenced strings с запросом "Incorrect" или "registration" ни к чему не приводит, дебаггер говорит, что он такие строки найти не может. Что я делаю не так? Как настроить такой вид отображения? Как правильно искать строки?

Ранг: 95.7 (постоянный)
Статус: Участник

Создано: 10 февраля 2015 12:25 New!
Цитата · Личное сообщение · #4

Это список Вызовов (Calls), нажатие на кнопку "К".После вызова апи поставить отладку на паузу и смотреть вызовы.Плагины я не юзаю, оля у меня патчена мной лично на все баги, которые я сам искал.

| Сообщение посчитали полезным: FennecFix


Ранг: 0.4 (гость)
Статус: Участник

Создано: 10 февраля 2015 12:35 New!
Цитата · Личное сообщение · #5

Спасибо, попробую наломать дальше

Ранг: 95.7 (постоянный)
Статус: Участник

Создано: 10 февраля 2015 12:49 · Поправил: unknownproject New!
Цитата · Личное сообщение · #6

А строки вы не найдете в отладчике, потому что они вынесены в языковые файлы в папке lang_files, так что в процессе вызова апи текст сообщения об ошибке подгружается из языкового файла.

Ранг: 6.3 (гость)
Статус: Участник

Создано: 10 февраля 2015 12:55 · Поправил: samtehnik New!
Цитата · Личное сообщение · #7

сравнение паролей ---> Link <--

Ранг: 0.4 (гость)
Статус: Участник

Создано: 11 февраля 2015 11:53 New!
Цитата · Личное сообщение · #8

Извиняюсь за задержку, вчера не давали активно общаться сразу после регистрации )

unknownproject я вобщем-то собирался найти там не сами строки, я рассчитывал найти ключи, по которым эти строки подставляются, но видимо они подставляются не так как я подумал

samtehnik ну вы не торопитесь отдавать мне прям сразу решение задачи) Выж как-то нашли эту строчку, верно? Я тоже хочу научиться ее находить )

Вот меня беспокоит еще вопрос о том, можно ли наломать программу (чтобы не ходить далеко именно эту), имея только навык работы с дебаггером? Или обязательно нужно иметь хорошее представление об ассемблере?

У меня есть совсем базовые знания о том как кладутся значения в регистры, какими операторами они сравниваются и как проходят условные переходы.

По условным переходам навскидку прямо сразу расшифровок не нашел, но подозреваю что они следующие:
JNZ = Jump if Not Zero
JNE = Jump if Not Equal
JE = Jump if Equal

Однако в команде не указывается какой регистр чему-то должен быть равен.

Ранг: 95.7 (постоянный)
Статус: Участник

Создано: 11 февраля 2015 13:10 · Поправил: unknownproject New!
Цитата · Личное сообщение · #9

FennecFix пишет:
unknownproject я вобщем-то собирался найти там не сами строки, я рассчитывал найти ключи, по которым эти строки подставляются, но видимо они подставляются не так как я подумал

Прочтите внимательно мой пост.На это стоило обратить внимание.
Касательно решения самтехника.Он искал введенный рег код в памяти.Как это можно осуществить ? В программе после нажатия кнопки и до вывода сообщения выполняется расчет и происходит некоторая задержка.В этот момент ставим отладку на паузу, переходим к карте памяти (кнопка М) и ищем введенный рег код в Unicode кодировке.В открывшемся новом окне выделяем по нужному адресу первые 4 байта -> ПКМ -> Breakpoint -> Hardware, on access -> Dword.Далее жмем F9 и отладчик всплывает на месте проверки.
FennecFix пишет:
Вот меня беспокоит еще вопрос о том, можно ли наломать программу (чтобы не ходить далеко именно эту), имея только навык работы с дебаггером?

Учитывая то, что дебаггер представляет код программы в виде опкодов(команд) ассемблера, то без усвоения будет очень трудно, а еще трудней, если Вы не умеете программировать.Многие их тех, кто здесь сидят, отлаживали собственные программы и разбирались в ассемблерном представлении собственного кода.Это не так уж и трудно.Не буду утверждать об объективности, но этот материал, как по мне, вполне годный - --> Link <--

| Сообщение посчитали полезным: FennecFix


Ранг: 0.4 (гость)
Статус: Участник

Создано: 11 февраля 2015 13:23 New!
Цитата · Личное сообщение · #10

Еще раз спасибо за ценную информацию.

С программированием я знаком, но правда пока только на языках высокого уровня. Уже скачал себе книжек по ассемблеру, по мере нахождения свободного времени читаю.

Ранг: 95.7 (постоянный)
Статус: Участник

Создано: 11 февраля 2015 13:50 · Поправил: unknownproject New!
Цитата · Личное сообщение · #11

FennecFix пишет:
С программированием я знаком, но правда пока только на языках высокого уровня.

JNZ = Jump if Not Zero и JNE = Jump if Not Equal равнозначны, так как оба условных перехода выполнятся в случае неравенства переданного значения нулю.
JE = Jump if Equal
На делфи (или паскале) с условным оператором if был бы примерно такой код:
if x > 0 then ...
if x = 1 then ...
if x < 3 then ...
if x = 0 then ...
и тд.
Чтобы это все понять нужно анализировать код программы.
 eXeL@B —› Вопросы новичков —› Не могу найти референсные строки в отладчике

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS