Сейчас на форуме: vsv1 (+3 невидимых)

 eXeL@B —› Вопросы новичков —› Handy Recovery 4 - как к ней подступиться
Посл.ответ Сообщение

Ранг: 8.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 20 февраля 2008 13:16
· Личное сообщение · #1

Всем здрасьте.

Такая проблема. Есть триальная программа, требует ввести код (Handy Recovery 4.0 - может кто знает).
Хотел её отучить от кода, но не понял как к ней подступиться. Дело в том что OllyDbg, когда запускаешь прогу, виснет. Попробовал по шагам, оказалось что программа пытается вызвать несуществующие функции (без отладчика всё работает)
Например вот что ОllyDbg показала.
0049BE39 |. FF50 20 CALL DWORD PTR DS:[EAX+20]
DS:[00000020]=???

Вот из-за чего такое может быть? Опыта конечно ещё мало, но сдаваться тоже не охота. Дайте вектор направление, плиз!

Вот сама программа - handyrecovery.com/handyrecovery.exe



Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 20 февраля 2008 14:15
· Личное сообщение · #2

Nukimi
А что говорит анализатор Die?



Ранг: 8.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 20 февраля 2008 15:49
· Личное сообщение · #3

Что есть анализатор Die?

Если имеется ввиду что то вроде PEid, то PEid = Microsoft Visual C++ 6.0. Ничем не пакован.



Ранг: 20.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 20 февраля 2008 18:18
· Личное сообщение · #4

Nukimi пишет:
OllyDbg, когда запускаешь прогу, виснет

Странно у меня всё нормально работает.
Проверка серийника тут:
00499C0E . 50 PUSH EAX
00499C0F . E8 75180000 CALL HandyRec.0049B489

Только похоже, прога ещё на сервере его проверяет.



Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 20 февраля 2008 20:21
· Личное сообщение · #5

Nukimi
Анализатор Die - это как PEid, только на порядок лучше(ищи на форуме).



Ранг: 495.3 (мудрец)
Активность: 0.30
Статус: Участник

Создано: 20 февраля 2008 20:30 · Поправил: Bitfry
· Личное сообщение · #6

Nukimi пишет:
Что есть анализатор Die?

Detect it Easy (поиск рулит).
Но он тут ненужен. Прога не пакована.
tempread пишет:
Анализатор Die - это как PEid, только на порядок лучше(ищи на форуме).

Спорный вопрос =). Всё дело в сигнатурах.
Nukimi пишет:
Вот из-за чего такое может быть?

Ты хочешь узнать, есть ли там антиотладка? Ответ: нет.
Это просто глюк программы, а точнее глюк обработки исключений, а ещё точнее из-за дисковода в списке дисков =). Поставь в опциях Оли игнарировать все исключения и всё должно быть нормально.
С кряком не возился, но думаю, всё как и раньше (в версии 2, которую патчить можно в 1 байт). А ловил я тогда, если не ошибаюсь, банально на RegOpenKeyA (давно это было =).

-----
Всем привет, я вернулся




Ранг: 8.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 22 февраля 2008 10:41
· Личное сообщение · #7

И снова я. Может кто даст подсказку какую нить. Я нашёл код и всё что с ним связано, но как писал ReZiDenT_USSR выше, программа пытается выйти в инет для регистрации. Как я понял хочет качнуть файл реестровый. Следовательно надо поймать, где программа при загрузке читает реестр и считает себя зарегистрированной? Я нашёл где она хранит код, нашёл кол-во запусков, но никак не могу поймать ключевой момент, что б прога была полнофункиональной. Просто интересно уже посмотреть, где этот волшебный байт.

Bitfry
Спасибо. Действительно из-за исключений не запускалась. Правда, в Option->Exceptions игнорировать все исключения не помогло почему то. Вроде все поставил. Помог Shift+F9. Ещё раз спасибо.



Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 22 февраля 2008 13:48
· Личное сообщение · #8

Nukimi
Ломал давненько трешку остался Dup файл
RAW Offset | Old Byte | New Byte
-----------------+----------+----------
0007090A 8B B0
0007090B C7 01

.004708D9: 6894D24E00 push 0004ED294 ;'hrnkh' -- 2
.004708DE: 6800000080 push 080000000 ;'Ç '
.004708E3: FF150C804C00 call RegDeleteKeyA
.004708E9: 8BC7 mov eax,edi
.004708EB: F7D8 neg eax
.004708ED: 1BC0 sbb eax,eax
.004708EF: 66250CFD and ax,0FD0C ;'² '
.004708F3: 0500070000 add eax,000000700
.004708F8: 014620 add [esi][020],eax
.004708FB: 834DFCFF or d,[ebp][-4],-1 ;' '
.004708FF: 8D4DF0 lea ecx,[ebp][-010]
.00470902: E80C890300 call .0004A9213 -- 3
.00470907: 8B4DF4 mov ecx,[ebp][-00C]
.0047090A: B001 mov al,1 <-----------------
.0047090C: 5F pop edi
.0047090D: 5E pop esi
.0047090E: 64890D00000000 mov fs:[0],ecx
.00470915: C9 leave
.00470916: C20800 retn 8



Ранг: 8.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 22 февраля 2008 16:03
· Личное сообщение · #9

Значит я правильно копал. Но тогда я не понял вот какой момент:

00499462 834D FC FF OR DWORD PTR SS:[EBP-4],FFFFFFFF
00499466 8D4D F0 LEA ECX,DWORD PTR SS:[EBP-10]
00499469 E8 33B80300 CALL HandyRec.004D4CA1
0049946E 8B4D F4 MOV ECX,DWORD PTR SS:[EBP-C]
00499471 8BC7 MOV EAX,EDI
00499473 5F POP EDI
00499474 5E POP ESI
00499475 64:890D 000000 MOV DWORD PTR FS:[0],ECX
0049947C C9 LEAVE
0049947D C2 0800 RETN 8

Если в программе, вместо
00499471 8BC7 MOV EAX,EDI
поставить
00499471 B0 01 MOV AL,1
то программа считает себя зарегистрированной.
НО если в отладке, в ручную, заменю в регистре EAX 0 на 1, то программа не считает себя зарегистрированной. А ведь это, вроде как, одно и тоже?




Ранг: 529.0 (!), 110thx
Активность: 0.290.04
Статус: Участник
5KRT

Создано: 22 февраля 2008 18:19
· Личное сообщение · #10

Nukimi
Регистр AX это младшая часть регистра EAX, так что в данном случае ты всё делал правильно

-----
Research For Food




Ранг: 8.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 22 февраля 2008 23:04
· Личное сообщение · #11

daFix
Дык, я знаю что AX это младшая часть EAX . Непонятки именно в том, что если я заменю строку
00499471 8BC7 MOV EAX,EDI на 00499471 B0 01 MOV AL,1
потом сохраню как новый exe, то программа делается регистрированной. А если я пишу вручную, при отладке, регистр EAX = 1, программа не становится зарегистрированнной. Или это просто какой то глюк?



Ранг: 8.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 24 февраля 2008 01:09
· Личное сообщение · #12

Что, можно закрывать, никто не даст ответ? Просто на будущее. Мало ли, опять такое будет. Интересно же.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 24 февраля 2008 01:22
· Личное сообщение · #13

возможно программа успевает выполнить 00499471, прежде чем ты исправил на MOV AL,1

-----
[nice coder and reverser]




Ранг: 1045.7 (!!!!), 31thx
Активность: 0.570
Статус: Участник

Создано: 24 февраля 2008 07:40
· Личное сообщение · #14

Nukimi пишет:
А если я пишу вручную, при отладке, регистр EAX = 1, программа не становится зарегистрированнной. Или это просто какой то глюк?

Единственое разумное обьяснение ты меняешь регистр а затем выпололняшь команду MOV EAX,EDI



Ранг: 8.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 24 февраля 2008 22:54
· Личное сообщение · #15

И ещё раз я. Я понял почему так. Там просто этот кусок не один раз вызывался. А я только 1 раз правил EAX. Пополнил копилку знаний.
Так как это моя 2 программа, хочу узнать, а можно ли её зарегистрирвать без патча. Кто нить пробовал? Я нашёл все функции для проверок:

//Функция читает реестр. HKEY_CLASSES_ROOT/hrnkh
//Там должно быть 2 параметра: "1" & "3"
//1 = код, который мы вводили при регистрации
//3 = не знаю, что сдесь должно быть
0049938A E8 D1FDFFFF CALL HandyRec.00499160

//Подсчёт некой суммы для кода, который мы вводили при регистрации
004993C8 E8 11EFFFFF CALL HandyRec.004982DE

//Подсчёт суммы, для const строки
004993DA E8 FFEEFFFF CALL HandyRec.004982DE

//А сдесь происходят все сравнения вычисленных сумм.
00496856 E8 DB000000 CALL HandyRec.00496936

//Всего 5 сравнений.
00496947 E8 B4580100 CALL HandyRec.004AC200
00496964 E8 97580100 CALL HandyRec.004AC200
00496991 E8 6A580100 CALL HandyRec.004AC200
004969A7 E8 54580100 CALL HandyRec.004AC200
004969D5 E8 26580100 CALL HandyRec.004AC200

При загрузке программы, всё это проверяется 3-жды + при вызове about.
Но я не могу понять, а откуда берётся правильная сумма с которой сравнивается. Она, кстати, зависит от параметра "3" в HKEY_CLASSES_ROOT/hrnkh

Из этого добра, можно получить правильный рег. файл, что б без патча?




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 25 февраля 2008 03:02
· Личное сообщение · #16

Всё равно нужно будет патчить запрос на сервер...

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 8.0 (гость)
Активность: 0.010
Статус: Участник

Создано: 26 февраля 2008 18:56
· Личное сообщение · #17

Всем спасибо. Щас темку закрою. Только найду как.


 eXeL@B —› Вопросы новичков —› Handy Recovery 4 - как к ней подступиться
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати