____________________________________________________________________________________
                    _________\          |            __________
                   /          \      __-+-  __      |         /\
                  /___________/     /'( |_  )`\     |________/  \
                 |   \       /     / . \/^\/ . \            /   /
                  \   \           /  _)_`-'_(_  \          /   /
                   \   \         /.-~   ).(   ~-.\        /   /
                    \   \       /'     /\_/\     `\      /   /
                     \  /     __  ___  " __"  __  _ _  \/   /
                      \/     / _)(  ,)  (  ) / _)( ) )  \__/_
                            ( (_  )  \  /()\( (_  )  \
                             \__)(_)\_)(_)(_)\__)(_)\_)
                                ___             __
                               (  ,\o l a n d  (  )
                                ) _/ cRACKING   )(__
                               (_)      gROUP  (____)
                                    ____     /\
                                   /  \     /  \
                                  /\   \   /   /
                                    \   \ /   /
                                     \___\___/
_______________________________________________________________________________________

                                CrackPl prezentuje
                                                                 by n1ghtm4r3
_______________________________________________________________________________________

Cel   : Macro Magic for Windows 95, Windows 98, and Windows NT
Gdzie : Chip 9/98
Co    : Serial
Czym  : W32Dasm

Uruchamiamy W32Dasma, wczytujemy program:

Disassembler --> Open File to Disassemble --> Macros.exe

chwilke czekamy i

Debug --> Load Process

Pojawily nam sie jeszcze jakies dwa nowe okna. Przesunmy je (narazie nam nie
sa potrzebne). Nastepnie:

Refs --> String Data References

no i szukamy ciagu znakow:

"You have entered an invalid registration "

klikamy na nim dwa razy i mamy cos takiego:

:00453035 B850314500        mov eax, 00453150 ; tutaj jest nasz kursor
:0045303A E8C198FEFF        call 0043C900
:0045303F 8B45FC            mov eax, dword ptr [ebp-04]
:00453042 E8B5FDFAFF        call 00402DFC
:00453047 A154B84600        mov eax, dword ptr [0046B854]
:0045304C E853BDFDFF        call 0042EDA4

patrzymy co jest wyzej:

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00452F66(C)     ; !!! tutaj znajduje sie adres z kad jest wywolywana funkcja
                           pokazujaca ten napis, tak wiec sprawdzamy ten adres
|
:0045302B 43                      inc ebx
:0045302C 83FB1F                  cmp ebx, 0000001F
:0045302F 0F85F5FDFFFF            jne 00452E2A

* Possible StringData Ref from Code Obj ->"You have entered an invalid registration "
                                        ->"number.  If you are a registered "
                                        ->"user of Macro Magic, please contact "
                                        ->"Iolo for a valid code at mm@iolo.com"
                                        ->"or 1(626)793-3993."
                                  |
:00453035 B850314500              mov eax, 00453150
:0045303A E8C198FEFF              call 0043C900
:0045303F 8B45FC                  mov eax, dword ptr [ebp-04]
:00453042 E8B5FDFAFF              call 00402DFC
:00453047 A154B84600              mov eax, dword ptr [0046B854]
:0045304C E853BDFDFF              call 0042EDA4

tutaj jest ten adres

(odwrocilem kolejnosc linijek abys tego nie musial czytac od konca)
        
        - to jest strzalka :)
       
:00452F7D 53                      push ebx
:00452F78 6890000000              push 00000090
:00452F76 8BD8                    mov ebx, eax
:00452F71 E85AF7FAFF              call 004026D0
:00452F6C B890000000              mov eax, 00000090
:00452F66 0F85BF000000            jne 0045302B  ; z tad jest wyswietlana informacja
                                        o nieprawidlowym numerze patrzymy co
                                        jest linijke nizej (wlasciwie wyzej)

:00452F61 E84A0DFBFF              call 00403CB0 ; a ha! pewnie tutaj program
                                    sprawdza poprawnosc kodu rejestracyjnego
:00452F60 58                      pop eax
:00452F5D 8B55E4                  mov edx, dword ptr [ebp-1C]   ; !!!
:00452F58 E89B020000              call 004531F8
:00452F55 8D45E4                  lea eax, dword ptr [ebp-1C]
:00452F52 FF75F4                  push [ebp-0C]
:00452F4F FF75F8                  push [ebp-08]
:00452F4E 50                      push eax

W miejscu w ktorym posawilem wykrzykniki zakladamy pulapke (najezdzamy tam
podswietlona linia i wciskamy klawisz F2). Nastepnie uruchamiamy program
poprzez F9. Wciskamy klawisz "Register Now" i wpisujemy jakikolwiek ciag cyfer
w moim przypadku to: 594241954897 i zatwierdzamy. Zglasza nam sie W32Dasm,
wciskamy F7 i w okienku gdzie sa wypisane pionowo takie przyciski (eip, eax,
ecx (..), esp, UA1, UA2), wciskamy F7, jeszcze tylko podswietlamy zawartosc
rejestru edx (klikamy na ten przycisk w pionowym rzedzie) i mamy swoj ulubiony
numer seryjny.

Serial : 98(..)37
