FiFa-PhotoShop.FoRuMz.Ro
Doriți să reacționați la acest mesaj? Creați un cont în câteva clickuri sau conectați-vă pentru a continua.

FiFa-PhotoShop.FoRuMz.Ro

Totul despre Photoshop Counter Strike Fifa Ucl
 
AcasaUltimele imaginiCăutareÎnregistrareConectare

 

 Cum sa creezi un generator de coduri

In jos 
2 participanți
AutorMesaj
jeffreynerohardy
Administrator
Administrator
jeffreynerohardy


Numarul mesajelor : 176
Varsta : 29
STEAM : nu
Ce PS folositi? : Nu Folosesc PS
Avertismente :
Cum sa creezi un generator de coduri Left_bar_bleue3 / 1003 / 100Cum sa creezi un generator de coduri Right_bar_bleue

Concursuri Castigate :
Cum sa creezi un generator de coduri Left_bar_bleue0 / 1000 / 100Cum sa creezi un generator de coduri Right_bar_bleue

SOTW :
Cum sa creezi un generator de coduri Left_bar_bleue0 / 1000 / 100Cum sa creezi un generator de coduri Right_bar_bleue


Cum sa creezi un generator de coduri Empty
MesajSubiect: Cum sa creezi un generator de coduri   Cum sa creezi un generator de coduri EmptyMier Ian 21, 2009 10:51 pm

Target: Ad Muncher v4.4
URL: http://www.admuncher.com

The first thing to do is to open up Ad Muncher and find out what is going on and how it works. Then load up procdump and dump both the exe and the dll seperately. Look at the size of the exe and the dll, the exe is only a few kbytes, but the dll is much bigger (over a hundred kbytes) and has been packed with UPX. From this we can tell that the dll is the main program and the exe is a loader. Since we are doing this on-the-fly, we wont be needing Win32DASM, but if you do, then you can now disassemble the dumped files

Load up Ad Muncher, enter some bogus information. When you choose what bogus information to include, make sure it DOES NOT contain any characters by choice. This is because it will normally pass most checks on input characteristics. Also, if you were smart enough to actually READ the registration page first, you would have noticed this: 'Please enter your name and code below, the code consists of two hexadecimal numbers (ie: numbers 0-9 and letters A-F) joined with a dash.' Your serial you enter should be something like '012345-543210'. Then set a breakpoint with softice on GetWindowTextA, This means when you Click register, softice should popup. You should be in the middle of a GetDlgItemTextA call, so press F12 twice to return to Ad Muncher. If you didnt break, then you arent using Windows 2000 like i am, and you will have to just set a breakpoint on GetDlgItemTextA directly. Back in the Ad Muncher code, you should see something like this:
00751431 6A68 push 00000068
00751433 FF7508 push [ebp+08]
00751436 E80D0C0000 Call USER32.GetDlgItemTextA
0075143B 40 inc eax
0075143C A33C7A4B00 mov dword ptr [004B7A3C], eax

Disable your breakpoints with 'BD *' and then trace through the code with F10 till you find anything that looks interesting. By the term 'interesting' i mean any use of tables like 'mov ecx, [eax*4+005B8A1C]' or any loops that contain a 'LODSB' or 'LODSW'. Also you may want to look for stuff like 'xor ecx, ecx ; mov eax, [ecx + 005B8A1C] ; inc ecx'. You should come upto this after a minute of searching:
:loop
LODSB
ADD ECX, EAX
ROR ECX, 08
ADD ECX, EBX
CMP AL, 00
JNZ LOOP
NOT ECX

Now if you look at the start of this function and checkout esi you will find that it contatains your username and ebx holds '00012345'. Wow, the first half of our serial and our username Ad Muncher takes your serial, splits it in two, then moves the location of your username into esi, and sets the value of the first half of the serial in ebx. Next it takes a character from esi, starts a running total, rolls the register right 8h times, adds the first half of the serial in ebx to the total and then loops until all of the characters have been read. After this is NOT's the total to give the second half of the serial in ecx. To make a keygen all you have to do now is convert the routine into any language you choose and give it a little interface. You can now use Ad Muncher to create valid serials without any troubles at all, but it is better to have a seperate keygen, so have a go at making one, here is the one I created:
-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------

;Ad Muncher v4.4 Keygen by m101 for Phrozen Crew

.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

WinMain proto WORD,WORD,WORD,WORD

.data
ClassName db "SimpleWinClass",0
AppName db "Ad Muncher Keygen cracked by m101 for Phrozen Crew",0
ButtonText db "Generate Key",0
StartupString db "Please enter a name...",0
EditClassName db "edit",0
EditID equ 2
EditID2 equ 3
ButtonID equ 1
ButtonClassName db "button",0
IDM_GETTEXT equ 3
Serial2 db "FFFFFFFF"
Serial db "BADC0DE-"
buffer db 512 dup(?)



.data?
hInstance HINSTANCE ?
CommandLine LPSTR ?
hwndButton HWND ?
hwndEdit HWND ?
hwndEdit2 HWND ?
.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax
invoke GetCommandLine
mov CommandLine,eax
invoke WinMain, hInstance,NULL,CommandLine, SW_SHOWDEFAULT
invoke ExitProcess,eax

WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,CmdShowWORD
LOCAL wc:WNDCLASSEX
LOCAL msg:MSG
LOCAL hwnd:HWND
mov wc.cbSize,SIZEOF WNDCLASSEX
mov wc.style, CS_HREDRAW or CS_VREDRAW
mov wc.lpfnWndProc, OFFSET WndProc
mov wc.cbClsExtra,NULL
mov wc.cbWndExtra,NULL
push hInstance
pop wc.hInstance
mov wc.hbrBackground,COLOR_BTNFACE+1
mov wc.lpszMenuName,NULL
mov wc.lpszClassName,OFFSET ClassName
invoke LoadIcon,NULL,IDI_APPLICATION
mov wc.hIcon,eax
mov wc.hIconSm,eax
invoke LoadCursor,NULL,IDC_ARROW
mov wc.hCursor,eax
invoke RegisterClassEx, addr wc
INVOKE CreateWindowEx,WS_EX_CONTROLPARENT or DS_CENTER,ADDR ClassName,ADDR AppName,\
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
CW_USEDEFAULT,345,150,NULL,NULL,\
hInst,NULL
mov hwnd,eax
invoke ShowWindow, hwnd,SW_SHOWNORMAL
invoke UpdateWindow, hwnd
.WHILE TRUE
invoke GetMessage, ADDR msg,NULL,0,0
.BREAK .IF (!eax)
invoke TranslateMessage, ADDR msg
invoke DispatchMessage, ADDR msg
.ENDW
mov eax,msg.wParam
ret
WinMain endp

WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
.IF uMsg==WM_DESTROY
invoke PostQuitMessage,NULL
.ELSEIF uMsg==WM_CREATE
invoke CreateWindowEx,WS_EX_CLIENTEDGE, ADDR EditClassName,NULL,\
WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or\
ES_AUTOHSCROLL,\
50,20,240,25,hWnd,EditID,hInstance,NULL
mov hwndEdit,eax
invoke CreateWindowEx,WS_EX_CLIENTEDGE, ADDR EditClassName,NULL,\
WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or\
ES_AUTOHSCROLL or ES_READONLY,\
50,45,240,25,hWnd,EditID2,hInstance,NULL
mov hwndEdit2,eax
invoke SetWindowText,hwndEdit2,ADDR StartupString
invoke SetFocus, hwndEdit
invoke CreateWindowEx,NULL, ADDR ButtonClassName,ADDR ButtonText,\
WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON,\
80,75,180,25,hWnd,ButtonID,hInstance,NULL
mov hwndButton,eax
.ELSEIF uMsg==WM_COMMAND
mov eax,wParam
.IF lParam==0
.IF ax==IDM_GETTEXT
push edi
push esi
invoke GetWindowText,hwndEdit,ADDR buffer,512
mov ebx, 0BADC0DEh
lea esi, buffer
xor ecx,ecx

looksy:
lodsb
cmp al, 41h
jl looksy2
cmp al, 5Ah
jg looksy2
add al, 20h
looksy2:
add ecx,eax
ror ecx,08h
add ecx,ebx
cmp al, 0h
jnz looksy
not ecx
mov eax,ecx
mov [Serial2+3h],al
mov [Serial2+2h],ah
shr eax, 10h
mov [Serial2+1h],al
mov [Serial2],ah
lea esi, Serial2
xor ecx,ecx
converter:
xor ax,ax
lodsb
cmp ecx, 8h
jl conv2
xor al, dl
conv2:
shl ax, 4h
shr al, 4h
cmp al, 0ah
jl alpha
add al, 37h
jmp alphanumeric
alpha:
add al, 30h
alphanumeric:
cmp ah, 0ah
jl alphab
add ah, 37h
jmp alphanumericb
alphab:
add ah, 30h
alphanumericb:
mov [buffer+ecx], ah
inc ecx
mov [buffer+ecx], al
inc ecx
cmp ecx, 8h
jl converter
mov [buffer+ecx], 0h
invoke SetWindowText,hwndEdit2,ADDR Serial

pop esi
pop edi
.ELSE
invoke DestroyWindow,hWnd
.ENDIF
.ELSE
.IF ax==ButtonID
shr eax,16
.IF ax==BN_CLICKED
invoke SendMessage,hWnd,WM_COMMAND,IDM_GETTEXT,0
.ENDIF
.ENDIF
.ENDIF
.ELSE
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
ret
.ENDIF
xor eax,eax
ret
WndProc endp
end start

-------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------

There you have it, five minutes to find and work out the serial routine, another ten minutes for the keygen and youve created a keygen on-the-fly in fifteen minutes!
Sus In jos
FMGustas
Administrator
Administrator
FMGustas


Numarul mesajelor : 619
Varsta : 29
Localizare : GaLaTi
Joburi/Distractii : Counter Strike :X
Stare de spirit : Buna
STEAM : Nu...numi permit=))
Avertismente :
Cum sa creezi un generator de coduri Left_bar_bleue0 / 1000 / 100Cum sa creezi un generator de coduri Right_bar_bleue

Concursuri Castigate :
Cum sa creezi un generator de coduri Left_bar_bleue0 / 1000 / 100Cum sa creezi un generator de coduri Right_bar_bleue

SOTW :
Cum sa creezi un generator de coduri Left_bar_bleue0 / 1000 / 100Cum sa creezi un generator de coduri Right_bar_bleue


Cum sa creezi un generator de coduri Empty
MesajSubiect: Re: Cum sa creezi un generator de coduri   Cum sa creezi un generator de coduri EmptyMier Ian 21, 2009 11:07 pm

iar engleza Twisted Evil
Sus In jos
https://fifa-photoshop.forumgratuit.ro
jeffreynerohardy
Administrator
Administrator
jeffreynerohardy


Numarul mesajelor : 176
Varsta : 29
STEAM : nu
Ce PS folositi? : Nu Folosesc PS
Avertismente :
Cum sa creezi un generator de coduri Left_bar_bleue3 / 1003 / 100Cum sa creezi un generator de coduri Right_bar_bleue

Concursuri Castigate :
Cum sa creezi un generator de coduri Left_bar_bleue0 / 1000 / 100Cum sa creezi un generator de coduri Right_bar_bleue

SOTW :
Cum sa creezi un generator de coduri Left_bar_bleue0 / 1000 / 100Cum sa creezi un generator de coduri Right_bar_bleue


Cum sa creezi un generator de coduri Empty
MesajSubiect: Re: Cum sa creezi un generator de coduri   Cum sa creezi un generator de coduri EmptyMier Ian 21, 2009 11:12 pm

Target: Ad Muncher v4.4
URL: http://www.admuncher.com

Primul lucru care trebuie făcut este de a deschide Ad Muncher şi de a afla ce se întâmplă şi cum funcţionează. Apoi, încărcaţi până procdump şi dump atât exe şi dll separat. Uită-te la mărimea de exe şi dll, exe este de doar câteva kbytes, dar dll este mult mai mare (peste o sută de kbytes) şi a fost ambalate cu UPX. Din acest punct putem spune că dll este principalul program şi exe este un încărcător. Din moment ce vom face acest lucru on-the-fly, am obiceiul să fie nevoie de Win32DASM, dar dacă o faceţi, atunci puteţi acum dezasambla care fac obiectul unui dumping fişiere

Încărcaţi până Ad Muncher, introduceţi câteva informaţii fals. Când alegeţi ce informaţii fals, pentru a include, asiguraţi-vă că acesta nu conţine nici un fel de caractere de ales. Acest lucru se datorează faptului că în mod normal, vor trece cele mai multe controale cu privire la caracteristicile de intrare. De asemenea, dacă au fost de fapt destul de destept pentru a citi pagina de înregistrare în primul rând, ar trebui să fi observat acest lucru: "Vă rugăm să introduceţi numele dvs. şi codul de mai jos, codul hexazecimal este alcătuită din două cifre (de exemplu: număr de 0-9 şi litere AF) sa alăturat o cratimă. " Dvs. de serie pe care le introduceţi ar trebui să fie ceva de genul'012345-543210 ". Apoi, un set cu breakpoint SoftIce pe GetWindowTextA, aceasta înseamnă că atunci când faceţi clic pe registru, ar trebui să SoftIce popup. Ar trebui să fie în mijlocul unui GetDlgItemTextA apel, apăsaţi F12 astfel de două ori pentru a reveni la Ad Muncher. Dacă didnt pauza, atunci ai arent utilizaţi Windows 2000 ca eu sunt, şi va trebui doar să setaţi un breakpoint pe GetDlgItemTextA direct. Înapoi în Ad Muncher cod, ar trebui să vedeţi ceva de genul:
00751431 6A68 împinge 00000068
00751433 FF7508 împinge [ebp 08]
00751436 E80D0C0000 Call USER32.GetDlgItemTextA
0075143B 40 inc eax
0075143C A33C7A4B00 mov dword ptr [004B7A3C], eax

Dezactivaţi-vă breakpoints cu "BD * 'şi apoi urmă prin codul cu F10 pana sa gasesti ceva care pare interesant. Prin termenul "interesant" i spui orice utilizare de tabele ca "mov ecx, [eax * 4 005 B8A1C]" sau orice derivate care conţin un "LODSB" sau "LODSW". De asemenea, poate doriţi să uite pentru chestii de genul 'XOR ecx, ecx; mov eax, [ecx + 005B8A1C]; inc ecx ". Ar trebui să vină până la această după un minut de cautare:
: buclă
LODSB
ADAUGA ECX, EAX
ROR ECX, 08
ADAUGA ECX, EBX
CMP AL, 00
JNZ LOOP
NU ECX

Acum, dacă vă uitaţi la începutul acestei funcţii şi verificare ESI, veţi găsi că contatains numele de utilizator şi ebx deţine'00012345 '. Wow, în prima jumătate a noastră de serie si numele de utilizator Ad Muncher ia dvs. de serie, acesta pleacă în două, apoi se mută în locaţia de numele dvs. de utilizator în ESI, şi setează valoarea din prima jumătate a anului de serie în ebx. Înainte este nevoie de un caracter de la ESI, începe să fie difuzate total, role registrul dreptul 8h ori, adaugă în prima jumătate a anului de serie în ebx la total şi apoi până la buclele toate caracterele au fost citite. După ce acest lucru nu este scris în total pentru a oferi cea de-a doua jumătate a anului de serie în ecx. Pentru a efectua un keygen, tot ce trebuie să facem acum este conversia de rutină, în orice limbă pe care le alegeţi şi daţi-i un pic de interfaţă. Acum, puteţi folosi pentru a crea Ad Muncher valabil seriale fără nici necazurile, la toate, dar este mai bine pentru a avea un keygen separat, asa ca au un du-te la a face o, aici este o am creat:
-------------------------------------------------- -------------------------------------------------- ---------
-------------------------------------------------- -------------------------------------------------- ---------

; Ad Muncher v4.4 Keygen de m101 pentru Phrozen Crew

.386
. model plat, stdcall
opţiune casemap: none
include \ masm32 \ include \ windows.inc
include \ masm32 \ include \ user32.inc
include \ masm32 \ include \ kernel32.inc
includelib \ masm32 \ lib \ user32.lib
includelib \ masm32 \ lib \ kernel32.lib

WinMain proto Word, Word, Word, WORD

. de date
ClassName db "SimpleWinClass", 0
AppName db "Ad Muncher Keygen crăpate de m101 pentru Phrozen Crew", 0
ButtonText db "Generează cheie", 0
StartupString db "Vă rugăm să introduceţi un nume ...", 0
EditClassName db "Edit", 0
EditID EQU 2
EditID2 EQU 3
ButtonID EQU 1
ButtonClassName db "butonul", 0
IDM_GETTEXT EQU 3
Serial2 db "FFFFFFFF"
Serial db "BADC0DE-"
tampon db 512 dup (?)



. de date?
hInstance HINSTANCE?
Commandline LPSTR?
hwndButton HWND?
hwndEdit HWND?
hwndEdit2 HWND?
. codul
Start:
invoca GetModuleHandle, NULL
mov hInstance, eax
invoca GetCommandLine
mov commandline, eax
invoca WinMain, hInstance, NULL, commandline, SW_SHOWDEFAULT
invoca ExitProcess, eax

WinMain proc hInst: HINSTANCE, hPrevInst: HINSTANCE, CmdLine: LPSTR, CmdShowWORD
LOCAL wc: WNDCLASSEX
LOCAL msg: MSG
LOCAL hwnd: HWND
mov wc.cbSize, sizeof WNDCLASSEX
mov wc.style, CS_HREDRAW sau CS_VREDRAW
mov wc.lpfnWndProc, OFFSET WndProc
mov wc.cbClsExtra, NULL
mov wc.cbWndExtra, NULL
împinge hInstance
Pop wc.hInstance
mov wc.hbrBackground, COLOR_BTNFACE 1
mov wc.lpszMenuName, NULL
mov wc.lpszClassName, OFFSET className
invoca LoadIcon, NULL, IDI_APPLICATION
mov wc.hIcon, eax
mov wc.hIconSm, eax
invoca LoadCursor, NULL, IDC_ARROW
mov wc.hCursor, eax
invoca RegisterClassEx, addr wc
INVOKE CreateWindowEx, WS_EX_CONTROLPARENT sau DS_CENTER, ADDR className, ADDR AppName, \
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, \
CW_USEDEFAULT, 345150, NULL, NULL, \
hInst, NULL
mov hwnd, eax
invoca ShowWindow, hwnd, SW_SHOWNORMAL
invoca UpdateWindow, hwnd
. În timp ce TRUE
invoca GetMessage, ADDR msg, NULL, 0,0
. BREAK. If (! Eax)
invoca TranslateMessage, ADDR msg
invoca DispatchMessage, ADDR msg
. ENDW
mov eax, msg.wParam
ret
WinMain endp

WndProc proc hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM
. Dacă uMsg == WM_DESTROY
invoca PostQuitMessage, NULL
. Elseif uMsg == WM_CREATE
invoca CreateWindowEx, WS_EX_CLIENTEDGE, ADDR EditClassName, NULL, \
WS_CHILD sau WS_VISIBLE sau WS_BORDER sau ES_LEFT sau \
ES_AUTOHSCROLL, \
50,20,240,25, hWnd, EditID, hInstance, NULL
mov hwndEdit, eax
invoca CreateWindowEx, WS_EX_CLIENTEDGE, ADDR EditClassName, NULL, \
WS_CHILD sau WS_VISIBLE sau WS_BORDER sau ES_LEFT sau \
ES_AUTOHSCROLL sau ES_READONLY, \
50,45,240,25, hWnd, EditID2, hInstance, NULL
mov hwndEdit2, eax
invoca SetWindowText, hwndEdit2, ADDR StartupString
invoca SetFocus, hwndEdit
invoca CreateWindowEx, NULL, ADDR ButtonClassName, ADDR ButtonText, \
WS_CHILD sau WS_VISIBLE sau BS_DEFPUSHBUTTON, \
80,75,180,25, hWnd, ButtonID, hInstance, NULL
mov hwndButton, eax
. Elseif uMsg == WM_COMMAND
mov eax, wParam
. DACĂ lParam == 0
. DACĂ topor == IDM_GETTEXT
împinge EDI
împinge ESI
invoca GetWindowText, hwndEdit, ADDR tampon, 512
mov ebx, 0BADC0DEh
lea ESI, tampon
XOR ecx, ecx

looksy:
lodsb
CMP al, 41h
jl looksy2
CMP al, 5Ah
JG looksy2
adăuga al, 20h
looksy2:
adăuga ecx, eax
ror ecx, 08h
adăuga ecx, ebx
CMP al, 0h
jnz looksy
nu ecx
mov eax, ecx
mov [Serial2 3 h], al
mov [Serial2 2 h], ah
shr eax, 10h
mov [Serial2 1 h], al
mov [Serial2], ah
lea ESI, Serial2
XOR ecx, ecx
Convertor:
XOR AX, AX
lodsb
CMP ecx, 8h
jl conv2
Al XOR, dl
conv2:
shl ax, 4h
shr al, 4h
CMP al, 0ah
jl alfa
adăuga al, 37h
jmp alfanumerice
alfa:
adăuga al, 30h
alfanumerice:
CMP ah, 0ah
jl alphab
adăuga ah, 37h
jmp alphanumericb
alphab:
adăuga ah, 30h
alphanumericb:
mov [tampon + ecx], ah
inc ecx
mov [tampon + ecx], al
inc ecx
CMP ecx, 8h
jl Convertor
mov [tampon + ecx], 0h
invoca SetWindowText, hwndEdit2, ADDR Serial

Pop ESI
Pop EDI
. ELSE
invoca DestroyWindow, hWnd
. Endif
. ELSE
. DACĂ topor == ButtonID
shr eax, 16
. DACĂ topor == BN_CLICKED
invoca SendMessage, hWnd, WM_COMMAND, IDM_GETTEXT, 0
. Endif
. Endif
. Endif
. ELSE
invoca DefWindowProc, hWnd, uMsg, wParam, lParam
ret
. Endif
XOR eax, eax
ret
WndProc endp
sfârşitul începe

-------------------------------------------------- -------------------------------------------------- ---------
-------------------------------------------------- -------------------------------------------------- ---------

Nu-l aveţi, de cinci minute pentru a găsi şi de a lucra la serial de rutină, un alt zece minute pentru a keygen şi youve creat un keygen on-the-fly în cincisprezece minute!
Sus In jos
FMGustas
Administrator
Administrator
FMGustas


Numarul mesajelor : 619
Varsta : 29
Localizare : GaLaTi
Joburi/Distractii : Counter Strike :X
Stare de spirit : Buna
STEAM : Nu...numi permit=))
Avertismente :
Cum sa creezi un generator de coduri Left_bar_bleue0 / 1000 / 100Cum sa creezi un generator de coduri Right_bar_bleue

Concursuri Castigate :
Cum sa creezi un generator de coduri Left_bar_bleue0 / 1000 / 100Cum sa creezi un generator de coduri Right_bar_bleue

SOTW :
Cum sa creezi un generator de coduri Left_bar_bleue0 / 1000 / 100Cum sa creezi un generator de coduri Right_bar_bleue


Cum sa creezi un generator de coduri Empty
MesajSubiect: Re: Cum sa creezi un generator de coduri   Cum sa creezi un generator de coduri EmptyMier Ian 21, 2009 11:14 pm

asa mere Wink
Sus In jos
https://fifa-photoshop.forumgratuit.ro
Continut sponsorizat





Cum sa creezi un generator de coduri Empty
MesajSubiect: Re: Cum sa creezi un generator de coduri   Cum sa creezi un generator de coduri Empty

Sus In jos
 
Cum sa creezi un generator de coduri
Sus 
Pagina 1 din 1

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
FiFa-PhotoShop.FoRuMz.Ro :: • DIVERSE• :: Hacking Zone :: Turoriale-
Mergi direct la: