qwertzuiopasdfghjkl
Član broj: 94834 Poruke: 86 *.adsl.net.t-com.hr.
|
Ukratko...druga stvar koja nas jako zivicira kad otvorimo mpgscrpt.exe je item "Unregistred trial copy" u glavnom mainmenu-u..pa ajde da od toga pocnemo!! Prva i osnovna stvar koja se mora uradit je provjera s kojim kompajlerom je taj fajl napravljen.. dali je pakovan/protektovan! Na veliko izenadjenje program nije ni pakovan ni protektovan vec je uradjen u Borland Delphi-u. Prvo cemo povadit sto vise informacija samom programu:
Da vidimo kako izgleda .dfm fajl od TFrom1 (glavne forme):
object Form1: TForm1
Left = 96
Top = 134
Width = 700
Height = 403
HelpContext = 14
Caption = 'MPGScript'
Color = clYellow
Font.Charset = DEFAULT_CHARSET
Font.Color = clBlack
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
Menu = MainMenu1
ShowHint = True
//hrpa toga....
object pnlBtnSeparator: TPanel
Left = 421
Top = 0
Width = 3
Height = 23
BevelOuter = bvLowered
TabOrder = 2
end
//hrpa toga....
object btnTemplateDel: TButton
Left = 140
Top = 1
Width = 45
Height = 20
Hint = 'Delete current template'
Caption = '&Del'
Enabled = False
TabOrder = 3
OnClick = btnTemplateDelClick
OnMouseMove = pnlHotMouseMove
end
end
end
end
object tmrBlink: TTimer
OnTimer = tmrBlinkTimer
Left = 40
Top = 64
end
Dosli smo na nesto zanimljivo.. a to je TTimer komponenta na glavnoj formi, koja pri svakom intervalu poziva tmrBlinkTimer proceduru... a ta procedura se nalazi u programu na RVA: 00466574, ako pak pogledamo sta se tamo desava vidjet cemo:
00466574 . 8B90 A8020000 MOV EDX,DWORD PTR DS:[EAX+2A8]
0046657A . 807A 30 00 CMP BYTE PTR DS:[EDX+30],0
0046657E . 75 0A JNZ SHORT mpgscrpt.0046658A
00466580 . 8BC2 MOV EAX,EDX
00466582 . B2 01 MOV DL,1
00466584 E8 E7DEFBFF CALL mpgscrpt.00424470
00466589 . C3 RETN
0046658A > 8BC2 MOV EAX,EDX
0046658C . 33D2 XOR EDX,EDX
0046658E . E8 DDDEFBFF CALL mpgscrpt.00424470
00466593 . C3 RETN
Hmm.. zanimljivo, imamo 2 CALL-a, jedan koji ubacuje "Unregistred trial copy" u main menu, a drugi koji ga izbacuje ako postoji.. ako pogledamo gdje vodi prvi CALL vidjet cemo:
00424470 /$ 8850 30 MOV BYTE PTR DS:[EAX+30],DL
00424473 |. B2 01 MOV DL,1
00424475 |. 8B08 MOV ECX,DWORD PTR DS:[EAX]
00424477 |. FF51 28 CALL DWORD PTR DS:[ECX+28]
0042447A \. C3 RETN
A to je upravo ubacivanje u main menu, stoga trebamo NOPovat poziv tog prvog CALL-a tako da to izgleda:
00466574 . 8B90 A8020000 MOV EDX,DWORD PTR DS:[EAX+2A8]
0046657A . 807A 30 00 CMP BYTE PTR DS:[EDX+30],0
0046657E . 75 0A JNZ SHORT mpgscrpt.0046658A
00466580 . 8BC2 MOV EAX,EDX
00466582 . B2 01 MOV DL,1
00466584 90 NOP => ovo smo izmjenili
00466589 . C3 RETN
0046658A > 8BC2 MOV EAX,EDX
0046658C . 33D2 XOR EDX,EDX
0046658E . E8 DDDEFBFF CALL mpgscrpt.00424470
00466593 . C3 RETN
Spremimo promjene u .exe i pokrenemo programi vidimo da se ta poruka vise ne prikazuje... krenimo sada na onaj prvi iritirajuci dio (ona slika koja se pojavljuje pri pokretanju fajla mada ona ne mora imat veze s registracijom):
To je forma, a na formi slika, ime forme je TfrmSplash i ima 3 procedure, a to su:
Timer1Timer
FormCreate
Image1Click
Timer1Timer i Image1Click sluze za gasenje forme, a FormCreate za kreiranje
Njihove adrese redom su:00468434,00468478 i 00468558
Adresa na kojoj se kreira forma je:
00468867 . E8 CC20FCFF CALL mpgscrpt.0042A938 => 00468478 /. 55 PUSH EBP
Tu sad treba preusmjerit poziv na RET od poziva kreiranja te forme..
Sto se tice registracije.. lako je uocljiv ovaj dio koda:
0045F8C3 . 8B15 18A34600 MOV EDX,DWORD PTR DS:[46A318] ; mpgscrpt.0046B9B0
0045F8C9 . B9 06000000 MOV ECX,6
0045F8CE . E8 C541FAFF CALL mpgscrpt.00403A98
0045F8D3 . 8B85 84FEFFFF MOV EAX,DWORD PTR SS:[EBP-17C]
0045F8D9 . BA 58124600 MOV EDX,mpgscrpt.00461258
0045F8DE . E8 1543FAFF CALL mpgscrpt.00403BF8
0045F8E3 . 74 15 JE SHORT mpgscrpt.0045F8FA
0045F8E5 . 6A 00 PUSH 0 ; /Arg1 = 00000000
0045F8E7 . 66:8B0D 601246>MOV CX,WORD PTR DS:[461260] ; |
0045F8EE . B2 01 MOV DL,1 ; |
0045F8F0 . B8 6C124600 MOV EAX,mpgscrpt.0046126C ; |ASCII "You use old or invalid registration key.",CR,LF,"Please contact support."
0045F8F5 . E8 96A8FDFF CALL mpgscrpt.0043A190 ; \mpgscrpt.0043A190
Koji provjerava dal je kreiran mpgscrpt.key fajl, ako je i ako se podaci ne poklapaju izbacuje se msgbox "You use old or invalid registration key.", ... ako fajl nije kreiran poruka se zaobilazi.. tu cu sad stat jer ne zelim dalje jer mozda nesto i zaradjujes od tog programa.. a sve disabled kontrole je prelako enableovat!
Sve ovo u 3 i pol minute, samo zelim naglasit kako je sve lako!!
Samo sramota je da se tolko info moze dobit o samom fajlu... sa par klikova..fajl mora biti kompletno zasticen, od PE info fajlova, od debagera (ring0 i ring3) i svih ostalih stvari..
tolko od mene..
|