Сейчас на форуме: (+5 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Advanced Warp screensaver |
Посл.ответ | Сообщение |
|
Создано: 06 июля 2006 18:36 · Личное сообщение · #1 Я во взломе новичок так что, наверное, что-нибудь пропустил или недосмотрел. Хэлп! Advanced Warp screensaver 2.0 - freesoft.ru/file.html?link=local&file=adwarp.zip (300 KB). Ничем не упакован. Требует тока ключик, после ввода просит перезапустить и при запуске считывает из реестра. Саму настройку сломал, а заставка все равно выводит посередине наг картинку. То что нарыл: Вызываются в таком порядке при любом запуске тока в разных местах лежат - 0040FCBC |. E8 7F0A0000 CALL Advanced.00410740 // ВРОДЕ вычисляет хэш 0040FCC1 |. 84C0 TEST AL,AL 0040FCC3 |. 5F POP EDI 0040FCC4 |. 74 0A JE SHORT Advanced.0040FCD0 А в этих вроде происходит основная проверка 0040FCC6 |. E8 45090000 CALL Advanced.00410610 // switch…case, не понял что он делает. 0040FCCB |. E8 F0060000 CALL Advanced.004103C0 // Странные махинации с VirtualProtectEx(смотрел в MSDN, но так и не понял назначение функции) вперемешку с изменением содержимого DS:[4A73C1] и вычислениями. Если там изменить его значение, то настройка работает, а заставка накрывается. По этому адресу 0040D4A0(используется DS:[4A73C1] как и в настройке), хрень какая то, может что шифруется. На операции OR отладчик в ступоре(пользуюсь OllyDbg). Может наг как-нибудь убрать из загрузки текстуры? Было бы неплохо найти ключ. P.S. Что вообще делают эти SETE, SAHF, ADC? ![]() |
|
Создано: 06 июля 2006 18:37 · Личное сообщение · #2 Переписал CALL 00410740 до условия на cpp(если кому надо). unsigned char Hash(unsigned char * STR){ unsigned char c, x = 0; for (int i = 0; i < 0x24; i++){ if (i == 7) continue; x = (x << 1) + ((x & 128) >> 7); // ROL x, 1 x^=STR[i];} c = x & 0xF; c ^= (x >> 4); return c;} if (Hash(s) >= 0xA && Hash(s) + 0x37 == s[7]) …; if (Hash(s) < 0xA && Hash(s)+ 0x30 == s[7]) …; ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Advanced Warp screensaver |