Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà
Un mondo affollato e vivo, personaggi destinati a sparire a fine test e nessuno a inseguire l'oggetto giusto. Beta e stress test di World of Warcraft: Forever hanno fatto emergere un roleplay spontaneo, tra danze a Goldshire e code ordinate ai PNG
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA
In tre giorni a Las Vegas Oracle ha presentato agenti che eseguono il lavoro, l'alleanza con OpenAI e un cloud aperto agli acceleratori di tutti. Ma i clienti europei chiedono garanzie prima ancora delle funzionalità
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort
Fino a 740 km WLTP con la batteria da 97,2 kWh, sospensioni che leggono la strada con una telecamera e un abitacolo da salotto parigino. La nuova DS N°7 raccoglie l'eredità della DS 7 e la porta, per la prima volta, nel mondo 100% elettrico. Ecco come è fatta, cosa offre e quanto costa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-01-2013, 22:42   #1
Taz83
Senior Member
 
L'Avatar di Taz83
 
Iscritto dal: Dec 2002
Città: Italia
Messaggi: 12363
Modificare una generica query aggiungendo o rimuovendo informazioni

Ho la necessità per ricerca, di implementare un qualche genere di strato INVISIBILE che intercetti le query sql rivolte ad un database (dbms) e che, a seconda di alcuni parametri interni, aggiunga o rimuova informazioni dalla query originale e alla risposta che il server fornisce alla query.

Esempio banale: query che chiede lo stipendio dell'utente pippo. Il layer intercetta la risposta del dbms e, se a richiedere le informazioni è stato l'utente pluto, deve far ritornare uno stipendio composto di soli 00000.

Ovviamente se potevo mettere il controllo direttamente lato server non esisteva neanche il problema

Qualche suggerimento su come implementare il tutto, esiste qualcosa di già pronto, magari opensource?

Vorrei evitare di scrivere tutto il layer tra utente e dbms a mano..

Grazie mille a chiunque volesse aiutarmi.
__________________
Vendo Canon 80D + Sigma 17-70mm f/2.8-4 DC OS HSM Macro C

Ultima modifica di Taz83 : 25-01-2013 alle 08:36.
Taz83 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 06:54   #2
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
intendi che vuoi intercettare i pacchetti diretti verso un dbms e quindi modificare il loro contenuto ?

Ultima modifica di misterx : 25-01-2013 alle 06:56.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 07:39   #3
Taz83
Senior Member
 
L'Avatar di Taz83
 
Iscritto dal: Dec 2002
Città: Italia
Messaggi: 12363
Quote:
Originariamente inviato da misterx Guarda i messaggi
intendi che vuoi intercettare i pacchetti diretti verso un dbms e quindi modificare il loro contenuto ?
ciao, se intercettando i pacchetti da e per il dbms posso estrapolare la query SQL e la riposta e modificarli allora si.
__________________
Vendo Canon 80D + Sigma 17-70mm f/2.8-4 DC OS HSM Macro C
Taz83 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 08:10   #4
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
non ho capito se puoi mettere le mani sul server e quindi ne sei l'amministratore oppure se devi simulare un attacco
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 08:32   #5
Taz83
Senior Member
 
L'Avatar di Taz83
 
Iscritto dal: Dec 2002
Città: Italia
Messaggi: 12363
Quote:
Originariamente inviato da misterx Guarda i messaggi
non ho capito se puoi mettere le mani sul server e quindi ne sei l'amministratore oppure se devi simulare un attacco
non mi sono spiegato benissimo, colpa mia hai ragione.. servirebbero pagine e pagine per entrare nei dettagli purtroppo

ho proprio bisogno di lasciare il server e rispettivo database/dbms cosi come sono, senza modifiche e sviluppare uno strato esterno tra utente e server che intercetti query e risposte e se necessario le modifichi in modo trasparente.
__________________
Vendo Canon 80D + Sigma 17-70mm f/2.8-4 DC OS HSM Macro C
Taz83 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 08:37   #6
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da Taz83 Guarda i messaggi
non mi sono spiegato benissimo, colpa mia hai ragione.. servirebbero pagine e pagine per entrare nei dettagli purtroppo

ho proprio bisogno di lasciare il server e rispettivo database/dbms cosi come sono, senza modifiche e sviluppare uno strato esterno tra utente e server che intercetti query e risposte e se necessario le modifichi in modo trasparente.
quindi sniffando pacchetti sulla rete giusto?
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 08:38   #7
Taz83
Senior Member
 
L'Avatar di Taz83
 
Iscritto dal: Dec 2002
Città: Italia
Messaggi: 12363
Quote:
Originariamente inviato da misterx Guarda i messaggi
quindi sniffando pacchetti sulla rete giusto?
sniffare diciamo che richiama un'azione illegale.. qui il software da sviluppare è legale ma deve essere invisibile ad utente e server..
__________________
Vendo Canon 80D + Sigma 17-70mm f/2.8-4 DC OS HSM Macro C
Taz83 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 08:40   #8
The_ouroboros
Senior Member
 
L'Avatar di The_ouroboros
 
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
Modificare pacchetti tcp e legalità sono soggetti che non vanno sempre a braccietto

Inviato dal mio HUAWEI U8825-1 con Tapatalk 2
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go
The_ouroboros è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 08:43   #9
Taz83
Senior Member
 
L'Avatar di Taz83
 
Iscritto dal: Dec 2002
Città: Italia
Messaggi: 12363
Quote:
Originariamente inviato da The_ouroboros Guarda i messaggi
Modificare pacchetti tcp e legalità sono soggetti che non vanno sempre a braccietto

Inviato dal mio HUAWEI U8825-1 con Tapatalk 2
non deve per forza essere a livello di rete e tcp..

lo strato potrebbe intercettare direttamente la query sul pc dell'utente ad alto livello.
__________________
Vendo Canon 80D + Sigma 17-70mm f/2.8-4 DC OS HSM Macro C
Taz83 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 08:49   #10
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
è passato un pò di tempo da quando ho avuto una necessità simile, ma credo che tu debba indagare come del resto avevo fatto io sugli hook di windows. Vado a memoria, devi usare funzioni del tipo GetMessage() et simila e poi comportanti di conseguenza. Poi devi implementare una tua libreria di collegamento.
Mi ricordo che non era troppo banale come genere di programmazione.

Ultima modifica di misterx : 25-01-2013 alle 08:53.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 09:57   #11
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da misterx Guarda i messaggi
è passato un pò di tempo da quando ho avuto una necessità simile, ma credo che tu debba indagare come del resto avevo fatto io sugli hook di windows. Vado a memoria, devi usare funzioni del tipo GetMessage() et simila e poi comportanti di conseguenza. Poi devi implementare una tua libreria di collegamento.
Mi ricordo che non era troppo banale come genere di programmazione.
In questo caso la cosa è molto più complicata.
Non bastano i tradizionali hook.
Per intercettare sul client le comunicazioni bisogna andare ad eseguire l'hook su api di sistema di send e receive su socket e modificarne il contenuto che queste ricevono o ritornano.
Il problema è che ogni DBMS ha il proprio protocollo di comunicazione generalmente binario (es SqlServer usa TDS) e, non ne conosco i dettagli, probabilmente bisognerà avere una libreria per rigenerare un pacchetto valido, perchè non è sicuramente sufficiente andare a modificare il contenuto ci saranno anche CRC o altro per controllare che il pacchetto sia valido.
Infine l'output anche lì bisogna spulciare il protocollo di comunicazione e andare a cambiare dei dati ma rigenerando un pacchetto valido.

Mi sembra una operazione troppo complessa da realizzare, tale da rendere l'hook delle api di windows la parte più facile...
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 10:01   #12
Taz83
Senior Member
 
L'Avatar di Taz83
 
Iscritto dal: Dec 2002
Città: Italia
Messaggi: 12363
Quote:
Originariamente inviato da tomminno Guarda i messaggi
In questo caso la cosa è molto più complicata.
Non bastano i tradizionali hook.
Per intercettare sul client le comunicazioni bisogna andare ad eseguire l'hook su api di sistema di send e receive su socket e modificarne il contenuto che queste ricevono o ritornano.
Il problema è che ogni DBMS ha il proprio protocollo di comunicazione generalmente binario (es SqlServer usa TDS) e, non ne conosco i dettagli, probabilmente bisognerà avere una libreria per rigenerare un pacchetto valido, perchè non è sicuramente sufficiente andare a modificare il contenuto ci saranno anche CRC o altro per controllare che il pacchetto sia valido.
Infine l'output anche lì bisogna spulciare il protocollo di comunicazione e andare a cambiare dei dati ma rigenerando un pacchetto valido.

Mi sembra una operazione troppo complessa da realizzare, tale da rendere l'hook delle api di windows la parte più facile...
e non è neanche il fine ultimo.. il layer sarebbe solo per testare un altro programma ancora.. praticamente impiegherei più a realizzare il layer che il programma vero e proprio..

dannata tesi phd...
__________________
Vendo Canon 80D + Sigma 17-70mm f/2.8-4 DC OS HSM Macro C
Taz83 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 10:08   #13
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da tomminno Guarda i messaggi
In questo caso la cosa è molto più complicata.
Non bastano i tradizionali hook.
Per intercettare sul client le comunicazioni bisogna andare ad eseguire l'hook su api di sistema di send e receive su socket e modificarne il contenuto che queste ricevono o ritornano.
Il problema è che ogni DBMS ha il proprio protocollo di comunicazione generalmente binario (es SqlServer usa TDS) e, non ne conosco i dettagli, probabilmente bisognerà avere una libreria per rigenerare un pacchetto valido, perchè non è sicuramente sufficiente andare a modificare il contenuto ci saranno anche CRC o altro per controllare che il pacchetto sia valido.
Infine l'output anche lì bisogna spulciare il protocollo di comunicazione e andare a cambiare dei dati ma rigenerando un pacchetto valido.

Mi sembra una operazione troppo complessa da realizzare, tale da rendere l'hook delle api di windows la parte più facile...
infatti mi ricordavo che non era affatto banale; sto guardando i miei sorgenti di quando avevo iniziato a studiare questa parte di windows che mi serviva e risalgono al 2002, quanto tempo.
Comporta la conoscenza di windows a basso livello. Io mi ero fermato ad intercettare qualche messaggio. Peccato che all'uni insegnino Minix in luogo di Windows

Lascio un link per chi lo desidera in modo che si sappia su cosa va a sbattere: http://pasotech.altervista.org/delphi/articolo60.htm
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 13:03   #14
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da misterx Guarda i messaggi
infatti mi ricordavo che non era affatto banale; sto guardando i miei sorgenti di quando avevo iniziato a studiare questa parte di windows che mi serviva e risalgono al 2002, quanto tempo.
Comporta la conoscenza di windows a basso livello. Io mi ero fermato ad intercettare qualche messaggio. Peccato che all'uni insegnino Minix in luogo di Windows

Lascio un link per chi lo desidera in modo che si sappia su cosa va a sbattere: http://pasotech.altervista.org/delphi/articolo60.htm
Le cose da Vista in poi si sono complicate ulteriormente le tecniche di hooking che funzionano su XP non funzionano più su Vista (e successivi).

Tra l'altro poi c'è sempre il rischio di essere sgamati da un antivirus
Il progetto che avevo realizzato qualche anno fa, ancora non viene beccato da nessun antivirus di quelli installati dai clienti
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 13:20   #15
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Le cose da Vista in poi si sono complicate ulteriormente le tecniche di hooking che funzionano su XP non funzionano più su Vista (e successivi).

Tra l'altro poi c'è sempre il rischio di essere sgamati da un antivirus
Il progetto che avevo realizzato qualche anno fa, ancora non viene beccato da nessun antivirus di quelli installati dai clienti
questa è una brutta notizia....

Questo 3D mi ha fatto comprendere che di questo argomento non mi ricordo più un tubo e ne avevo discusso proprio qui nel 2002

Per chi si vuole divertire http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 13:38   #16
Taz83
Senior Member
 
L'Avatar di Taz83
 
Iscritto dal: Dec 2002
Città: Italia
Messaggi: 12363
ok grazie veramente a tutti...

mi rassegno e cerco altri modi..
__________________
Vendo Canon 80D + Sigma 17-70mm f/2.8-4 DC OS HSM Macro C
Taz83 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 14:31   #17
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Taz83 Guarda i messaggi
ok grazie veramente a tutti...

mi rassegno e cerco altri modi..
Secondo me il modo corretto di procedere è utilizzare i permessi utenti lato server.
Ogni altro tentativo è una inutile complicazione che può smettere di funzionare da un momento all'altro.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 14:33   #18
Taz83
Senior Member
 
L'Avatar di Taz83
 
Iscritto dal: Dec 2002
Città: Italia
Messaggi: 12363
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Secondo me il modo corretto di procedere è utilizzare i permessi utenti lato server.
Ogni altro tentativo è una inutile complicazione che può smettere di funzionare da un momento all'altro.
sono un ricercatore non un programmatore, potresti cortesemente darmi una ditta piu' precisa?

grazie veramente.
__________________
Vendo Canon 80D + Sigma 17-70mm f/2.8-4 DC OS HSM Macro C
Taz83 è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 14:53   #19
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Secondo me il modo corretto di procedere è utilizzare i permessi utenti lato server.
Ogni altro tentativo è una inutile complicazione che può smettere di funzionare da un momento all'altro.

oppure i trigger sul database?
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-01-2013, 17:45   #20
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da Taz83 Guarda i messaggi
sono un ricercatore non un programmatore, potresti cortesemente darmi una ditta piu' precisa?

grazie veramente.
Beh con i permessi puoi stabilire che un utente non abbia accesso ad una tabella ma solo ad una vista che nasconde quella determinata colonna (oppure che ci mette 0 direttamente come valore), questo però dipende dal livello di controllo che hai sull'intero sistema.

Non capisco ad esempio perchè non potresti scrivere un layer costituito da Webservice con cui il software si interfaccia per accedere al db, a quel punto sul Webservice applichi tutte le logiche del caso.

Generalmente si fa così, evitando l'accesso diretto ai client verso il db. Tra l'altro è anche meglio dal punto di vista della sicurezza perchè hai un unico punto di accesso al Db (la macchina dove c'è il Ws).
tomminno è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
DS N°7 E-Tense: il SUV premium made in Melfi che punta su autonomia e comfort DS N°7 E-Tense: il SUV premium made in Melfi...
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
Gli USA dipendono dai robot stranieri: T...
Volkswagen non ha più soldi per l...
Telescopio spaziale Hubble: la NASA cerc...
Più sottile e potente: le nuove i...
Il JPL estende la vita operativa della s...
DAZN Full è in offerta: tutta la ...
GTA 6 su PC potrebbe arrivare prima del ...
Da zero al tracciato in secondi: LibreCo...
Il regista Rian Johnson lancia a 12,99 d...
Microsoft stravolge l'app Sicurezza di W...
Mercato smartphone in caduta libera: -20...
Android 17 QPR3 Beta 3 riporta il blocco...
Le 10 offerte TOP in Amazon del weekend:...
Dyson, doppio crollo su Amazon: purifica...
Il 70% delle imprese non vede effetti de...
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: 21:36.


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