![]() |
eXeL@B —› Вопросы новичков —› Вопрос по MSVBVM60.DLL |
Посл.ответ | Сообщение |
|
Создано: 02 марта 2009 16:33 · Поправил: dopton · Личное сообщение · #1 Привет! Сейчас пытаюсь поломать програмку, написанную на VB. В общем, без сенийника прога работает в демо-режиме, для ввода серийника есть окно с кнопкой. Вот что показал VB Decompiler по событию Command2_Click() Private Sub Command2_Click() '4C9960 loc_004C9A07: var_30 = Text3.Text //берем код с текстбокса loc_004C9A19: var_48 = @Ucase(8) //преобразуем в заглавные буквы loc_004C9A23: call MSVBVM60.DLL.__vbaStrVarMove(var_48, "", arg_8, arg_8, "", arg_8, arg_8, arg_8, arg_8) loc_004C9A34: var_1C = MSVBVM60.DLL.__vbaStrVarMove(var_48, "", arg_8, arg_8, "", arg_8, arg_8, arg_8, arg_8) loc_004C9A56: Proc_004C51D0(var_48, var_1C, "") If Proc_004C51D0(var_48, var_1C, "") = ebx Then loc_004C9A9C: var_78 = 3 loc_004C9AAD: var_70 = 1 loc_004C9AD0: frmUnlock2.Show var_1C, %x2 If frmUnlock2.Show var_1C, %x2 < ebx Then loc_004C9AEC: GoTo loc_004C9BD0 End If If var_4D15E8 <> 8 Then loc_004C9B0D: var_60 = 80020004h loc_004C9B10: var_50 = 80020004h loc_004C9B13: var_78 = 8 loc_004C9B22: var_70 = "Successful Serial Number" loc_004C9B46: call esi(00432DF4h, 000002B0h) loc_004C9B55: call esi loc_004C9B7A: MsgBox(8, ebx, 10, 10, 10) End If loc_004C9BBA: call frmUnlock2.Hide If frmUnlock2.Hide < ebx Then loc_004C9BD0: 'Referenced from 004C9AEC loc_004C9BD2: CheckObj(frmUnlock2.Hide, arg_8, 0042A330h, 000002B4h) End If End If loc_004C9BE0: GoTo loc_004C9C1A loc_004C9C19: Exit Sub loc_004C9C1A: 'Referenced from 004C9BE0 loc_004C9C23: Exit Sub End Sub Что делает функция vbaStrVarMove? В яндексе всего 20 страниц по ней нашлось, и те ни о чем ![]() |
|
Создано: 02 марта 2009 16:51 · Личное сообщение · #2 |
|
Создано: 02 марта 2009 20:58 · Личное сообщение · #3 |
|
Создано: 02 марта 2009 22:35 · Поправил: Модератор · Личное сообщение · #4 |
|
Создано: 02 марта 2009 22:39 · Поправил: Модератор · Личное сообщение · #5 |
|
Создано: 03 марта 2009 14:55 · Поправил: dopton · Личное сообщение · #6 Процедуры не постил, так как они длинные, и из одной прыгают в другую. И не так тут все просто оказалось. Ключик отсылается на сервер, и там уже проверяется. Остается только два варианта - грамотно пропатчить или брутфорс. Благо, ключ восьмизначный. В проге зашито пасхальное яйцо - набираешь 12345678 и вот тебе бонус режим) вот ссылка http://www.samecost.com/download/RS-setup.exe http://www.samecost.com/download/RS-setup.exe В IDA патчил по адресу 004C9A5E: с jnz loc_4C9AF1 на jz loc_4C9AF1 Но при таком патче в этой проге начинают вылеты при выборе опции Super Sniper ![]() |
|
Создано: 03 марта 2009 16:19 · Поправил: progopis · Личное сообщение · #7 А чем тебе поможет, что программа скажет что зарегистрирована? Надо патчить так, чтобы когда программа сама у себя спрашивает зарегистрирована ли она, говорила что да. Добавлено: ИМХО надо патчить то место где возвращаемая строка сравнивается на "ip_limit" и "false". Заменить обе строки на что-нибудь ещё, например, "ip+limit" и "farse", чтобы результат сравнения был отрицательный. Но этого мало. Надо ещё разбираться что происходит в процедуре 0x4CBDB0. Слишком она долго возвращаемую строку обрабатывает. Возможно в строке содержатся значения инициализации некоторых переменных. ![]() |
|
Создано: 03 марта 2009 16:37 · Поправил: dopton · Личное сообщение · #8 |
|
Создано: 03 марта 2009 16:52 · Поправил: progopis · Личное сообщение · #9 Патчить надо здесь: Code:
Заменить на какое-нибудь другое значение. В edi перед этим загружается 0 и так включается демонстрационный режим. Добавлено: Пропатчено на: Code:
Можно регить с любым рег. кодом. http://ifolder.ru/10842634 http://ifolder.ru/10842634 пароль: 123 ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Вопрос по MSVBVM60.DLL |