![]() |
Исследование Registry Booster v1.1
Пациент - программа Registry Booster v1.1. Думаю, все функции понятны по названию и особого представления делать не нужно.
В триал-версии наложено ограни4ение на удаление всего 15 ошибок в реестре. Попытавшись сразу закейгенить\подсмотреть валидный клю4 для сабжа, я обнаружил виртуальные функции, большую захламленность кода в районе проверки клю4ей и решил не тратить много времени попусту и просто пропат4ить нежалаемое ограни4ение (и был прав, ибо в дальнейшем обнаружится, 4то именно тут находится огромнейшая дырища в защите). При проверке реестра и попытке вы4истить все ошибки выдается окно "Thank You for your interest in Registry Booster!" с надписью об ограни4ениях. Я сразу взялся за Resource Explorer (перед этим исполняемый файл был распакован до Microsoft Visual C++ 7.0 [Debug]) и нашел вот такой броский ресурс с идентификатором 241: Код:
241 <body bgcolor=WHITE><font face="MS SANS SERIF" size="8pt" color = BLUE><b>Thank You for your interest in Registry Booster!<br><br></b></Font>To Purchase Registry Booster and repair all System Errors, please click on the "Purchase Online" button below. <br><br> <table border="0" id="table1" cellspacing="0" cellpadding="0"><tr><td height="40"> <b>Total Errors Found:</b> %d Errors Found.</td></tr><tr><td height="40"><font color = #C60F0F><b>Trial Version Removal:</b> This Trial Version will remove up to 15 errors.</font></td></tr><tr><td height="40"><font color = #C60F0F><b>Remaining Errors:</b> To remove the remaining errors purchase the full version.</font></td></tr></table></font></body>Поищем обращения к ресурсу с заданым идентификатором Ищем в ольке "Search for -> All commands" push 0F1 (поскольку 241 = 0F1h) имеем едиственный вызов Код:
004220F2 |. E8 E4AF0500 CALL Registry.0047D0DB ; \Registry.0047D0DB004220F7 |. 803D 529B4C00 >CMP BYTE PTR DS:[4C9B52],0 004220FE |. 8DB7 E8020000 LEA ESI,DWORD PTR DS:[EDI+2E8] 00422104 |. 74 14 JE SHORT Registry.0042211A и я4ейка памяти, которая имеет в нашем слу4ае нулевое зна4ение. Опыт подсказывает, 4то это может быть глобальная переменная BOOL is_registered, отве4ающая за статус прохождения\провала регистрации. Проверим, может она где-нибудь еще употребляется. Find References to -> All address constant Код:
References in Registry:.text to 004C9B52По природной лени, не желая для подмены зна4ения переменной (в 1) искать место ее инициализации, добавлять код ее перезаписи, я наугад попытался сделать модификацю по адресу .004220F7 в надежде, 4то проверка флага зарегистрированности в других 4астях будет проходить позднее. И я не ошибся =) Правим: 004220F7 803D 529B4C00 >CMP BYTE PTR DS:[4C9B52],0 004220FE 8DB7 E8020000 LEA ESI,DWORD PTR DS:[EDI+2E8] 00422104 74 14 JE SHORT Registry.0042211A 004220F7 C605 529B4C00 >MOV BYTE PTR DS:[4C9B52],1 004220FE 8DB7 E8020000 LEA ESI,DWORD PTR DS:[EDI+2E8] 00422104 90 NOP 00422105 90 NOP и имеем полность зарегистрированную версию безо всяких ограни4ений на коли4ество удаляемых ошибок. gl hl! |
| Время: 22:55 |