Сейчас на форуме: asfa, _MBK_, Adler, bartolomeo (+8 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Заблудился в длинной функции. Нужен совет как найти выход. |
Посл.ответ | Сообщение |
|
Создано: 31 августа 2012 23:44 · Поправил: Am_LHM · Личное сообщение · #1 Здраствуйте, Уважаемое Сообщество Реверсеров. Нуждаюсь в совете умудрённых опытом. 3-ю неделю жизни нет, мозг вскипел, а перед глазами всплошь один "код матрицы" - порабощён идеей фикс: подсоеденить через блютуз компьютер и мобильный. Для этого пользую "ломаный" блютуз стэк + (моя головная боль) плагин диалера (который просит деньги). PEiDv0.95 указал, что исполняемый файл плагина упакован "ASProtect 1.33 - 2.1 Registered -> Alexey Solodovnikov *". Вроде бы удачно снял ASProtect с помощью DecomAS (PEiDv0.95 уже пишет Microsoft Visual C++ 8 *). Но вот дальше дойти до места сравнения паролей никак не удаётся (использую OllyDbg 1.10 with plug-ins). Застрял на месте функции, которая постоянно в цикле исполняется при выводе окна регистрации. Поиск по API ни к чему хорошему не привёл, поиск неправильного пароля и в дампе памяти и в стэке ничего не дали (судя по всему эта функция каждый отдельно введённый символ в поле QWidget строки начинает преобразовывать и сравнивать в процессе ввода серийника) и бряки на вызов этой функции не получается использовать на пользу так, как жизни не хватит, чтобы протрассировать весь цикл (бряки ставил на функцию вызова окна регистрации, на WM_LBUTTONUP, на WM_KEYUP и WM_KEYDOWN, GetMessageBox вААще тысячи вызовов...). По нажатию кнопки активации с иконки плагина в трее вылезает маленький popup с надписью "Activate faile". Надписи в ASCII "Activate faile" и "Activate success" (в голове каша так, что уже не могу найти и этот текст) находил в одном из модулей, но с их помощью не смог найти место сравнения паролей. Прочёл много статей для новичков на exelab.ru, прочёл 15 глав Рикардо Нарваха в пер. Aquila (остальные просмотрел до конца, но там вроде бы не связанные темы с моей проблемой), искал ответы на форуме... Помогите, нуждаюсь в совете - что я не так делаю?. На всяк случай даю ссылки на стэк + проблемный плагин: http://rghost.ru/40125461 (~50 метров) http://rghost.ru/40125595 (~37 метров) ![]() |
|
Создано: 31 августа 2012 23:55 · Личное сообщение · #2 |
|
Создано: 31 августа 2012 23:56 · Поправил: Am_LHM · Личное сообщение · #3 |
|
Создано: 01 сентября 2012 00:24 · Личное сообщение · #4 |
|
Создано: 01 сентября 2012 00:47 · Поправил: Am_LHM · Личное сообщение · #5 |
|
Создано: 01 сентября 2012 02:44 · Личное сообщение · #6 |
|
Создано: 01 сентября 2012 10:21 · Личное сообщение · #7 Вывод по работоспособности стэка я делаю по факту сопряжения телефона с компьютером. И всё же я нуждаюсь в совете "Что я не так делаю при поиске пароля?", именно поэтому я обратился на этом форуме в разделе "Вопросы новичков" за помощью. Пэ.эС. Судя по тону, в котором ко мне обращается ClockMan, у него многолетний опыт преподавания в учебных заведениях культуры. В таких случаях почему-то в голову приходит один анекдот: "Американский форум: задал вопрос - получил ответ. Израильский форум: задал вопрос - получил вопрос. Русский форум: задал вопрос и потом долго выслушиваешь какой ты мудак." ![]() |
|
Создано: 01 сентября 2012 11:19 · Поправил: reversecode · Личное сообщение · #8 |
|
Создано: 01 сентября 2012 11:42 · Личное сообщение · #9 Am_LHM пишет: Русский форум: задал вопрос и потом долго выслушиваешь какой ты мудак Непошли бы вы в запросы на взлом,ах да тамже могут и игнорировать вашь запрос, создам тему глядишь какой небуть дурачёк и кейген мне сделает... ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 01 сентября 2012 13:03 · Личное сообщение · #10 2 reversecode: http://www.bluesoleil.com/products/S0001201010120001.html - да, он. Я всю инсталяцию дал потому, что плагин без стэка отказывается работать ![]() В архиве отдельно и мой подопытный "exe". Но застрял я на вызове "650689E7 E8 D4C9FEFF CALL QtGui4.650553C0" в QtGui4.dll, внутри этого call много других вызовов. И какие ещё модули используются мне уже трудно сказать. Пэ.эС. 2 ClockMan: Не нужно мне делать кейген. Сам как-нить разберусь. Жаль своего времени и сил потраченных на преодоление этой проблемы, поэтому и хочу научиться сам, чтобы не читать подобных камментов. ClockMan судя по всему не различает вопрос новичка и желание халявщика получить готовый кейген. Этот раздел для новичков, но явно не для ClockMan. И да, не утруждайтесь отвечать мне. Не хочу тратить Ваше драгоценное время попусту. ![]() |
|
Создано: 01 сентября 2012 13:55 · Личное сообщение · #11 |
|
Создано: 01 сентября 2012 14:45 · Поправил: Am_LHM · Личное сообщение · #12 В окне подгружаемых модулей (помимо системных) вот такой список: ![]() В какой модуль мне направляться? Когда установил бряк на KEYUP, получил такого рода сообщение (при вводе в окно активации цифры "9"): ![]() В стэке: ![]() Где же мне искать введённую с клавиатуры цифру "9"? Я не могу понять, где храниться "9" для дальнейшего сравнения с правильным кодом... Да, и ещё - наконец-то вспомнил и нашёл интересующие меня строки в модуле BsMobi_2 (вот токо какую библиотеку OllyDbg обозвал так...): ![]() Я могу их использовать для поиска места сравнения паролей? И каким образом - через адрес вызова? Пэ.эС. 2 Vovan666: Сорри за мою начальную безграмотность, но что имеется ввиду под "названия фунок" - название функций? И где их искать - в WinMain? Но до вызова окна с регистрацией через "Search for -> All referenced text strings" их очень мало и интересующих меня - нет. ![]() |
|
Создано: 01 сентября 2012 22:45 · Личное сообщение · #13 Am_LHM пишет: вот токо какую библиотеку OllyDbg обозвал так... Alt+E и смотри какой по базе подходит ______________________________ Итак начнем сначала.... В той х.не что ты выложил ничего похожего на cPhone НЕТУ!!! Am_LHM пишет: Я могу их использовать для поиска места сравнения паролей? Вопрос меня убил наповал. Нет не можешь ибо это нарушение статьи 274 УК РФ. Когда же вы школьники поймете, если защиту писал мало-мальски продвинутый программист, то сравнения введенного кода с правильным там не будет. Место нашел, теперь ищи там волшебный jmp(jnz,jz итд) что не прыгал на Activate faile от него и пляши. ![]() |
|
Создано: 02 сентября 2012 03:58 · Поправил: Am_LHM · Личное сообщение · #14 У меня в списке View 'BsMobi_1', 'BsMobi_2', 'BsMobi_3', 'BsMobi_4' и 'BsMobi_5' - кто из них кто, тот ещё вопрос, по крайней мере для меня. Список подгружаемых модулей я выложил ещё на первом скрине. cPhone*.exe содержит мало чего полезного для подобного поиска, в основном переходы на библиотеки... "...если защиту писал мало-мальски продвинутый программист, то сравнения введенного кода с правильным там не будет" - по ходу всё, что я до этого читал, безнадёжно устарелая информация либо годиться только для игр с крэкми (возникает сразу вопрос "Как же тогда определяется правильный серийник?"). Кстати, по поводу места прыжка - нашёл, чехлюсь каким образом производиться установка флага Z после непонятного сравнения... А вот предвещающий блок предыдущей функции мне пока не понятен (проверка первого знака, или знакоместа, или ещё чего - непонятно, что за перебор). Начало блока: ![]() |
|
Создано: 04 сентября 2012 16:17 · Поправил: Am_LHM · Личное сообщение · #15 Судя по заверениям support Vovan666 "... там онлайн активация" был прав - плагин активируется как и стэк . Я был не внимателен (посмотрел netstat-ом все сетевые соединения при вводе неправильного серийника и не увидив попыток соединится сделал ошибку в выводе)... Блок, который находиться перед прыжком на вывод о результате активации для меня сложен с пониманием (вроде бы проверяет на недопустимые знаки некоторая его часть). Пробовал ловить вводимые знаки в поле окна активации - не нашёл их в памяти. Как система передаёт вводимые символы этому процессу для меня загадка. Нашёл call's, которые вызывают окна активации, поставил бряки, но... ![]() Ввести знак можно только, если нижеприведеный цикл постоянно выполняется. Но хоть я и поставил бряк на строку ниже этого цикла при нажатии на кнопку Activation программа выскакивает в другое место (каким образом программа проскакивает мой бряк..?) ![]() Может потому, что онлайн активация через интернет, у меня и не получается добраться до того места, которого может быть и нет. Тяжело для меня... Попытаюсь воспользоваться трудом авторов активационной тулзы, чтобы понять процесс активации, у плагина, наверное, идентичный процесс... Если я иду неправильным путём, подскажите. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Заблудился в длинной функции. Нужен совет как найти выход. |