Skip to content

Da isi il formato plain text scarica


  1. Care este tipul de cameră preferat?
  2. dove posso scaricare il simulatore tagadà e altre giostre? | Yahoo Answers
  3. Breve guida all’uso delle banche dati bibliometriche – ppt scaricare
  4. DA ISI IL FORMATO PLAIN TEXT SCARICA

Come importare i dati da Web of Science sul Sito docente Dalla successiva finestra “Send to file” selezionate, a fianco di “File format”, la voce “Plain text”. Tornate alla pagina “Pubblicazioni” del Sito docente e cliccate su “ISI – Web of. Download "Importare da Sito Docente MIUR, PubMed, Web of Knolwdge (ISI), ecc. selezionare il file da importare, il formato (BibTeX, per il sito docente MIUR ); 6 Esempio di come importare da Web of Knowledge (ISI) a) Accedere a Web of pagina ed esportare i risultati selezionando dalla tendina Save to Plain Text . ISI Web of Science e Scopus Ezio Tarantino Area InfoSapienza (2) al salvataggio (in formato testo) dell'elenco delle proprie pubblicazioni Tornare alla su SAVE FILE, dopo aver selezionato, dal menu a tendina, l'opzione “Plain text ”. SCARICARE DA ISI IL FORMATO PLAIN TEXT - E' possibile importare 20 pubblicazioni alla volta a. File Extensions Libreria di estensione dei.

Nome: da isi il formato plain text scarica
Formato: Fichier D’archive
Sistemi operativi: iOS. Android. Windows XP/7/10. MacOS.
Licenza: Solo per uso personale
Dimensione del file: 32.84 Megabytes

This banner text can have markup. Search the history of over billion web pages on the Internet. Centinaia di iscritti al forum già nelle prime settimane di vita ed una partecipazione superiore ad ogni aspet- tativa. Molti degli autori di ioProgrammo sono stati coinvolti nell'impresa e la comunità che si sta raccogliendo attorno al sito sembra davvero entusiasta, oltre che numerosa.

Pressoché tutti i quesiti tecnici posti sul forum hanno trovato una risposta in poche ore, sia grazie agli autori della rivista sia per l'adesione spontanea di molti lettori che hanno trovato in ioProgrammo. Inutile nascondere che anche per noi della redazione il sito si sta rivelando di gran- de utilità: l'immediato feedback ai contenuti della rivista si è dimostrato pre- zioso e, per il futuro, non dubito che qualche nuovo collaboratore sarà scelto fra i partecipanti più attivi del forum.

La prima è la linea di richiesta: è composta dal metodo, URI della risorsa e versione del protocollo. Il metodo di richiesta, per la versione 1. POST : è usato di norma per inviare informazioni al server ad esempio i dati di un form. HEAD : funziona come il metodo GET , ma nella risposta vengono specificati solo gli header e non il corpo del messaggio. PUT : questo metodo richiede che il contenuto del messaggio venga memorizzato nella posizione specificata dalla URI.

OPTIONS : richiede al server di fornire informazioni sulle opzioni di comunicazione disponibili per la risorsa specificata.

Le linee successive a quella di richiesta sono gli header http. Gli header sono nella forma:. Di seguito sono riportati alcuni header di uso comune per il messaggio di richiesta. Per una lista completa rimandiamo alle specifiche del W3C. Il codice di stato è un numero a tre cifre classificabile come segue:. Per la lista completa rimandiamo al sito del W3C. Non si tratta di un errore, i browser compatibili cercheranno la nuova pagina.

A seguire la linea di risposta ci sono gli header opzionali, come per la richiesta che forniscono utili informazioni sui dati contenuti nel body tipo, lunghezza , sul server che l'ha costruita, sul file richiesto data di ultima modifica. Come per gli header di richiesta, segue una lista non esaustiva degli header più comunemente utilizzati:.

Dopo gli headers c'è una linea vuota a separare i dati opzionali, come per la Richiesta. Provare ad accedere tramite curl ai siti www. In output potete analizzare il tracciato delle richieste e delle risposte HTTP, mentre nei file w3c. Provare ora a modificare il comando curl per eliminare dalle richieste l'header "Host", consultando la documentazione di curl per capire come fare.

La difficoltà è insita nell'o- perazione di scomposizione in fattori di n che è un nu- mero grandissimo. Se si riuscisse ad analizzare la fat- torizzazione di n si potrebbero individuare i due nu- meri p e q e conseguentemente m, essendo nota e, an- che d si potrebbe dedurre, ma come detto tale opera- zione è talmente complessa da poterla definire "oggi" quasi impossibile.

I calcoli di Rivest dicono che la fat- torizzazione di un numero con cifre richiederebbe anni!! In definitiva vi sono due chiavi, una del trasmettitore che deve essere privata e che nel caso specifico è d, mentre è pubblica la chiave e in alcuni casi si considera pubblica la coppia e,n appartenente al destinatario.

A scopo puramente didattico facciamo un esempio sull'uso del metodo RSA. Per fare una prova, per semplicità di calcolo non considereremo chiavi che rispetteranno le specifiche del metodo, ov- vero che siano dell'ordine di , ma saranno nume- ri molto piccoli, per poter fare i conti con maggiore agio. Ho fatto qualche prova che mi consentisse di individuare numeri "giusti". A P corrisponde il codice della 'e' ovvero 3. Per la lettera 'e' il cui codice crittografato vale 73 la poten- za Cd vale cifra più cifra meno scherzo il calcolo è esatto il cui mo- dulo di 11 è proprio Mi limito ad una breve presentazio- ne dei più importanti.

Fu pro- gettato nel da X. Il funzionamento per linee generali, è simi- le al DES anche se va detto che la progettazione di ta- le metodo, a contrario di DES, che fu ideato in un pri- mo momento come dispositivo hardware fu da subi- to di tipo software.

Care este tipul de cameră preferat?

La chiave è di lunghezza di bit, il testo in chiaro viene suddiviso in blocchi da 64 bit che a loro volta vengono spezzettati in mini blocchi da 16 bit. Ogni mini blocco subisce otto round su cui ven- gono applicate 52 diverse sottochiavi da 16 bit, otte- nute dalla chiave primaria da bit. I round si rea- lizzano con operazioni come XOR, addizione e molti- plicazioni. La decrittazione è l'operazione inversa che permette, a partire dalla chiave di crittazione, di otte- nere il testo in chiaro dal cipher text.

Altri metodi sono RC2 ed il suo successore RC4 entrambi ideati da Ron Rivest, per questi algoritmi la lunghezza delle chiavi è variabile.

Maggiore sicurez- za si ha naturalmente per chiavi di lunghezza mag- giore a scapito della velocità di elaborazione; come TDES che realizza una tripla crittazione.

Atri metodi degni di nota sono: Blowfish realizzato da B. Schneier che genera chiavi di lunghezza variabile fino a bit a partire da blocchi di 64 bit tale metodo è considera- to tra i più sicuri in circolazione ; e Skipjack che, se- condo alcune voci, dovrebbe essere il sostituto di DES per le applicazioni del governo degli Stati Uniti.

Que- sto ultimo, come i metodi citati precedentemente, crit- tografa blocchi di testo di 64 bit con chiavi da 80 bit. Non si hanno altre notizie su di esso dato che è sotto l'esame del governo americano e della NSA.

Safer è stato prodotto da Massey la chiave è a bit. Attraverso una funzio- ne hash viene associato ad un testo di lunghezza qual- siasi una stringa. In altri termini il testo, prima di essere trasmesso dal mittente al ricevente, viene sottoposto a una funzione One way hash, si ottiene quindi una stringa di lunghezza relativamente picco- la che viene associata al testo da trasmettere ad esem- pio di byte.

Alla ricezione del messaggio, si sot- topone il testo pervenuto alla stessa funzione, se la stringa ottenuta è la stessa di quella di partenza vuol dire che tutto è andato per il meglio, altrimenti il testo è stato manipolato oppure, nella trasmissione, per problemi tecnici, ha subito variazioni.

Quindi oltre che l'autenticità viene controllata anche l'integrità del testo trasmesso. Va detto che come tutte le funzioni hash, non è reversibile, ovvero non è possibile perve- nire al testo in chiaro dalla stringa ottenuta come out- put della funzione da qui "one way". La firma digitale è un procedimento algoritmico che con- sente di legare un documento digitale al suo legittimo proprietario, attua la one way hash.

E una della mag- giori applicazioni della crittografia a chiave pubblica. Interessanti sono i risvolti legi- slativi. Per le leggi italiane le firme digitali vanno con- validate da un organo apposito, Certification authority che rilascia un certificato digitale.

Ovviamente, rigo- rosi sono i controlli per garantire la corrispondenza biunivoca tra la persona fisica e la chiave pubblica. Ad ogni modo, al termine di que- sta "filiera" di tre articoli, penso che tutti abbiamo raggiunto una visione più chiara ed approfondita cir- ca la sicurezza informatica. Le possibilità per approfondire, tanto su web, quanto su tradizionali libri sono molteplici, per cui non mi resta che salutarvi e attendere il prossimo appunta- mento.

Giustozzi, A. Monti, E. Fé r rag ina, F. In questo articolo ci occuperemo del reverse engineering applicato ai programmi e scopriremo quali sono le tecniche più utilizzate per violare le protezioni. Tutti questi scenari, molto diversi tra loro, rappresen- tano oggi le applicazioni consuete delle tecniche di re- verse engineering e sono tutti accomunati da un mo- dello di studio identico: si parte da uno schema black- box del sistema da analizzare, considerato come una scatola chiusa e totalmente sconosciuta, da cui si cerca, con ogni mezzo e con diversi espedienti, di estrarre e conoscere quante più informazioni possibili su di esso, fino a capire i meccanismi e le leggi che lo governano, cosa che permette di predire il comportamento del si- stema o addirittura di indirizzarlo a proprio piacimen- to.

Rileggendo queste ultime righe sembra quasi di ci- tare i trattati sulla sperimentazione scientifica di Gali- leo Galilei redatti circa quattro secoli fa : l'osservazio- ne del fenomeno, l'ipotesi, la descrizione matematica e l'esperimento finale.

Non sono forse queste le stesse fa- si di un processo di retro-ingegneria? Siamo infatti giunti al paradosso della stupidità, con le ultime leggi approvate in materia di copyright vedi DMCA ameri- cano e il recente EUCD : la colpa delle insicurezze di un sistema è di chi le scopre attraverso il reverse engi- neering e non di chi ha progettato male il sistema A questo punto tanto vale dire che se Newton avesse brevettato la sua famosa legge di gravitazione, oggi saremmo tutti costretti a pagare le royalty.

E' forse questo un reato? Terminiamo qui le disquisizioni di carattere etico sul problema, con le quali potremmo riempire tutte le pagine di questa rivista, e spostiamo invece la nostra attenzione su un'altra domanda che molti si pongono: "perché?

La parte tecnica di questo articolo sarà divisa in tre diverse sezioni: nella prima presente- remo i tool e i programmi utilizzati comunemente dai cracker per violare le protezioni e illustreremo come ci si difende da questi; nella seconda saranno invece pre- sentate alcune nozioni di base sull'uso del debugger e infine nella terza parte si passerà alla pratica, cercando di mettere a frutto le conoscenze acquisite.

Sia chiaro non violeremo certo la protezione di alcun software commerciale, ma ci limiteremo a scrivere alcuni listati di esempio CRACKME sui quali esercitarci nelle ope- razioni di reverse engineering. Come ogni "professio- nista" che si rispetti, anche il reverse engineer ha le sue armi, i suoi trucchi e i "ferri" del mestiere.

Per co- modità conviene catalogare i programmi usati nel re- verse engineering del software in sei grandi categorie, di seguito riportate con una breve descrizione dei compiti e delle funzionalità di ogni tipologia: 1 Analizzatore o Scanner Conoscere il nemico è il primo passo di qualsiasi forma di attacco.

Recuperare il maggior numero di informa- zioni possibili su un programma è importante per ca- pire in che contesto si sta lavorando e se si ha a che fa- re con un programma qualsiasi o con un nemico ben corazzato e protetto. Se un programma è scritto in VB, non ci sogneremo mai di andare ad eseguirne diretta- mente il debugging col rischio di finire nella giungla di istruzioni della MSVBVM Per difendersi dagli scanner, molte casi produttrici adottano spesso contromisure protettive che hanno lo scopo di bloccare o semplicemente di rendere compli- cate le procedure di inversione.

Alcune di queste con- tromisure sono rappresentate dai programmi chiamati "packers", come ad esempio Armadillo www. Questa protezione impedisce quindi ogni forma di analisi sul file EXE statico, perché il file originale non è più interpretabile da debugger e disas- semblatori, in quanto nascosto. Il lavoro di un reverse engineer potrebbe quindi finire qui. Individua con esattezza il compilatore usato per creare un file EXE e riconosce centinaia di protezioni e packer commerciali.

In que- sti casi bisogna ricordare che per ogni packer conosciu- to è in genere reperibile in rete l'apposito unpacker o esiste una tecnica di unpacking manuale, capace di ri- portare alla luce l'eseguibile originale. Si tratta di un tool in grado di ricostrui- re l'equivalente di un programma - in linguaggio as- sembly - partendo dall'eseguibile.

Questa procedura produce un listato di istruzioni assembly contenente il flusso del programma e i riferimenti alle chiamate di subroutine, alle DLL importate, alle stringhe di testo e ai salti condizionati: quando si studia un particolare punto di un programma, conviene analizzare in ma- niera "statica" alcune routine, prima di passare all'uso del debugger specie quando si vuole realizzare un keygen.

Naturalmente per sfruttare a pieno le po- tenzialità di un disassemblatore occorre conoscere il linguaggio assembly e il significato delle istruzioni a basso livello dei processori.

Il Decompilatore è uno stretto parente del disassemblatore, ma fa qualcosa in più: è infatti in grado di ricostruire il sorgente comple- to, in linguaggio ad alto livello, a partire dal file com- pilato. Questa operazione è possibile solo per alcuni linguaggi, come Java o il recente formato CLR com- mon language runtime introdotto da Microsoft con.

NET, che producono un file compilato in pseudo-codi- ce che viene eseguito ed interpretato da una macchina virtuale VM. L'estrema portabilità di questi linguaggi i cui eseguibili possono girare su diverse piattaforme ha un prezzo che si paga con la facilità di decompila- zione.

Si è addirittura pensato di stampare delle t-shirt con l'incisione del codi- ce del DeCSS. EXE, usato come "cavia" in questo articolo.

NET www. Per tenere conto dei giorni è indispensabile sapere con esattezza il gior- no in cui avviene la prima installazione, è inoltre ne- cessario marcare, con qualche segno di riconoscimento, l'avvenuta installazione di un programma su un com- puter per evitare successive re-installazioni.

Come fare per accorgersi di questi segni invisibili operati dai pro- grammi su un sistema? I miglior monitor in circolazione sono senza dubbio quelli prodotti dalla Syslnternals www.

Un debugger consente in sostanza di eseguire, passo dopo passo, un file eseguibile, mostrando a video le di- verse istruzioni e le chiamate alle API di sistema e con- sentendo al reverse engineer di studiare un algoritmo istruzione per istruzione. Il debugger mostra inoltre, durante l'esecuzione, lo stato dei diversi registri della CPU, i dati contenuti nella memoria ed è in grado di in- tercettare momenti precisi dell'esecuzione grazie ai Breakpoint punti di interruzione , che permettono - ad esempio - di bloccare il flusso di un programma nel momento in cui questo mostra il messaggio "Licenza non valida" o quando prova a leggere la data del siste- ma.

I famigerati "crack" che tutti cercano su Internet e che spesso solo i nostri amici smanettoni sembrano trovare, non sono altro che dei patcher, ovvero dei pro- grammi che alterano uno o più byte all'interno di un eseguibile per forzare la routine di protezione. L'hex editor è invece un tool che consente di visualizzare un file in formato esadecimale, byte per byte, e che consente di eseguire ricerche di pattern e modifiche dei codici hex. L'architettura di un calcolatore rispetta il mo- dello di automa a stati di Von Neumann, di conse- guenza l'esecuzione di un programma è rappresentata dal continuo modificarsi dello stato dei registri, che de- termina il flusso di esecuzione.

Un re- gistro molto importante è EIP instruction pointer , che contiene l'indirizzo dell'istruzione corrente da esegui- re: quando si esegue un salto ad una altra istruzione o una chiamata , il registro EIP viene modificato per puntare alla nuova istruzione.

Al di sotto dei registri troviamo quella che è chiamata "Data Window", che rappresenta una finestra - sempre aperta - su una pa- gina della memoria. Ogni riga è formata dall'indirizzo segmento:offset seguito dai 16 bytes presenti a quella locazione di memoria e dal loro equivalente in ASCII; per attivare la Data Window basta digitare il comando "DATA".

Nella parte cen- trale della finestra c'è infine il codice assembly dove ogni riga è formata da un offset, dai bytes corrispon- denti all'istruzione opcodes e dall'istruzione simbolica associata. Per iniziare a mettere le mani su qualcosa di concreto, creiamo un primo semplice programma, che chiamere- mo CRACKME01 e che cercheremo di forzare.

Il sor- gente della nostra prima sfida sarà volutamente scritto in forma molto semplice, proprio per aver modo di ca- pire le tecniche di analisi. Il programma si avvia solo se la stringa immessa è "ioprogrammo". E' la cavia usata per provare il reverse engineering in questo articolo. Su Internet esistono una marea di siti dedicati al reverse engineering, dove ap- passionati e studiosi di ogni parte del mondo confrontano tecniche e scambiano informazioni.

Molti di questi siti met- tono a disposizione dei principianti una sezione di CRACKME di diversa difficoltà, scritti proprio per essere forzati da re- verse engineer che vo- gliono misurare la pro- pria abilità.

EXE di soli 32 KB che sarà l'oggetto dei nostri studi e che verrà forzato. Dimenticando il sorgente ap- pena visto e ogni informazione su CRACKME01, ci po- niamo di fronte all'eseguibile come se fosse una scato- la chiusa, totalmente sconosciuta. Si procede quindi con un'ana- lisi più approfondita, realizzata mediante il disassem- blatore BDASM ricordiamo che questo programma ri- chiede la libreria MFC L'analisi rivela subito Fig. Non ci vuole certo un mago del reverse engineering per capire che molto probabilmente questa stringa è proprio la licenza ne- cessaria per l'esecuzione; una ulteriore conferma viene fuori anche dall'analisi fatta col decompilatore REC.

REC è una utility a linea di comando da lanciare se- guita dal nome del file eseguibile da decompilare. Il risultato del confronto viene memorizza- to nella variabile VfffffffO che è quella che pilota l'inte- ro ciclo di while che realizza il controllo della licenza.

In questo primo semplice caso non è stato necessario ricorrere al debugger, ma è bastato analizzare i sorgen- ti decompilati del programma per capire come forzar- lo; nella vita reale il reverse engineer deve fronteggia- re protezioni ben più dure di queste e inoltre il listato prodotto da decompilatori e disassemblatori è spesso complicato da interpretare a causa della miriade di istruzioni e dalla presenza dell'interfaccia grafica.

Una cosa del genere è l'antitesi della sicurezza! La procedura più sicura sarebbe quella di memorizzare nel file la chiave hash della password ed effettuare il confronto solo fra chiavi hash, ma non pretendiamo certo di implemen- tare l'algoritmo MD5 per questo semplice esempio, quindi ricorreremo ad un trucco più banale.

Come si vede dalla Fig. In questo caso il reverse en- gineer è costretto a ricorrere all'analisi col debugger: useremo per l'occasione OllyDbg. Proseguendo lo step over col comando F8, si incon- trerà la chiamata a printf CAEE B che visua- lizza una stringa su console e quindi si entrerà, all'off- S I C set F, nella routine cruciale del programma.

EXE da quest'altro attacco col debugger, si poteva pensare di comprimerlo con un packer ad esempio UPX , che lo rende immune dalla decompilazione e che inoltre non consente la modifica diretta, tramite hex editor, dei by- tes al suo interno sono avvolti dal packer. EXE originale. Dando un'occhiata alla finestra Functions notiamo che l'eseguibile importa alcune funzioni dalla libreria USER Quando si immette un serial number errato, il pro- gramma mostra una finestra di dialogo "Try again", ricorrendo sicuramente alla API MessageBoxA.

Facendo scattare nuovamente la finestra "Try Again" , questa volta finiremo nel de- bugger, che intercetta la chiamata alla API. Conviene senz'altro mettere qui un altro breakpoint BPX e far ripetere il controllo del serial num- ber al CRACKME; questa volta il debugger intervie- ne prima che venga mostrata la finestra "Try Again", portandoci nel cuore della routine che genera il se- riale: ricorrendo al disassemblatore possiamo analiz- zare il codice presente all'offset Questa volta cercheremo di essere più "garbati", giocando ad indovinare l'algoritmo di ge- nerazione del serial number.

L'algoritmo di calcolo determina il keygen. Nella vita reale i cracker incontrano pro- tezioni di gran lunga più sofisticate di quelle viste in questo articolo; tutta- via bisogna sempre ri- cordare che ogni prote- zione, anche la più com- plicata, rimane sempre una creazione della mente umana e pertanto è imperfetta e non im- mune da errori. VCL ha la ca- ratteristica di essere pensato e scritto su Win32 prima Winl6 con Delphi 1 , per cui, quando Borland ha deci- so il supporto ha Linux, ha scritto CLX che si po- neva proprio l'obiettivo di essere multipiattafor- ma.

Con l'uscita di Delphi 7, Borland ha distribuito una versione sperimentale del compilatore Delphi per la piattaforma. Si tratta solo di una versione Preview, ma già denota i caratteri rivoluzionari di questa che non è solo l'ennesima versione del compilatore, ma un vero e proprio cambiamento di rotta.

Ad osservare la storia dell'evoluzione di Delphi ci si rende conto che il prodotto non è mai dav- vero cambiato, a dimostrazione di un ottimo progetto iniziale che non ha richiesto aggiustamenti si- gnificativi, ma anche, a mio avviso, di un minor impe- gno da parte del produttore. Certo è uscito Kylix, e Delphi, per la prima volta, si è aperto ad una piattafor- ma che non era Windows. Non si poteva parlare di una novità epocale da un punto di vista tecnico, an- che se vi era il principio di un sistema multi-piattafor- ma.

Ma quello era un pe- riodo difficile per l'economia di Borland che non pote- va permettersi grossi investimenti, in più c'erano pro- blemi tecnici di non facile soluzione, essenzialmente derivanti dalla natura simbiotica e quasi imprescindi- bile del linguaggio Java dalla piattaforma Java: il po- tente strumento di Sun non era stato pensato per poter disaccoppiare i due elementi e questo rendeva molto complicato il lavoro di Hejlsberg.

NET, come Java, è costituito essenzialmente da una macchina virtuale che gira al di sopra del sistema ope- rativo attualmente solo Windows, ma potenzialmente si tratta di un modello abbastanza portabile. Questa macchina virtuale offre quindi un ambiente di runtime delle applicazioni che esegue non direttamente codice macchina, ma un codice assembly specifico della mac- china virtuale. Questo codice assembly MSIL Microsoft Intermediate Language è un linguaggio compilato che si pone a livello intermedio tra un sorgente di un compi- latore ad alto livello e il codice macchina di un proces- sore moderno.

Presenta inoltre una serie di caratteristi- che di semplicità e quasi di "povertà", quali il fatto di non usare registri, ma di essere completamente "stack oriented", di non effettuare ottimizzazioni esasperate. La macchina virtuale non esegue direttamente questo codice binario intermedio, ma questo viene sottoposto ad una fase di compilazione al volo Jitting che lo tra- sforma in codice macchina ottimizzato per la macchina su cui sta girando. Un elemento fondamentale è l'am- pio framework a disposizione di ogni applicazione.

NET: migliaia di classi che risolvono la gran parte del- le problematiche applicative. Gli sviluppatori Delphi sono già abituati alla sterminata VCL, ma il framework. NET rappresenta un passo in avanti in fatto di razio- nalizzazione e modernità nella scelta dei pattern di programmazione. Tutti questi elementi hanno consen- tito uno dei più grossi vantaggi di. NET su tutti i riva- li, diretti o indiretti: l'indipendenza dal linguaggio. Mi- crosoft ha fornito già da subito diversi linguaggi, ma soprattutto ha fornito delle linee guida per produrre nuovi linguaggi che generino codice IL e che sfruttino il type system e il framework di.

Questo è suffi- ciente perché, una volta prodotta una libreria in un qualsiasi linguaggio con queste caratteristiche, questa sia utilizzabile in binario da tutti gli altri linguaggi. Finalmente i program- matori Delphi potranno attingere allo sterminato baci- no di produttori di librerie e di componenti di terze parti per prodotti Microsoft con la possibilità di usarli in modo nativo.

Dunque Delphi.

NET: rivoluzione della specie : Attributo. NET Un attributo per. NET è un concetto un po' particolare che probabilmente avrete incontrato in numerosi articoli su. NET: si trat- ta, in breve, di una informazione dichiarati- va che indica al compi- latore, al runtime e qualsiasi altra entità compreso il codice che userà la classe come interagire con la classe stessa.

Subtract Birthday. Subtract referenceDate. Create 'Ciro', Datetime. WriteLine myObj, Birthday. ToStringQ ; Console. WriteLine myObj,GetAge. ToString ; Console. ReadQ; end. Le novità, in questo brevissimo programma, spiccano numerose. A partire proprio dalla keyword Program. Essa contiene un nome di programma strutturato con un punto ". NET ogni unità di co- dice è contenuta in una sezione detta Namespace. Se nel programma fossero presenti delle Unit, ognuna di esse costituireb- be un Namespace che si posizionerebbe gerarchica- mente sotto il Namespace definito da Program.

Questo si ripercuote naturalmente anche nelle Uses che posso- no richiamare unit con struttura gerarchica, infatti la nostra applicazione usa le unit System e System. Collec- tion anche se in questo caso è corretto definirli Name- space e non Unit. Ma non è tanto questo l'aspetto inte- ressante da sottolineare, quanto il fatto che queste due unit non fanno parte della libreria Borland, ma sono proprio parte del framework.

NET, quindi stiamo sem- plicemente usando il framework da Delphi! Non vi sarà sfuggito che la prima unit è System, ma non si trat- ta della cara vecchia System di RTL, ma del namespace System di. NET e più precisamente del core di. E la cara vecchia System che fine ha fat- to?

Semplice: non esiste quasi più perché con Delphi. NET non serve: o meglio, per ragioni di compatibilità, Borland ha definito il namespace Borland. Sy- stem, che fa solo da collante di compatibilità verso il co- dice e le classi Delphi tradizionali e quindi non per de- finire la base del framework come avviene con le ver- sioni Win32 e Linux di Delphi.

dove posso scaricare il simulatore tagadà e altre giostre? | Yahoo Answers

Una per tutte: le classi Delphi. NET discendono tutte da System. Object di. NET, come è necessario che sia per tutte le classi. Infatti anche la nostra clas- se MyClass che ha perso la T per ragioni di aderenza alla convenzione. NET , non discendendo esplicita- mente da nessuna classe, discende da System. Un'altra "stranezza" di definizione della classe My- Class è il costrutto [Serializable].

E semplicemente la convenzione sintattica per definire attributi di una clas- se o di un metodo: il nome tra quadre rappresenta in- fatti l'attributo da associare alla classe. Nello specifico l'attributo Serializable dona alla nostra classe la capacità di essere serializzata in uno stream, su file o in qual- siasi altra forma.

Il resto della classe non presenta no- vità, ma ritroviamo le caratteristiche di OOP avanzata tipica di Delphi: un costruttore parametrizzato, un overload sul metodo GetAge, una property pubblica ed un protetta. La seconda classe definita nell'applicazio- ne è MyColl, essa discende dalla classe System. Collec- tions. Hashtable del framework. NET e rappresenta una tipica collection alla Visual Basic, ma con algoritmi ha- sh.

In essa sono stati ridefiniti alcuni metodi Ada in particolare per ottenere una collezione tipizzata di og- getti MyClass. Questa è una caratteristica molto poten- te che mancava nella VCL: le collection. Ma soffermiamoci adesso sul metodo: function MyClass. Per cui Datetime sembrerebbe essere un oggetto, una classe contenente il metodo statico Now che restituisce un Da- tetime.

Come se non bastasse, Datatime possiede anche un metodo, questa volta di istanza, che è Subtract che accetta come parametro un altro Datetime. Esso resti- tuisce un tipo System. Timespan, cioè un offset di tempo. Il Timespan è evidentemente a sua volta un oggetto per- ché espone la proprietà TotalDays che esprime l'offset di tempo sottoforma di numero di giorni che viene di- viso per e restituito come valore di ritorno del me- todo.

E scoprireste caratteristiche simili su String, su Doublé e su tutti gli altri tipi scalari del Pascal. Cosa si- gnifica? Semplice: in. NET anche i tipi scalari sono og- getti che discendono da System. Inoltre, essendo oggetti, sono dotati di metodi statici e di istanza che permettono di gestire le caratteristiche di base del tipo.

Ma l'aspetto più interessante è che tutti i tipi sono definiti dal framework, costituisco- no cioè il CTS, per cui devono essere usati da tutti i lin- guaggi, magari adoperando alias sul nome del tipo co- me dimostra la tabella a fondo pagina. NET Preview: dccil.

Exe che, mandato in ese- cuzione, si comporterà come una normale Console Ap- plication. Proviamo quindi da mettere il naso nel bina- rio disassemblandolo. Con Visual Studio. In Fig. Possiamo no- tare la nostra classe MyClass con la relativa definizione di metodi e proprietà, compreso il costruttore parame- trizzato. Ades- so procediamo con un piccolo esperimento: riscrivia- mo la nostra applicazione in un altro linguaggio di.

NET Tipo Delphi. Byte Byte byte Byte byte char System. Intl6 Smalllnt short Short short short System. UTntló Word ushort - - unsigned short System. Int32 Integer int Integer int int oppure long System.

UInt64 UInt64 ulong - - unsigned int64 System. Single Single float Single float float System. Boolean Boolean bool Boolean bool bool System.

Add Ciro , myubj ; Console.

WriteLine myObj. Come avrete potuto osservare il codice è molto simile e, soprattutto, vengono invocati gli stessi metodi dei ti- pi del CTS, in particolare sulla classe Datetime. Non stupirà osservare quindi il dissassemblato dell'assem- bly prodotto da C in Fig. NET e questo dimostra che tutti gli as- sembly. NET sono uguali e si perde ogni riferimento al linguaggio che li ha generati!

A questo punto, non vi la- scerete impressionare nemmeno dalla Fig. Ci sono alcune piccolissime differenza, soprattutto buone per quei giochi da setti- mana enigmista basati sul colpo d'occhio, ma nulla che lasci intendere al fatto che siano stati compilati a parti- re da un sorgente C piuttosto che Delphi. NET Fig. FirstNamespace; Dunque eliminiamo tutto il codice della sezione mairi, che non ha più senso in una libreria ed effettuamo la compilazione.

Otterremo l'assembly Esempio. A questo punto scriviamo una sem- plice Console App in C che sfrutta la nostra nuova li- breria Delphi. NET è sufficiente creare una nuova Con- sole App e aggiungere un riferimento alla nostra Dll ri- pescandola con un semplice browsing del filesystem.

Add "ciro", myObj ; Console. First- Namespace che altro non è che il namespace pubblicato dalla nostra libreria Delphi. A questo punto si procede direttamente all'istanziazione e all'uso di MyClass e di MyColl senza avere nessuna cognizione del fatto che sia stata sviluppata in Delphi.

NET si tratta semplice- mente di un assembly. NET richiamato da un altro as- sembly. NET sarà un compilatore.

NET di prima classe e lo dimostra già la versione Preview seppur ancora li- mitata e in fase di progettazione. NET è. NET che sarà uno strato soprastante.

NET sarà una scelta di campo, ma probabilmente sarà una scelta senza rimpianti: sarà il passato che si fonde col presente quasi come se fos- sero opera di una stessa mano.

Breve guida all’uso delle banche dati bibliometriche – ppt scaricare

Primi passi con JFreeChart Grafica In quest'articolo utilizzeremo, la libreria JFreeChart, per realizzare un'applicazione che visualizza una serie di grafici utili all'analisi di un portafoglio di investimenti finanziari.

Nelle applicazioni odierne, una corretta ed esaustiva visualizzazione di dati per via grafica è importante tanto quanto il loro collezionamento. Mostrare, ad esempio, i dati relati- vi al fatturato di un'azienda in un grafico ha il van- taggio di una maggiore facilità di analisi e di giudi- zio per chi li osserva.

Per lo sviluppatore, la creazione di grafici di qualità all'interno delle proprie applicazioni non rappre- senta un'operazione facile e veloce, a meno che non utilizzi una libreria già pronta. JFreeChart è appunto una libreria di classi Java che consente la visualizza- zione di grafici all'interno sia di applicazioni stand- alone basate su Swing che di applicazioni Web.

Tra- mite le API della libreria, è possibile, facilmente e ra- pidamente, realizzare grafici professionali all'inter- no di applicazioni Java. L'applicazione consentirà di mostrare gli investimenti effettuati da un cliente, suddividendoli in base alle componenti azionario, obbligazionario e liquidità, permetterà inoltre di analizzare il rendimento ottenuto nel corso degli an- ni passati. Nelle figure sono mostrati i grafici gene- rati dall'applicazione che andremo a realizzare.

La libreria mette a disposizione i file sorgenti e tutto l'occorrente per compilarli e per produrre la relativa documentazione in Java doc. E' presente un'applica- zione dimostrativa con relativo codice, ovviamente che consiglio di osservare per scoprire molte delle po- tenzialità della libreria. E' presente inoltre un breve documento in PDF jfreechart Mediante le API di JFreeChart possiamo generare diverse tipologie di gra- fici: lineari, a torta, a barre, time series, a step, Gantt, ecc..

E' possibile inoltre combinare diversi grafici al- l'interno di un'unica area organizzandoli verticalmen- te od orizzontalmente. Tale licen- za si applica a particolari componenti software, tipi- camente librerie. La General Public License ribadisce la libertà di poter utilizzare e modificare il codice senza nessun costo, a patto di ridistribuirlo nel- la sua forma originale esattamente come lo si è ricevuto e completo delle eventuali modifiche appor- tate.

La LGPL, fondamen- talmente, si differenzia da questo tipo di licenza in quanto le applicazioni svi- luppate, utilizzanti tale componente o libreria, non ereditano la caratteristica di free software come in- vece avverrebbe nel caso della GPL.

Uno dei vantaggi di tale pat- tern è che permette di te- nere sotto controllo le classi degli oggetti creati ed il punto in cui avviene la fase di inizializzazione di tali oggetti e delle loro relazioni. In tal modo, il codice cliente vede solo un gruppo di oggetti pronti ad essere utilizza- ti, senza curarsi delle im- plementazioni e della lo- ro inizializzazione.

Gli oggetti creati nel momento in cui visualizziamo il grafico sono molte- plici, ma alcuni di essi sono quelli più importanti. In particolare gli oggetti della classe Plot, che possiamo indicare come l'area in cui è mostrato il grafico.

Si tratta di una classe astratta che si occupa di disegna- re gli assi ed i dati e che definisce solo dei metodi ge- nerali; in quanto ogni tipologia di grafico usa una di- versa classe concreta ad esempio, nel caso dei grafici a torta, la classe concreta è il PiePlot.

Ora concentria- moci sulla gestione dei dati, cioè le informazioni che vengono mostrate nei grafici. JFreeChart definisce del- le interfacce delle quali la principale è il Dataset che permettono di astrarre le implementazioni delle strutture in cui vengono memorizzati i dati. In tal mo- do, si disaccoppia il codice relativo all'aggiornamen- to del grafico classe Plot da quello di gestione delle informazioni Dataset.

Il DatasetChangeListener è un'interfaccia che identifica un'entità interessata ad essere notificata a fronte di una modifica nei dati un esempio è appunto la classe Plot. Il Dataset si occupa invece di registrare, mediante i metodi addChangehi- stener e removeChangehistener, tali entità DatasetChan- geListener.

Il Dataset è soltanto l'interfaccia più gene- rale. In realtà, ogni tipologia di grafico lavora con una o più interfacce dati derivanti da questa ed imple- mentate da appropriate classi. Ad esempio, l'interfac- cia KeyedDataset permette di organizzare i dati in cop- pie chiave-valore. I grafici a torta utilizzano, tra le al- tre, un'interfaccia derivante da questa, detta PieData- set.

Entreremo in maggiore dettaglio man mano che svilupperemo la nostra applicazione. Per ora, concen- triamoci sui principali componenti del grafico evi- denziati in figura. I componenti descritti e tutti gli altri che abbia- mo tralasciato per semplicità necessitano una sincro- nizzazione sia in fase di inizializzazione che in quella di aggiornamento. Per l'utente non sarebbe facile ge- stirli direttamente, in quanto dovrebbe rispettare la corretta sequenza delle diverse fasi di inzializzazio- ne.

La libreria ci viene in aiuto fornendoci la classe JFreeChart che contiene i riferimenti e gestisce tutti gli oggetti che vediamo nei nostri grafici: la legenda, il plot, il dataset, ecc.

Ogni istanza rappresenta un gra- fico di un certo tipo e con certi dati. Si tratta di una classe factory ve- di relativo box che mette a disposizione dei metodi statici, i quali creano l'oggetto JFreeChart adatto, in base al tipo di grafico che desideriamo. Sono tali me- todi che si occupano dell'effettiva inizializzazione di tutte le componenti.

Infine, spendiamo alcune parole sull'integrazione con le Swing. A tal fine, la libreria mette a disposizione una classe derivante da JPanel, denominata ChartPanel, che agisce da contenitore di tutte le componenti che si occupano del disegno del grafico.

Il pannello invocherà il metodo draw di que- sti ultimi passando l'oggetto Graphics2D ogni volta che necessita di ridisegnarsi. E' presente anche una classe ChartFrame, derivante da JFrame, che crea auto- maticamente al suo interno un pannello ChartPanel con il grafico desiderato. Come primo pas- so, costruiamo il grafico a torta che mostra la compo- sizione del portafoglio del cliente.

Come esempio, utiliz- ziamo i valori riportati in tabella. Le API ci forniscono un'implementazione di default con la classe DefaultPieDataset che utilizzeremo per gestire i nostri dati. Una volta organizzati i dati, possiamo concentrarci sul grafico andando a creare l'oggetto JFreeChart mediante la factory. Il primo argomento, pas- sato al metodo, rappresenta il titolo del grafico men- tre il secondo è il riferimento all'oggetto Dataset creato.

Gli ultimi tre argomenti sono dei boolean che servono ad attivare alcune caratteristiche opzionali del grafico, rispettivamente: la legenda, il tooltip e l'utilizzo del generatore di URL per le mappe di im- magini. A questo punto, non ci rimane altro che in- tegrare l'oggetto JFreeChart in un'applicazione Swing. Per semplicità utilizziamo la classe ChartFra- Il create and display a trame In figura possiamo osservare il risultato.

Con pochi piccoli aggiustamenti, per esempio confi- gurando alcuni parametri dell'oggetto PiePlot, pos- siamo cambiare sensibilmente l'aspetto del grafico. In ogni caso, JFreeChart permette di modificare mol- te delle proprietà del grafico colori di sfondo, tipo di linee, ecc. Per accedere alle proprietà del plot e mo- dificarle direttamente nel codice, è presente sulla Fig.

Ottenuto il riferimento, possiamo cambiare alcuni parametri di configurazione. Possiamo decide- re di visualizzare, singolarmente od in modo combi- nato, i nomi delle chiavi, i relativi valori o le percen- tuali. In questo caso siamo interessati a visualizzare sia i nomi sia le percentuali per come abbiamo im- postato i dati sono uguali ai valori.

Un altro meto- do, setStart Angle, ci permette di definire l'angolo ini- ziale dal quale disegnare le varie porzioni della tor- ta il valore di default è di 90 gradi. Con setDirec- tion, decidiamo se le porzioni vengono disegnate in verso orario od antiorario, rispetto a come sono sta- te inserite nel Dataset. Infine il metodo setForegroun- dAlpha, ereditato dalla classe generale Plot, imposta il livello di trasparenza del grafico.

Come ultima modifica, rendiamo il grafico tridimensionale. A questo punto il codice completo è quello della classe Tor- tai otterremo quanto visto in Fig.

Utilizzando an- cora un PiePlot, possiamo realizzare facilmente un grafico che rappresenti ad esempio la suddivisione degli investimenti azionari del portafoglio del clien- te.

Possiamo, inoltre, estrarre una porzione della tor- ta mediante il metodo setExplodePercent della classe PiePlot. Nel caso di dati organizzati in cate- gorie, il domain axis cor- risponde all'insieme del- le possibili categorie mentre il range axis ai relativi valori. Invece per dati organizzati se- condo coppie X-Y, do- main e range axis corri- spondono rispettivamen- te alla variabile indipen- dente e dipendente della funzione.

Gli assi sono gestiti tra- mite la classe astratta Axis e le sue sottoclassi. Queste vengono create all'interno dell'oggetto Plot in modo conforme con il tipo di plot durante la fase di inizializzazione effettuato dalla Chart- Factory. Un esempio è mostrato nel codice della classe Torta3 dove viene anche imposta- ta una forma ellittica grazie al metodo setCircular.

Passiamo ora ad un altro tipo di grafico, quello a barre. Esso risulta utile, nel nostro esempio, per mo- strare un confronto tra i rendimenti ottenuti dal por- tafoglio del cliente nei vari trimestri degli anni pas- sati dal al secondo quanto riportato in ta- bella.

La libreria offre di- verse soluzioni per i grafici a barre: 2D o 3D, con orientamento verticale od orizzontale, ecc. Iniziamo partendo da un grafico a barre verticale in 3D: sulla classe ChartFactory invochiamo quindi il metodo createVerticalBarChart3D.

Tali nuovi argomenti rappresentano i titoli da assegnare agli assi del grafico in quanto, a differen- za del grafico a torta, in questo caso sono presenti degli assi. Per saperne di più su come JFreeChart ge- stisce gli assi si consiglia di leggere il relativo box. Un'ulteriore differenza nei parametri riguarda il Da- taset, che in questo caso è un CategoryDataset. Que- st'ultimo permette di organizzare i dati secondo ri- ghe e colonne come riportato nella tabella vista in precedenza.

In pratica, definiamo delle serie di dati le righe che rappresentano vari gruppi di valori misurati sulla base di alcune categorie le colonne. In questo caso, la classe concreta del plot che viene creato dal ChartFactory è di tipo CategoryPlot , specia- lizzata nella visualizzazione di dati gestiti mediante il CategoryDataset.

A questo punto possiamo impo- stare alcune caratteristiche della visualizzazione de- gli assi. Questi ultimi sono creati, in modo opportu- no, dal costruttore della classe Plot e sono accessibi- li mediante i metodi getDomainAxis e getRangeAxis.

Poiché abbiamo richiesto un grafico a barre orienta- to verticalmente, il plot creerà un domain axis oriz- zontale mediante la classe concreta HorizontalCate- goryAxis che visualizzi le categorie dei dati ed un range axis verticale mediante la classe concreta NumberAxis che mostri i rispettivi valori in formato numerico.

Possiamo quindi ottenere i riferimenti a questi oggetti e modificarne alcune proprietà. Ad esempio, per l'asse delle categorie, passando true al metodo setSkipCategoryLabelsToFit, impostiamo di non stampare i nomi delle categorie nel caso in cui ci sia il rischio che si sovrappongano se queste trop- po ravvicinate.

Per l'asse dei valori, invece, impostiamo, mediante setStandardTickilnits, per le tacche di riferimento i valori delle unità. Eseguendo il codice riportato nel- la classe Barrel, otterremo la Fig. In modo speculare, possiamo creare un grafi- co a barre orizzontale in 3D vedi codice della classe Barrel o un semplice grafico a due dimensioni ve- di codice della classe Barre3.

Consigliamo il lettore di sperimenta- re, agendo sui vari parametri dei grafici in modo da comprendere l'utilità e la funzione delle varie op- zioni.

Un mail client in Visual Basic Posta elettronica con VB parte seconda Nella prima parte, dedicata alla costruzione di un mail client in VB, abbiamo analizzato gli aspetti fondamentali che stanno alla base di un servizio di posta elettronica.

In questa seconda ed ultima parte, vedremo come mettere in pratica quanto detto precedentemente, cercando di privilegiare gli aspetti più pratici rispetto a quelli puramente teorici. Prima di vedere in dettaglio il progetto in Visual Basic, è bene fare alcune piccole considerazioni. La costruzione di un client di posta elettronica è certamente un'operazione molto complessa. Questo perché è necessario includere diverse funzionalità, che concorrono a rendere l'intera implementazione piutto- sto complicata.

Probabil- mente voi tutti conoscerete questo tipo di oggetto ma, per dovere di completezza, credo sia opportuno pre- mettere una sintesi delle principali proprietà e metodi. Il suo scopo è semplice- mente quello di mante- nere traccia dei para- metri di configurazione essenziali al corretto funzionamento del pro- gramma. Quando la connessione è stata instaurata, entrambi i computer possono inviare e ricevere dati seguen- do le specifiche imposte dal protocollo adottato nel nostro caso SMTP o POP3.

In caso di esito positivo, ossia quando i dati sono stati ricevuti correttamente dal destinata- rio, viene generato l'evento DataArrival. Esso va sfruttato all'interno dell'evento DataArrival.

All'interno del pro- getto sono anche stati definiti degli User Control che so- stituiscono i comuni Command Button disponibili in VB. Le tecniche relative alla creazione e all'utilizzo di que- sti "oggetti" esulano dagli scopi di questo articolo, per- tanto non saranno presi in considerazione.

Essa consente non so- lo di leggere la posta elettronica dal proprio ac- count, ma anche di salvare gli allegati, inviare mail, configurare il programma stesso richiamando frm- Config, ecc. Possiamo rilevare, in caso di problemi, quale sia la reale risposta del server a fronte di un nostro "co- mando". Tramite le funzioni contenute in questo modulo, è possibile scrivere e leggere all'interno del registry di Windows tutti i parametri di configurazione del programma ed al- tre informazioni utili al corretto funzionamento dello stesso.

Quest'anomalia è dovuta semplicemente al fatto che molte routine risultavano già preconfezionate e di- sponibili su Internet. Dopo questa piccola precisazione, possiamo passare ad una descrizione maggiormente dettagliata dell'intero progetto, tralasciando per sem- plicità aspetti owii o non strettamente legati all'imple- mentazione di un client di posta.

Per po- ter realizzare questa funzionalità, potevano essere scel- te diverse strade, una delle quali poteva essere quella di mantenere costantemente aggiornato un file. INI in grado di contenere tutte le informazioni necessarie.

La struttura InfConf struttura, ovviamente, è valorizza- ta all'avvio ed ogni qualvolta se ne abbia necessità.

I valori di ogni elemento della struttura, come già detto, sono prelevati direttamente dal registry. La maschera frmConfig rappresenta l'unico modo per poter configu- rare tutti i parametri che ci interessano, a meno, ovvia- mente, di modificarli direttamente tramite l'utility Windows regedit.

Altro compito dell'evento Load del- la form è quello di preoccuparsi di "enumerare" tutte le RAS Connection definite all'interno del PC client. Quando tentiamo d'inviare o di ricevere un'e-mail è necessario stabilire il "contatto" con il server in oggetto e tale scopo è esplicato dalla funzione ConnectSRVQ.

Close Imposta i parametri del collegamento con il server WSl. Se NO Le vengono passati i tre parametri fondamentali ossia il controllo Winsock che dovrà gestire il colloquio con il server riposto rispettivamente sulle form frmSMTP e frmPOPS , l'host e la porta di riferimento.

Ottenuti que- sti parametri, ConnectSRVQ imposta le relative pro- prietà del controllo Winsock passato come parametro e controlla lo stato della connessione attiva. Se non si do- vesse essere connessi ad Internet, ad esempio, tenta di stabilire tale connessione attraverso l'avvio di una ses- sione remota attraverso modem, altrimenti dichiara aperto il collegamento con l'host remoto.

Nel primo ca- so, in particolare, si serve della funzione InternetDialQ che, opportunamente chiamata, consente di avviare la connessione RAS impostata come default. L'omissione di questo "ritardo" significherebbe necessariamente un tempo di risposta immediato da parte del server, una situazione pratica- mente impossibile da verificarsi.

Esso è composto semplicemen- te da un menu principale, da una serie di pulsanti e da un paio di finestre che mostrano rispettivamente i dati principali delle mail ricevute ed il body di ognuna di esse. La lettura dei messaggi dal server di posta avvie- ne mediante la pressione del pulsante Ricevi. Nel mo- mento in cui esso è premuto, ha inizio il colloquio con il server POP3. Durante questa fase, in particolare, è aggiornata una struttura denominata InfoARR che tiene traccia delle principali caratteri- stiche di ogni mail scaricata.

Essa, passata come unico parametro alla funzione AggiornaDBO, con- sente di popolare la griglia delle mail arrivate con le informazioni principali. La struttura di questo DB, denominato Mail Arrivate. Durante questa fase, inoltre, è aggiornato il file di log attraverso una chiamata alla funzione Aggior- naLOGO con le informazioni più importanti circa ogni mail letta.

Al ter- mine di questa fase, viene lanciato il comando DE- LE per contrassegnare ogni mail per la cancellazio- ne. UpgradePOP3: questa funzione, la più semplice fa le tre esposte, non fa altro che chiudere la comuni- cazione con il server POP3, inviando semplice- mente il comando QUU.

Durante questa fase, tutti i messaggi che risultavano contrassegnati con DE- LE durante la Transaction Phase, verranno definiti- vamente eliminati dalla casella postale. A seguito del- la pressione di questo pulsante è aperta una nuova fi- nestra, frmSMTP, dalla quale è possibile inserire i de- stinatari delle proprie mail, gli allegati ed il testo del messaggio.

La funzione principale richiamata, dall'in- terno di questa form, è InviaMailO che non fa altro che stabilire il colloquio con il server SMTP di riferimento e invia l'e-mail ai destinatari. Alla stregua della rice- zione dei messaggi di posta, si serve della funzione ConnectSRVO per stabilire la connessione con esso.

Tuttavia, è bene sottolineare un dettaglio importante, ossia il caso dell'invio di mail a più destinatari. In que- st'ipotesi, infatti, è necessario scomporre la stringa che rappresenta questo dato, facendo bene attenzione a se- parare correttamente ogni indirizzo di posta elettroni- ca con un ';'.

DA ISI IL FORMATO PLAIN TEXT SCARICA

Per estrarre correttamente ogni mail ad- dress, è stata predisposta una funzione costruita ad hoc, ScomponilnviaO, che si occupa di suddividere l'in- tera lista dei destinatari in tutti gli indirizzi e-mail, in- viandoli "direttamente" al server SMTP durante il col- loquio. Un bug giudicato di livello critico da tutti gli esperti. A livello applicativo i dettagli dei layer di trasporto e di run-time vengono gestiti dal sistema operativo e sono trasparenti rispetto all'uso fatto dal programmatore.

L0 unico computer sicuro è un computer spento. Si tratta di un detto molto comune nel mondo hacker che, a prima vista, potrebbe sembrare un'esasperazione o un semplice paradosso, ma che - purtroppo - spesso viene avvalorato da alcune tristi vicende legate al mondo della sicurezza.

Nulla di più semplice da verificare, senza bisogno di essere un hacker, basta lanciare "netstat -ari' Fig. Se la memoria non m'inganna già qualche tempo fa la porta di Windows servizio UPnP , fu al cen- tro delle "cronache mondane" della sicurezza a causa di un bug ritenuto pericoloso vedi ioProgrammo nr. E cosa dire delle altre porte? C'è tempo per ogni cosa, basta solo avere pazienza: oggi, infatti, è il turno della porta e del servizio RPC Disorientati dalle sigle criptiche di Microsoft?

Confusi sul significato delle diverse tecnologie? Si tratta di fornire ai programmi la capacità di scambiare dati e invocare metodi o funzioni che risiedono in un processo diverso rispetto a quello invocante.

La potenza di questo meccanismo sta nel fatto che viene gestito in maniera trasparente Fig. In ambiente Win- dows il tutto si basa su un servi- zio chiamato "endpoint mapper" visibile col nome di epmap , atti- vo proprio sulla porta , in atte- sa di connessioni da parte dei client RPC.

RIF: http:llmsdn. In sostanza è una va- riante della tecnologia COM di Microsoft orientata per l'uso su network. Per realizzare alcuni servizi si avvale, a sua volta, del meccanismo fornito dall'RPC. EXE Fig. Ma Internet è la rete delle reti e spes- so basta poco a scatenare un pu- tiferio, specie quando si cercano informazioni non ancora esistenti e si hanno riferimenti ambigui. Sarà stato quindi per caso o per erro- re che una serie di post apparsi in rete e di riferimenti al problema dell'RPC, abbiano portato in risalto un secondo bug del meccanismo RPC, documentato dal vecchio bol- lettino MS, relativo questa volta a un problema di Denial of Service, scoperto dall'hacker Lion www.

A questo punto la confusione in rete è totale: sia ben chiaro, le vulnerabi- lità del bollettino MS e quella pubblicata da Benjurry riguardano sempre l'RPC, ma sono ben diverse e non hanno nulla a che a vedere con quanto documentato nel bollettino MS Per disabilitare l'interfaccia DCOM basta seguire la procedura riportata in queste pagine.

DLL che manda in panico il ServiceHost del sistema operativo. Arresto del sistema 3 Il sistema sta per essere arrestato. Salvare tutto il lavoro in corso e chiudere la sessione. Tutte le modifiche non salvate andranno perse. La Tabella 1 riassume in mo- do chiaro la situazione dei bug e degli exploit disponibili in rete al momento.

Un reboot, in questi casi, risolve tutti i problemi e fa ripartire il servizio RPC. Sotto Windows XP è necessario ripe- tere l'attacco almeno 2 volte per avere qualche effetto, riuscendo a provoca- re addirittura il reboot forzato Fig. Sotto Windows invece i danni sono contenuti e l'exploit si limita a killare il servizio RPC Fig. Alcuni trucchi sono proposti dalla Redazione, altri provengono da una ricerca sulla Rete delle Reti, altri ancora ci giungono dai lettori.


Articoli simili:

Categorie post:   Autisti
  • By Ricci