Уроците на Jonie
Тема
Регистриране на WinZip
7.0 с име по ваш избор
Нужни програми
SoftIce
Увод
Има няколко начина да регистрирате WinZip един
от които е чрез регистрация с валидни име и сериен номер .
В този урок ще ви покажа как да регистрирате WinZip с каквото име си пожелаете.
При регистриране програмата генерира два валидни номера
според вкараното име ( първият съдържа цифри и букви ( HEX формат ) , а другият само цифри ( DECIMAL формат ) ), които се сравняват с вкарания от вас номер и ако
той съвпадне с един от двата програмата се регистрира , ако ли не , излиза съобщение
за грешка .
Начин на действие
Стартирайте WinZip и когато се появи досадния екран натиснете бутона
"Enter Registration Code" и въведете някакви данни в празните полета.
( например: name : Jonie the Horror Registration
# : 12345678 )
Преди да натиснете OK натиснете CTRL+D за да влезете в SoftIce и въведете bpx GetDlgItemTextA , натиснете F5 за да излезете
от SoftIce и натиснете OK.
Това автоматично ви връща в SoftIce ( регистрира се прекъсване ).
Натиснете F11 за да видите прекъсването в WinZip кода. На екрана трябва да се вижда следния участък от кода:
:00408014 FF150C844600 Call
dword ptr [0046840C]
:0040801A 53 push
ebx
:0040801B E879160200 call 00429699
:00408020 59 pop
ecx
:00408021 53 push
ebx
:00408022 E89B160200 call 004296C2
:00408027 59 pop
ecx
:00408028 BE58D94700 mov esi, 0047D958
:0040802D 6A0B push
0000000B
:0040802F 56 push
esi
:00408030 68810C0000 push 00000C81
:00408035 57 push
edi
:00408036 FF150C844600 Call dword ptr [0046840C]
:0040803C 56 push
esi
:0040803D E857160200 call 00429699
:00408042 59 pop
ecx
:00408043 56 push
esi
:00408044 E879160200 call 004296C2
:00408049 803D28D9470000 cmp byte ptr [0047D928], 00 ;проверка дължината на името
:00408050 59 pop
ecx
:00408051 745F je
004080B2 ;ако = 0
показва съобщение за грешка
:00408053 803D58D9470000 cmp byte ptr [0047D958],00 ;проверка дължината на сер. номер
:0040805A 7456 je
004080B2 ;ако = 0
показва съобщение за грешка
:0040805C E8EAFAFFFF call 00407B4B ;генериране на правилни номера
:00408061 85C0 test
eax, eax ;EAX 0 =
грешен номер, EAX 1 =
верен номер
:00408063 744D je
004080B2 ;ако номера
е грешен показва съобщение за грешка
:00408065 53 push
ebx
:00408066 BBB80C4700 mov ebx, 00470CB8
Както се вижда , програмата проверява първо дали са вкарани някакви данни и
ако са се генерират валидните серийни номера . След това нашият измислен номер
се сравнява с тях и ако той съвпадне с някой от двата регистрацията се
приема ако ли не, показва се съобщение за грешка . За нас е важно повикването
на процедурата в адрес 40805C където се генерират
истинските номера . Натискайте F10 докато стигнете върху 0040805C
, натиснете "T" и след това "ENTER"
за да проследите самата процедура . Трябва да видите следния участък от кода
:
:00407B4B 55 push
ebp
:00407B4C 8BEC mov
ebp, esp
:00407B4E 81EC08020000 sub esp, 00000208
:00407B54 53 push
ebx
:00407B55 56 push
esi
:00407B56 33F6 xor
esi, esi
:00407B58 803D28D9470000 cmp byte ptr [0047D928],00
:00407B5F 57 push
edi
:00407B60 0F84A1000000 je 00407C07
:00407B66 8D45EC lea eax, dword
ptr [ebp-14]
:00407B69 50 push
eax
:00407B6A 6860F44600 push 0046F460
:00407B6F E84F9CFFFF call 004017C3
:00407B74 59 pop
ecx
:00407B75 8D85F8FDFFFF lea eax, dword ptr [ebp+FFFFFDF8]
Няма да се спирам на широко в обяснения на действието на процедурата ,
( за допълнителна информация може да ми пишете на: horrorscop@excite.com
) а направо ще преминем към откриването на двата истински номера .Натискайте
F10 докато достигнете до адрес : 00407C22 8D85C0FEFFFF lea eax, dword ptr [ebp+FFFFFEC0]
, напишете D ECX натиснете "ENTER"
и ще видите първият номер . ( при име : Jonie the Horror
– 02F32E09 ) . Ако продължите надолу
( F10 ) на адрес : 00407C51 59 pop
ecx ( D EAX – ENTER
) ще видите и вторият номер ( 49101100 ) .Сега
вече може да напуснете SoftIce ( bc 0 – ENTER ) и да изпробвате откритите номера .
Надявам се да ви бъда полезен с представения урок и ако имате някакви въпроси относно него или за нещо друго можете да ми пишете на адрес : horrorscop@excite.com