Torna indietro   Hardware Upgrade Forum > Software > Programmazione

 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
OPPO ha appena lanciato sul mercato la nuova serie Find X10, che ha come smartphone premium il Find X10 Pro Max, uno smartphone completo, che fa del comparto fotografico il suo vero punto di forza. Ma sono tante le novità, tra cui l'AI che adesso diventa agentica. Ma andiamo a vedere nel dettaglio questo nuovo smartphone.
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
Abbiamo provato la beta di World of Warcraft: Forever, il Classic+ di Blizzard in arrivo il 4 novembre: la nuova razza Skyborne restituisce la sensazione di un gioco nuovo, ma le zone storiche conservano la noia divertita di Classic. Classi ribilanciate, sciamani anche nell'Alleanza e un motore grafico che in 4K gira bene anche su una RTX 3070. Cosa cambia in Forever? La risposta nell'articolo
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita
TCL P80 Ultra abbina per la prima volta un pannello AMOLED alla tecnologia NXTPAPER con finitura opaca, affiancandoci una fotocamera periscopica da 50 MP con zoom ottico 3x, il SoC Dimensity 7400 Elite e una batteria da 5.800 mAh. Nella prova sul campo emergono luminosità di picco molto elevata, comparto fotografico solido per la fascia di prezzo e autonomia nella media, a fronte di velocità di scrittura dello storage piuttosto contenute
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-08-2011, 11:48   #1
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
[C/C++] Detecting Windows NT/2K process execution

Ciao,

sto seguendo questo esempio per capire come realizzare un driver molto simile, ma che oltre segnalare la creazione e l'arresto di un processo dia possibilità alla app. in user-space di decidere se eseguire o meno il processo stesso.

Non saprei come modificare la callback definita nel driver. Che io sappia, in base a ciò che la callback ritorna il processo viene eseguito o meno...

Avete dei suggerimenti?

Grazie.

Ultima modifica di Teo@Unix : 29-08-2011 alle 11:52.
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 29-08-2011, 12:23   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
Ciao,

sto seguendo questo esempio per capire come realizzare un driver molto simile, ma che oltre segnalare la creazione e l'arresto di un processo dia possibilità alla app. in user-space di decidere se eseguire o meno il processo stesso.

Non saprei come modificare la callback definita nel driver. Che io sappia, in base a ciò che la callback ritorna il processo viene eseguito o meno...

Avete dei suggerimenti?

Grazie.
Ciao, penso che basti implementare la callback (vedo che nell'esempio è definitia come un'interfaccia che la specifica user-application implementa come vuole) in modo che termini lei stessa il processo appena lanciato in base alla logica applicativa (ad esempio se il processo si chiama "notepad.exe" o altro).

Oppure potresti definire più di una singola callback da far implementare alle client application.
Cioè, nell'esempio c'è ne solo una che viene chiamata (OnProcessEvent) indifferentemente per tutti gli eventi (processo lanciato, terminato);
tu potresti crearne di specifiche, in particolare una apposta per i processi appena lanciati (che potresti chiamare OnProcessLaunched): chi è interessato a terminare i processi appena lanciati la implementerà con la sua logica particolare.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 29-08-2011, 15:52   #3
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
grazie,

Ma il driver posso lasciarlo invariato allora?
Hai delle info più dettagliate? Non ho mai usato gli eventi di windows tanto meno lavorato su driver...

Grazie mille.
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 29-08-2011, 16:21   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
grazie,

Ma il driver posso lasciarlo invariato allora?
Hai delle info più dettagliate? Non ho mai usato gli eventi di windows tanto meno lavorato su driver...

Grazie mille.
No, mi spiace, ne so quanto te (anzi, ho il fondato sospetto di saperne molto meno ). Ti ho detto quello che ti ho detto sulla base della mie poche conoscenze applicate alle informazioni racimolate dalla veloce lettura dell'articolo da te linkato.

Non ho però scaricato il codice dell'esempio allegato (mi sono quindi basato solo sugli stralci di codice pubblicati nella pagina), tu l'hai consultato? Imagino che con quello in mano puoi fare un confronto, una prova e magari copiarlo pari pari per creartene una copia modificata come pensi ti serva e fare dei test.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 29-08-2011, 20:43   #5
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Si in effetti sto facendo il debug del driver, almeno capisco meglio ... non è semplicissimo visto che driver per windows non ne ho mai fatti... e devo ingurgitare un sacco di info nuove...

Rimango della speranza che se modifico quello dovrei riuscire a fare quello che voglio... però è la user-app che deve determinare se eseguirlo o no e non posso permettermi di terminare il processo da user-space tramite PID, perchè significa eseguirlo comunque prima... devo bloccare prima che il processo venga eseguito.
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2011, 14:54   #6
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Credo che questa sia la soluzione migliore.
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2011, 10:18   #7
eraser
Senior Member
 
L'Avatar di eraser
 
Iscritto dal: Nov 2001
Città: Bastia Umbra (PG)
Messaggi: 6395
Ci sono svariati modi, il problema che ti poni tu è quello della comunicazione/notifica driver->user mode, è più complesso perché solitamente si affronta il contrario, cioè user mode->driver.

Soluzioni varie:

1) Comunicazione tra user mode e kernel mode tramite section condivise (shared sections), regolamentate da elementi di sincronizzazione

2) Abusare della FltSendMessage dei minifilter driver

3) LPC communication (http://www.zezula.net/en/prog/lpc.html), quindi NtListenPort/NtConnectPort/etc...etc...


Solitamente il metodo 3 è molto apprezzato, anche se il 2 è molto più semplice da implementare quando si utilizzano minifilter driver

Scusa se non ti ho risposto via e-mail, me la sono persa nel mare di e-mail
__________________
:: Il miglior argomento contro la democrazia è una conversazione di cinque minuti con l'elettore medio ::
eraser è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2011, 11:21   #8
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Grazie

In questi giorni stò provando ad usare il minifilter che Microsoft fornisce per la scansione, vedo che è già piuttosto completo... almeno per iniziare...

anche se da C++ ora ho un problema con FilterReplyMessage() che ritorna 0x800700ea ... tutti i miei thread danno quell'errore ..
anche se non mi sembra che questo impedisca il funzionamento corretto... l'unica cosa è che dal loro client di esempio scritto in C non succede...

tu hai qualche info al riguardo per caso?

EDIT:
cioè è importante che vada, perchè a quanto ho capito serve a informare il driver .... mmm

Ultima modifica di Teo@Unix : 01-09-2011 alle 11:30. Motivo: nessun motivo...
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2011, 11:30   #9
eraser
Senior Member
 
L'Avatar di eraser
 
Iscritto dal: Nov 2001
Città: Bastia Umbra (PG)
Messaggi: 6395
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
Grazie

In questi giorni stò provando ad usare il minifilter che Microsoft fornisce per la scansione, vedo che è già piuttosto completo... almeno per iniziare...

anche se da C++ ora ho un problema con FilterReplyMessage() che ritorna 0x800700ea ... tutti i miei thread danno quell'errore ..
anche se non mi sembra che questo impedisca il funzionamento corretto... l'unica cosa è che dal loro client di esempio scritto in C non succede...

tu hai qualche info al riguardo per caso?

EDIT:
cioè è importante che vada, perchè a quanto ho capito serve a informare il driver .... mmm
Prova a controllare le dimensioni dei buffer, perché potrebbe essere un problema di allocazione della memoria non sufficiente. Controlla lo status della FltSendMessage(), se è 0x80000005 (STATUS_BUFFER_OVERFLOW) significa che il buffer che stai utilizzando è troppo piccolo
__________________
:: Il miglior argomento contro la democrazia è una conversazione di cinque minuti con l'elettore medio ::

Ultima modifica di eraser : 01-09-2011 alle 11:32.
eraser è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2011, 15:22   #10
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Quote:
Originariamente inviato da eraser Guarda i messaggi
Prova a controllare le dimensioni dei buffer, perché potrebbe essere un problema di allocazione della memoria non sufficiente. Controlla lo status della FltSendMessage(), se è 0x80000005 (STATUS_BUFFER_OVERFLOW) significa che il buffer che stai utilizzando è troppo piccolo
Grazie, è esattamente così. ... C++ non è C

Ora devo implementare il driver ma vedo che già è settato per bloccare i file che la user-app segnala come positivi ai controlli... difatti facendo delle prove su file di testo funziona bene.

Da lato driver hai delle linee guida su cosa aggiungere? Dovrà essere assegnato ad un software anti-virus...
La soluzione adottata è già abbastanza intelligente... e credo sia molto meglio che controllare i processi all'esecuzione..

stò pensando che solitamente software antivirus fanno diverse azioni oltre il blocco dell'operazione in corso che c'è nell'esempio... immagino che dovrò ampliare le info che user-app e driver si scambiano... quindi le possibili azioni compiute dal driver, blocco, eliminazione, spostamento ... etc..
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2011, 20:58   #11
eraser
Senior Member
 
L'Avatar di eraser
 
Iscritto dal: Nov 2001
Città: Bastia Umbra (PG)
Messaggi: 6395
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
Grazie, è esattamente così. ... C++ non è C

Ora devo implementare il driver ma vedo che già è settato per bloccare i file che la user-app segnala come positivi ai controlli... difatti facendo delle prove su file di testo funziona bene.

Da lato driver hai delle linee guida su cosa aggiungere? Dovrà essere assegnato ad un software anti-virus...
La soluzione adottata è già abbastanza intelligente... e credo sia molto meglio che controllare i processi all'esecuzione..

stò pensando che solitamente software antivirus fanno diverse azioni oltre il blocco dell'operazione in corso che c'è nell'esempio... immagino che dovrò ampliare le info che user-app e driver si scambiano... quindi le possibili azioni compiute dal driver, blocco, eliminazione, spostamento ... etc..
Ma che stai facendo? Per curiosità

Quote:
quindi le possibili azioni compiute dal driver, blocco, eliminazione, spostamento ... etc..
La maggior parte di quello che hai detto può essere fatto tranquillamente in user mode. Evita di portare troppo in kernel mode, per quanto più possibile tieniti in user mode. Se hai poca esperienza di coding di driver in ambiente Windows, rischi molti BSOD
__________________
:: Il miglior argomento contro la democrazia è una conversazione di cinque minuti con l'elettore medio ::

Ultima modifica di eraser : 01-09-2011 alle 21:02.
eraser è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2011, 21:02   #12
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Un pezzo di un software anti-virus. Ovvero la parte che si interfaccia con il kernel in questo modo.
Naturalmente non è una roba per Symantec...
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2011, 21:07   #13
eraser
Senior Member
 
L'Avatar di eraser
 
Iscritto dal: Nov 2001
Città: Bastia Umbra (PG)
Messaggi: 6395
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
Un pezzo di un software anti-virus. Ovvero la parte che si interfaccia con il kernel in questo modo.
Naturalmente non è una roba per Symantec...
Capito, qualche nuova start up company che si vuole lanciare nel mondo degli antivirus?
__________________
:: Il miglior argomento contro la democrazia è una conversazione di cinque minuti con l'elettore medio ::
eraser è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2011, 21:13   #14
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Quote:
Originariamente inviato da eraser Guarda i messaggi
Capito, qualche nuova start up company che si vuole lanciare nel mondo degli antivirus?
Già , ma non so io, faccio giusto questo.
Sicuramente sono obiettivi ambiziosi. Ma tanto di cappello.
Per lo meno io ho opportunità di approfondire queste cose.
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2011, 21:18   #15
eraser
Senior Member
 
L'Avatar di eraser
 
Iscritto dal: Nov 2001
Città: Bastia Umbra (PG)
Messaggi: 6395
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
Già , ma non so io, faccio giusto questo.
Sicuramente sono obiettivi ambiziosi. Ma tanto di cappello.
Per lo meno io ho opportunità di approfondire queste cose.
Decisamente molto ambiziosi
__________________
:: Il miglior argomento contro la democrazia è una conversazione di cinque minuti con l'elettore medio ::
eraser è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2011, 21:23   #16
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Quote:
Originariamente inviato da eraser Guarda i messaggi
Decisamente molto ambiziosi
Alla fine tutto gioca sulle routine di pattern-matching immagino... bo sarei curioso di vederle...
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 01-09-2011, 22:59   #17
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
A una cosa... per fare il debug in kernel-mode cosa usi?
Io stò provando VisualDDK, l'unica cosa è che quando sono fermo su un break point e passo il mouse sopra una variabile da visualizzare crasha tutto l'ambiente, simpatico no?
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2011, 01:06   #18
eraser
Senior Member
 
L'Avatar di eraser
 
Iscritto dal: Nov 2001
Città: Bastia Umbra (PG)
Messaggi: 6395
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
Alla fine tutto gioca sulle routine di pattern-matching immagino... bo sarei curioso di vederle...
detta così è banalizzata al massimo È molto più di un semplice signature scan, ci sono tecnologie dietro veramente molto, molto, molto complesse. Senza considerare che anche parlare del semplice signature scanning richiede una notevole esperienza, non è un argomento così immediato e banale. Per questo mi arrabbio sempre quando le persone parlano di software antivirus definendoli come "programmi stupidi, che hanno una black list e se il virus è presente nella lista viene bloccato, sennò infetta il PC". Chi parla così non ha la minima idea di quale grado di complessità ci sia dietro un software antivirus. Per questo motivo iniziare da zero un antivirus è un progetto molto, molto ambizioso; non tanto per il lavoro di codice che c'è dietro - che è immenso - ma più che altro per l'esperienza necessaria che serve per affrontare al meglio l'argomento.

A scrivere un software che ti blocca i malware in base al loro hash MD5, beh, sono capaci tutti. Ma quelli difficilmente si possono chiamare antivirus. Scrivere un programma capace di individuare e riparare infezioni causate ad esempio da Virut, Parite, Polip, Tenga, Sality, quello sì che diventa un'impresa molto più ardua, che richiede una notevole esperienza di reverse engineering, assembly, conoscenza del funzionamento del sistema operativo e molto, molto altro.

Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
A una cosa... per fare il debug in kernel-mode cosa usi?
Io stò provando VisualDDK, l'unica cosa è che quando sono fermo su un break point e passo il mouse sopra una variabile da visualizzare crasha tutto l'ambiente, simpatico no?
Mai utilizzato VisualDDK. Il mio metodo? Molti DbgPrint e WinDbg sempre a portata di mano
__________________
:: Il miglior argomento contro la democrazia è una conversazione di cinque minuti con l'elettore medio ::

Ultima modifica di eraser : 02-09-2011 alle 01:13.
eraser è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2011, 07:28   #19
Teo@Unix
Senior Member
 
L'Avatar di Teo@Unix
 
Iscritto dal: Mar 2009
Messaggi: 753
Sono d'accordo.
Non conosco tali tecnologie, se non in via del tutto teorica... interessante. Anche secondo me si tratta di qualcosa di molto ambizioso... ma non conosco chi se ne stà occupando.

Grz dei consigli.
Teo@Unix è offline   Rispondi citando il messaggio o parte di esso
Old 02-09-2011, 10:35   #20
eraser
Senior Member
 
L'Avatar di eraser
 
Iscritto dal: Nov 2001
Città: Bastia Umbra (PG)
Messaggi: 6395
Quote:
Originariamente inviato da Teo@Unix Guarda i messaggi
Sono d'accordo.
Non conosco tali tecnologie, se non in via del tutto teorica... interessante. Anche secondo me si tratta di qualcosa di molto ambizioso... ma non conosco chi se ne stà occupando.

Grz dei consigli.
Di nulla In bocca al lupo allora
__________________
:: Il miglior argomento contro la democrazia è una conversazione di cinque minuti con l'elettore medio ::
eraser è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita TCL P80 Ultra: con un display AMOLED opaco &egra...
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
NVIDIA RTX Spark: il PC Windows on ARM costruito per l'IA agentica NVIDIA RTX Spark: il PC Windows on ARM costruito...
L'Air Force Research Laboratory ha utili...
L'ONU esprime preoccupazione per le oper...
OpenAI: GPT-6.1 Sol migra il COBOL all'8...
Cyberpunk 2077 porta le mod su console e...
Agenti di IA, per Akamai la sicurezza pa...
Non solo in Europa: Apple dovrà a...
iPhone Duo, il compromesso del display p...
Reolink OMVI 2i Ultra, la videocamera ib...
PowerToys 0.102: con un nuovo tool il mo...
Bose acquisisce Skullcandy per raggiunge...
I videogiochi di Star Wars dovranno sorp...
Cos'è Flint: l'AI locale per la programm...
Perplexity Computer ora gira offline sul...
LG lancia in Italia i nuovi laptop gram ...
Spotify dice addio ai vincoli di Android...
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: 00:08.


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