Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-08-2005, 19:15   #1
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
[VC6] domanda scema su __asm

come faccio a inserire dei bytes arbitrari in un blocco __asm in VC6? in altre parole, come faccio ad usare la pseudoistruzione DB? thx
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 20:13   #2
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da 71104
come faccio a inserire dei bytes arbitrari in un blocco __asm in VC6? in altre parole, come faccio ad usare la pseudoistruzione DB? thx
Una cosa è certa che le dll come volevi fare ti hanno bruciato il cervello!!!
questo vale come per le dll sono routine indipendenti.

dichiare la variabile in c
int a
int b ecc,ecc

poi vai a leggere gli indirizzi in asm (stai attento che)


__asm
{
xor eax,eax
xor edx,edx
mov edx, 201h
...
}


push si

xor ax,ax
/* joystick port */
mov dx,201h
okay è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 20:15   #3
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da 71104
come faccio a inserire dei bytes arbitrari in un blocco __asm in VC6? in altre parole, come faccio ad usare la pseudoistruzione DB? thx
Una cosa è certa che le dll come volevi fare ti hanno bruciato il cervello!!!
questo vale come per le dll sono routine indipendenti.

dichiare la variabile in c
int a=10;
int b= 20;
ecc,ecc

poi vai a leggere gli indirizzi tramite asm di a e b e poi ci fai le operazioni

//indirizzi o interrupts conosciuti hardware ecc,ecc

__asm
{
xor eax,eax
xor edx,edx
mov edx, 201h //indirizzo porta joy
... fai
}

ciao
okay è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 20:36   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
... eeeehmmmmmmm... ssssssi...
e in che modo tutto questo mi permette di inserire bytes arbitrari in un blocco __asm di Visual C++ 6, analogamente a come faccio in NASM con la pseudoistruzione DB?

PS: questa cosa non è per le DLL, è un altro progetto; in questo periodo mi dedico a due cose: l'affarone delle DLL e uno spyware; il blocco __asm mi serve nello spyware...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 20:52   #5
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da 71104
... eeeehmmmmmmm... ssssssi...
e in che modo tutto questo mi permette di inserire bytes arbitrari in un blocco __asm di Visual C++ 6, analogamente a come faccio in NASM con la pseudoistruzione DB?

PS: questa cosa non è per le DLL, è un altro progetto; in questo periodo mi dedico a due cose: l'affarone delle DLL e uno spyware; il blocco __asm mi serve nello spyware...
Non ti fa usare variabili dichiarate fuori dal blocco __asm ?

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 21:00   #6
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da 71104
... eeeehmmmmmmm... ssssssi...
e in che modo tutto questo mi permette di inserire bytes arbitrari in un blocco __asm di Visual C++ 6, analogamente a come faccio in NASM con la pseudoistruzione DB?

PS: questa cosa non è per le DLL, è un altro progetto; in questo periodo mi dedico a due cose: l'affarone delle DLL e uno spyware; il blocco __asm mi serve nello spyware...


i bytes arbitrari non li puoi inserire a meno che non crei (leggi bene) una dll c++ richiamata dall'exe c++ nella quale dll dichiari:
int a=20;
int b=30;
...e poi nella dll vai a leggere gli indirizzi in asm (stai attento che)


__asm
{
xor eax,eax
xor edx,edx
mov edx, 201h // indirrizzo porta joy
... fai

xor eax,eax
xor eax, 123h //indirizzo di b
add eax, 123h
}

nel blocco non puoi dichiarare variabili asm devi leggere i suoi indirizzi dichiarati dal c++ (il blocco è il c++)......... se vuoi dichiare variabili arbitrarie DB devi lavorare in asm (senza richiamare nulla) bravo magari con nasm.


viceversa per chiarirti le idee:
stessa cosa se fai un prg in asm proprio con nasm dichiari var con DB in un blocco o quanti segmenti vuoi e poi richiami da nasm una libreria c++ nella funzione in c/c++ puoi leggere l'indirizzo della var DB dichiarata da nasm e sommare il tutto nella funzione c ecco questo lo puoi fare e fare quello che vuoi (tecnica dei puntatori)

se tu vuoi fare questo:

__asm
{
DW "ciao amico",13,12
xor eax,eax
xor edx,edx
mov edx, 201h // indirrizzo porta joy
... fai

}

cambia mestiere e vai a fare l'apicoltore

ciao

p.s. è tutto un sistema di pale leve e carrucole..........
okay è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 21:19   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
scusa eh, ma adesso mi sono alquanto seccato: leggere i tuoi post è diventato inutile (sono degenerazioni assurde e pressoché incomprensibili e i tuoi errori ortografici/grammaticali di certo non aiutano, e te lo dico ben sapendo che evidenziare errori altrui è contro la netiquette), e ultimamente persino un po' (un po' molto) offensivo: "cambia mestiere e vai a fare l'apicoltore"? ma per piacere...
alla mia domanda non hai risposto: hai blaterato un sacco di assurdità (per essere precisi: ho trovato pochissime frasi sensate nel tuo ultimo post, e tutte non inerenti) e non mi hai detto come fare per inserire i miei poveri innocenti bytes arbitrari nel mio povero innocente blocco __asm (forse mi hai detto che non si può fare, ma non sono sicuro di aver capito bene in mezzo a quel degenerato macello grammaticale).
scusa se non mi soffermo a spiegarti esattamente come mai ho la necessità di inserire dei bytes arbitrari nel mio codice, ma lo farei volentieri se non fosse che sto per plonkarti.

*PLONK*
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 22:05   #8
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
ma per te è assurdo capire che non puoi inserire innocenti bytes arbitrari nel tuo povero innocente blocco __asm.

ti spiego una cosa:

__asm
{
...... questà è una funzione blocco asm
u can't put bytes here!!!!
}

questa funzione sopra è chiamata dal c (o volendo da qualche altro linguaggio [vb, c ecc, chiaramente con intestazione di blocco differente])

i tuoi bytes arbitrari li devi dichiarare in c e poi nel blocco __asm li puoi manipolare........

una cosa che puoi fare è questa:

__asm
{
push eax, 123h
pop eax

........but secondo te che senso ha fare questo?

}



i hope u understand me

bye bye PLONK

Ultima modifica di okay : 20-08-2005 alle 22:22.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2005, 23:37   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da VICIUS
Non ti fa usare variabili dichiarate fuori dal blocco __asm ?
si, me le fa usare, ma non c'entra nulla: io devo semplicemente fare in modo che a un certo punto nel mio codice ci stiano quei bytes, che non posso rappresentare con nessuna istruzione assembly: mi serve per forza DB.
DB non serve a dichiarare variabili, serve a "definire bytes", cioè fa esattamente quello che dovrei fare io; e comunque anche se il VC non mi permettesse di accedere a variabili dichiarate fuori potrei sempre accedervi con l'apposito indirizzo, ammesso di conoscerlo (ad es. [EBP+N] per quelle locali).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 21-08-2005, 00:09   #10
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da 71104
DB non serve a dichiarare variabili, serve a "definire bytes", cioè fa esattamente quello che dovrei fare io
Define Byte DB 8 0 255


sei confuso DB (definire bytes) è come dire dichiarare (definire) variabili
in c o altri linguaggi alti.

Quando si lavora con i linguaggi di alto livello, si ha l'impressione che i relativi compilatori ed interpreti siano in grado di distinguere tra diversi tipi di dati

in c dichiari (definisci) variabili così:
signed char c1 = 32;
signed short int i1 = -1280;
unsigned short int i2 = 39800;
unsigned short int vi[10];
float f1 = 3.14;
char vstr[] = "Stringa alfanumerica";

Nel momento in cui il codice sorgente viene tradotto in codice macchina, questa distinzione scompare infatti, la CPU è in grado di maneggiare esclusivamente numeri binari, e non ha la più pallida idea di cosa sia un numero reale, una stringa, una lettera dell'alfabeto, etc.

In relazione alla fase di definizione di un qualsiasi dato statico, la CPU ha bisogno di conoscere tre informazioni fondamentali che sono:

* l'offset
* l'ampiezza in bit
* il contenuto iniziale

in asm

Variabile1 DW 2F8Dh

Quando l'assembler incontra questa linea all'interno di segmento, capisce che in quel preciso punto, cioè in quel preciso offset interno al segmento, deve riservare uno spazio pari a 16 bit da riempire con il valore iniziale 2F8Dh. Nel momento in cui il programma viene caricato in memoria, in corrispondenza dell'offset interno a segmento, individuato dal nome Variabile1, sarà presente una locazione da 16 bit contenente il valore iniziale 2F8Dh; questa locazione potrà quindi essere utilizzata nelle istruzioni, come operando di tipo Mem.
we can write anche:

PesoNetto DW (2 + 181) - 4 + (6 * (10 / 5))

L'importante è che l'espressione inizializzante sia formata esclusivamente da valori immediati; questa espressione, infatti, deve essere risolta dall'assembler in fase di assemblaggio del programma.

Se non vogliamo specificare (DEFINIRE oppure DICHIARARE un valore iniziale, possiamo scrivere:

Variabile1 DW ?

tutti i dati statici sono così definiti

Quote:
e comunque anche se il VC non mi permettesse di accedere a variabili dichiarate fuori potrei sempre accedervi con l'apposito indirizzo, ammesso di conoscerlo (ad es. [EBP+N] per quelle locali).
....bravo adesso sei okay
l'indirizzo se c'è l'hai definito dichiarato oppure specificato lo conosci sempre

Ultima modifica di okay : 21-08-2005 alle 00:12.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 21-08-2005, 00:11   #11
Mark0
Senior Member
 
L'Avatar di Mark0
 
Iscritto dal: Dec 2001
Messaggi: 356
Quote:
Originariamente inviato da 71104
come faccio a inserire dei bytes arbitrari in un blocco __asm in VC6? in altre parole, come faccio ad usare la pseudoistruzione DB? thx
Questo lo puoi mettere senz'altro in un blocco __asm {}
Codice:
__asm __emit 0fh __asm __emit 031h
Per fare un RDTSC, ad esempio.
Se ho capito quello che intendevi.

Bye!
Mark0 è offline   Rispondi citando il messaggio o parte di esso
Old 21-08-2005, 18:55   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Mark0
Questo lo puoi mettere senz'altro in un blocco __asm {}
Codice:
__asm __emit 0fh __asm __emit 031h
grande!! finalmente quello che cercavo!!
grazie mille per l'informazione, non conoscevo __emit

Quote:
Per fare un RDTSC, ad esempio.
Se ho capito quello che intendevi.
in realtà no; quello che intendevo fare era scrivere codice fasullo che venisse saltato da un JMP short incondizionato; mi serve per ingannare i disassemblatori offuscando il codice:
Codice:
EB01: JMP $+1
E8: DB E8h
xxxx: xxxx
generalmente un disassemblatore dopo aver letto il JMP leggerà un CALL, che però non esiste; leggendo il CALL però disallinea tutto il codice e non riesce a leggere più nulla
questo è quello che ho scritto:
Codice:
__asm {
	__emit 0xEB
	__emit 0x01
	__emit 0xE8
}
e funziona alla grande

ciao
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 21-08-2005, 18:58   #13
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da 71104
e funziona alla grande
LOL, oltrettutto per un caso il codice della funzione che voglio offuscare mi si riallinea proprio al punto giusto!
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 01:57   #14
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
71104....io non so ne ho la minima idea di cosa tu parli ma di una cosa sono sicuro! voglio il tuo numero di cellulare,mi dici il prezzo delle lezioni e corro a Roma dove tu mi farai da insegnante nel campo della programmazione!! XD!!
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 14:18   #15
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da RaouL_BennetH
71104....io non so ne ho la minima idea di cosa tu parli ma di una cosa sono sicuro! voglio il tuo numero di cellulare,mi dici il prezzo delle lezioni e corro a Roma dove tu mi farai da insegnante nel campo della programmazione!! XD!!
<ot>credo di essere l'unica forma vivente della Terra a non avere il cellulare... mi rifiuto di averlo, è l'immagine del vizio, rappresenta un consumismo sfacciato. non lo dico tanto per rispetto nei confronti dei paesi poveri (dei quali non me importa un fico secco, senza contare che privarsi del cellulare per rispetto dei negretti secchi col pancione avrebbe poco senso), lo dico perché noi italiani siamo un popolo di benemeriti... indovina un po' cosa? siamo estremamente viziati e grandi consumatori; i ragazzi d'oggi hanno quei cessi di macchinette di bassa cilindrata già a 14 anni... mi vien da vomitare quando penso a queste cose (e anche quando vedo una di quelle schifosissime macchinette) </ot>

Ultima modifica di 71104 : 22-08-2005 alle 14:20.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 14:32   #16
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ignorando temporaneamente il plonk, vorrei chiedere un'ultima cosa a okay: secondo te a che serve __emit nel Visual C++ visto che secondo te i bytes arbitrari nel codice assembly non ce li posso mettere?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 15:09   #17
Mark0
Senior Member
 
L'Avatar di Mark0
 
Iscritto dal: Dec 2001
Messaggi: 356
Quote:
Originariamente inviato da 71104
in realtà no; quello che intendevo fare era scrivere codice fasullo che venisse saltato da un JMP short incondizionato; mi serve per ingannare i disassemblatori offuscando il codice:
Ah, OK, ottimo. Avevo citato l'esempio dell'RDTSC solo perchè un uso comune di __emit è quello di "forzare" alcuni opcode non supportati dal compilatore / assemblatore. Ma naturalmente va bene per qualsiasi altra cosa venga in mente!

Bye!
Mark0 è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 23:02   #18
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da 71104
ignorando temporaneamente il plonk, vorrei chiedere un'ultima cosa a okay: secondo te a che serve __emit nel Visual C++ visto che secondo te i bytes arbitrari nel codice assembly non ce li posso mettere?
meno male che hai postato nei miei riguardi, pensa che, stavo aspettando che ti rivolgessi proprio a me in quanto avevo intenzione di cambiare nick e riscrivermi.

Proprio oggi pomeriggio stavo congetturando su questo 3d e ho pensato che è una cosa che non sapevo e cmq ho interpretato male (probabilmente anzi ne sono sicuro) perchè posti le domande che a leggerti sembra scontato una cosa appunto banale. Probabilmente questa banalità mi ha fatto rispondere frettolosamente (anche forse per altri tuoi 3d simili, nel senso che non tutti in questo forum capiscono al volo, nel senso che i tuoi 3d invece sono argomenti quasi futuri)... spero di essermi spiegato.

Un'altra cosa è che ho pensato........ accidenti se fà e capisce di queste cose ammazza è proprio forte.

in definitiva sei forte ed è una cosa che non pensavo si potesse fare. Tanti anni fà mi hanno detto che col computer si può fare di tutto e oggi confermo che è vero.

che dire ...... sei forte cmq bravo anche Mark0

p.s. tx per l'attenzione ora posso tenere il mio nick

ciao

Ultima modifica di okay : 22-08-2005 alle 23:06.
okay è offline   Rispondi citando il messaggio o parte di esso
Old 22-08-2005, 23:16   #19
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da Mark0
Ah, OK, ottimo. Avevo citato l'esempio dell'RDTSC solo perchè un uso comune di __emit è quello di "forzare" alcuni opcode non supportati dal compilatore / assemblatore. Ma naturalmente va bene per qualsiasi altra cosa venga in mente!

Bye!
ma tu usi vc6 o vs net dove si può sempre lavorare con c++.

ho studiato asm con tasm 5.0 lavorando sempre a 16bit in modo dos.
Non ho mai adoperato i blocchi asm nel vc6 ovvero ci ho provato ma mi crashava la finestra probabilmente il sistema di win98SE che ho io è a 32 bit mentre il compilatore vc6 lavora a 32 bit e mettendo i blocchi __asm con istruzioni ex mi crashava sempre la finestra dos a blocchi asm__ con eax non l'ho provato.

quello che facevo era un blocco asm__ per entrare in modo video le solite 2 righe di codice asm partiva in fullscreen poi mi crashava con schermata blu.

domanda: tu invece con vc6 riesce ad immettere e lavorare con blocchi asm__ sia con registri a 16 bit che eax a 32bit?

ciao
okay è offline   Rispondi citando il messaggio o parte di esso
Old 23-08-2005, 01:38   #20
Mark0
Senior Member
 
L'Avatar di Mark0
 
Iscritto dal: Dec 2001
Messaggi: 356
Quote:
Originariamente inviato da okay
ma tu usi vc6 o vs net dove si può sempre lavorare con c++.
Veramente non uso abitualmente nessuno dei due, ma è un altro discorso!

Quote:
[...]
domanda: tu invece con vc6 riesce ad immettere e lavorare con blocchi asm__ sia con registri a 16 bit che eax a 32bit?
Non sono sicuro di aver capito cosa intendi - è tardi e tra un po' comincerò ad avere sonno!
Però di sicuro si possono mescolare istruzioni tipo:
Codice:
MOV CX, MyInt16var 
ADD ECX, ECX
MOV AX, [ECX]
Bye!
Mark0 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Numeri da record, Xiaomi distribuisce ol...
BitLocker accelerato via hardware: Micro...
Blue Origin prosegue lo sviluppo dei lan...
Moore Threads: nuove GPU 15 volte pi&ugr...
Steam diventa esclusivamente 64-bit: Val...
La Corte Suprema restituisce a Elon Musk...
X lancia Creator Studio su mobile: nuovi...
Dieci anni fa SpaceX fece atterrare per ...
POCO M8 e M8 Pro arriveranno nel 2026: e...
Caos Formula 1: il motore Mercedes &egra...
Tariffe nazionali per le chiamate e gli ...
Tassa chilometrica non solo per elettric...
FSR 4 su Radeon RX 5000, 6000 e 7000? Li...
Quanti alberi ci sono in Skyrim? In The ...
Pocket Max, la nuova console Mangmi punt...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 17:45.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v