Сейчас на форуме: igorcauret, Rio (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Не могу найти референсные строки в отладчике |
Посл.ответ | Сообщение |
|
Создано: 10 февраля 2015 11:36 · Личное сообщение · #1 Привет. Ломаю такую штуку http://yellow-gold-soft.com/statistic_files/statME.php Запускаю Олли, открываю в нем исполнительный файл, но не могу найти ни одного слова из окна с вылетающей ошибкой. Программа использует локализации и я надеялся найти что-нибудь по ключам для них, но к своему удивлению не обнаружил в файлах локализаций ключей по которым могли бы находиться значения. Видел, что некоторые проставляют брейкпоинты на MessageBoxA, для программ написанных на Вижуал Си, но в дебаггере опять-таки не нашел ни одного упоминания. Как их найти? Вилку условия менять не хочу, хочу найти фрагмент сравнения с правильным паролем. И еще: в Олли нашел такую опцию Execute Till User Code. Правильно ли я понимаю, что это означает, что дебаггер будет выплнять программу до тех пор, пока не будет получено какое-то действие пользователя? Если да, то как правильно использовать эту опцию? Потому что у меня при использовании этого режима дебаггер никак не откликается. Я хочу чтобы дебаггер отловил событие о нажатии визуальной кнопки. ![]() |
|
Создано: 10 февраля 2015 12:17 · Поправил: unknownproject · Личное сообщение · #2 |
|
Создано: 10 февраля 2015 12:23 · Личное сообщение · #3 Это какой-то плагин? У меня обыкновенная Олли с офсайта. Поиск через Search For -> All referenced strings с запросом "Incorrect" или "registration" ни к чему не приводит, дебаггер говорит, что он такие строки найти не может. Что я делаю не так? Как настроить такой вид отображения? Как правильно искать строки? ![]() |
|
Создано: 10 февраля 2015 12:25 · Личное сообщение · #4 Это список Вызовов (Calls), нажатие на кнопку "К".После вызова апи поставить отладку на паузу и смотреть вызовы.Плагины я не юзаю, оля у меня патчена мной лично на все баги, которые я сам искал. ----- TEST YOUR MIGHT ![]() |
|
Создано: 10 февраля 2015 12:35 · Личное сообщение · #5 |
|
Создано: 10 февраля 2015 12:49 · Поправил: unknownproject · Личное сообщение · #6 |
|
Создано: 10 февраля 2015 12:55 · Поправил: samtehnik · Личное сообщение · #7 |
|
Создано: 11 февраля 2015 11:53 · Личное сообщение · #8 Извиняюсь за задержку, вчера не давали активно общаться сразу после регистрации ) unknownproject я вобщем-то собирался найти там не сами строки, я рассчитывал найти ключи, по которым эти строки подставляются, но видимо они подставляются не так как я подумал samtehnik ну вы не торопитесь отдавать мне прям сразу решение задачи) Выж как-то нашли эту строчку, верно? Я тоже хочу научиться ее находить ) Вот меня беспокоит еще вопрос о том, можно ли наломать программу (чтобы не ходить далеко именно эту), имея только навык работы с дебаггером? Или обязательно нужно иметь хорошее представление об ассемблере? У меня есть совсем базовые знания о том как кладутся значения в регистры, какими операторами они сравниваются и как проходят условные переходы. По условным переходам навскидку прямо сразу расшифровок не нашел, но подозреваю что они следующие: JNZ = Jump if Not Zero JNE = Jump if Not Equal JE = Jump if Equal Однако в команде не указывается какой регистр чему-то должен быть равен. ![]() |
|
Создано: 11 февраля 2015 13:10 · Поправил: unknownproject · Личное сообщение · #9 FennecFix пишет: unknownproject я вобщем-то собирался найти там не сами строки, я рассчитывал найти ключи, по которым эти строки подставляются, но видимо они подставляются не так как я подумал Прочтите внимательно мой пост.На это стоило обратить внимание. Касательно решения самтехника.Он искал введенный рег код в памяти.Как это можно осуществить ? В программе после нажатия кнопки и до вывода сообщения выполняется расчет и происходит некоторая задержка.В этот момент ставим отладку на паузу, переходим к карте памяти (кнопка М) и ищем введенный рег код в Unicode кодировке.В открывшемся новом окне выделяем по нужному адресу первые 4 байта -> ПКМ -> Breakpoint -> Hardware, on access -> Dword.Далее жмем F9 и отладчик всплывает на месте проверки. FennecFix пишет: Вот меня беспокоит еще вопрос о том, можно ли наломать программу (чтобы не ходить далеко именно эту), имея только навык работы с дебаггером? Учитывая то, что дебаггер представляет код программы в виде опкодов(команд) ассемблера, то без усвоения будет очень трудно, а еще трудней, если Вы не умеете программировать.Многие их тех, кто здесь сидят, отлаживали собственные программы и разбирались в ассемблерном представлении собственного кода.Это не так уж и трудно.Не буду утверждать об объективности, но этот материал, как по мне, вполне годный - ----- TEST YOUR MIGHT ![]() |
|
Создано: 11 февраля 2015 13:23 · Личное сообщение · #10 |
|
Создано: 11 февраля 2015 13:50 · Поправил: unknownproject · Личное сообщение · #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 ... и тд. Чтобы это все понять нужно анализировать код программы. ----- TEST YOUR MIGHT ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Не могу найти референсные строки в отладчике |