![]() |
eXeL@B —› Вопросы новичков —› Не могу докопаться, игрушка Onyx3 |
Посл.ответ | Сообщение |
|
Создано: 30 сентября 2008 22:50 · Личное сообщение · #1 Добрый день! Вот, захотелось мне зарегистрировать такую программку: www.symtoys.com/pub/onyx3.exe Для полной функциональности требуется регистрация. Имя, и серийник. Наверняка, серийник зависит от введённого имени. Значит включил я olly, нашёл функцию которая считывает введённые имя и серийник (называется edittextgetter, на неё брейкпоинт ставте), и затем внимательно слежу, что происходит. А происходит то, что я не увидел в дампе памяти где же оно прописывает нужный серийник. Вижу кучу операций с введёнными данными, но ничего вразумительного. В результате ессно вылазит окно с просьбой ввести правильный серийник. Подтолкните к правильному решению. Не прошу готового, прошу сдвинуть меня с мёртвой точки. Думаю, глаз профессионала заметит там, что к чему... ![]() |
|
Создано: 30 сентября 2008 23:42 · Поправил: coderess · Личное сообщение · #2 |
|
Создано: 01 октября 2008 00:05 · Личное сообщение · #3 |
|
Создано: 01 октября 2008 09:02 · Личное сообщение · #4 |
|
Создано: 01 октября 2008 10:31 · Поправил: SecurAdmin · Личное сообщение · #5 Code:
Саму функцию проверки ковырять очень лень.... ----- бессмысленные манипуляции не становятся более разумными если их повторять ![]() |
|
Создано: 01 октября 2008 14:08 · Личное сообщение · #6 2SecurAdmin, Я нашёл подобие того кода, что ты указал, вот: Code:
Это тоже самое или нет? Но я не могу отловить выполнение этих строк, когда пытаюсь поставить брекпоинт, то оно мне говорит что "you try to place breakpoint outside of code section" Я однозначно новичек, и вот не доходит до меня... ;) ![]() |
|
Создано: 01 октября 2008 17:20 · Личное сообщение · #7 этот код появляется по ходу выполнения программы поэтому если ты стоишь на oep и пытаешься поставить на него бреак - получаешь облом, его нет, если ты нашел начало, встань на него, а потом ищи код который тебе показали это конец проверки (хотя первые две цифры адреса могут быть другие у меня 0DBC3CE , а у SecurAdmin D9С3CE), поэтому лучше ищи по сигнатуре или по коду пробегись, это полезнее будет. ![]() |
|
Создано: 01 октября 2008 21:24 · Личное сообщение · #8 |
|
Создано: 01 октября 2008 21:52 · Личное сообщение · #9 |
|
Создано: 02 октября 2008 08:06 · Личное сообщение · #10 Zergius2 пишет: А где мне найти этот код в самом запускаемом файле, чтобы пропатчить? заходишь сюда: Code:
и смотришь все обращения к этой процедуре, ставишь бряки на эти обращения перезапускаешь прогу и увидишь кто вызывает проверку при старте проги, потом меняешь переход и какбе все. ----- xchg dword [eax], eax ![]() |
|
Создано: 02 октября 2008 16:05 · Личное сообщение · #11 Zergius2 Заходи внутрь указаной функи Code:
В самом конце функи при выходе будет следующей код Code:
Так вот нужно сделать чтобы в EAX возвращалось не 0. Можно сделать так Code:
Метод может не идеален, но вроде работает как надо. Всё. Ищем по опкодам в бинарнике указаный код и патчим. Code:
Можно регаться на любое имя с любым серийником. ----- Computer Security Laboratory ![]() |
|
Создано: 02 октября 2008 21:29 · Поправил: Zergius2 · Личное сообщение · #12 Фууух, всё нашёл, и сделал её таки ![]() Спасибо вам большое за помощь ![]() Вопрос к cadet и SecurAdmin: А как именно вы поняли, что именно там окончательно решается - правильный ли серийник или нет? Я хочу правильно понять эту логику... rapidshare.com/files/150464652/41dd_02.10.2008_CRACKLAB.rU.tgz.html ![]() |
|
Создано: 03 октября 2008 06:12 · Личное сообщение · #13 Лично я ставил бряки на функции отвечающие за обращение к тексту введенного в поля серийного номера и имени (не помню уже точно, но вроде GetDlgItemText), после чего немного трассировал и выходил на тот участок кода. PS: Не выкладывал бы ты здесь кряки...лучше залей на обменник, а сюда только ссылки дай. ----- бессмысленные манипуляции не становятся более разумными если их повторять ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Не могу докопаться, игрушка Onyx3 |