View Full Version : C++ Gli hook di windows ex (C++ Cerco un'idea)
la lista sotto, è il contenuto dei file di un disco;
devo scrivere un programma che legga tale file e che crei,
sotto alla cartella "foto", ad esempio:
una sottocartella di nome "sardegna"
sotto "sardegna", una sottocartella "mare"
dalla lista si evince anche che sotto "sardegna" vi sono le sottocartelle:
"casa", "nonna", "adriana", "zelig", "giostre", "scuola", "museo"
ad un certo punto, appare sotto "foto" la cartella "egitto" con le sue
sotto cartelle e devono essere create allo stesso modo di "sardegna"
[FILE DI INPUT]
G:\tools\foto\sardegna\mare\pic_268.jpg
G:\tools\foto\sardegna\mare\pic_269.jpg
G:\tools\foto\sardegna\mare\pic_266.jpg
G:\tools\foto\sardegna\casa\pic_309.jpg
G:\tools\foto\sardegna\casa\pic_310.jpg
G:\tools\foto\sardegna\casa\pic_311.jpg
G:\tools\foto\sardegna\nonna\pic_277.jpg
G:\tools\foto\sardegna\nonna\pic_278.jpg
G:\tools\foto\sardegna\nonna\pic_279.jpg
G:\tools\foto\sardegna\adriana\pic_288.jpg
G:\tools\foto\sardegna\adriana\pic_289.jpg
G:\tools\foto\sardegna\adriana\pic_290.jpg
G:\tools\foto\sardegna\zelig\pic_272.jpg
G:\tools\foto\sardegna\zelig\pic_273.jpg
G:\tools\foto\sardegna\zelig\pic_274.jpg
G:\tools\foto\sardegna\giostre\pic_315.jpg
G:\tools\foto\sardegna\giostre\pic_316.jpg
G:\tools\foto\sardegna\giostre\pic_317.jpg
G:\tools\foto\sardegna\scuola\pic_329.jpg
G:\tools\foto\sardegna\scuola\pic_330.jpg
G:\tools\foto\sardegna\scuola\pic_331.jpg
G:\tools\foto\sardegna\museo\pic_322.jpg
G:\tools\foto\sardegna\museo\pic_323.jpg
G:\tools\foto\sardegna\museo\pic_324.jpg
G:\tools\foto\egitto\agosto\piramidi\pic_137.jpg
G:\tools\foto\egitto\agosto\piramidi\pic_136.jpg
G:\tools\foto\egitto\agosto\cammello\pic_135.jpg
G:\tools\foto\egitto\agosto\cammello\pic_134.jpg
quello che desidero ottenere è simile a questo ma
rediretto su un file:
[FILE DI OUTPUT]
cartella: sardegna
sottocartella: mare
(pic_268.jpg)
(pic_269.jpg)
(pic_266_jpg)
sottocartella: casa
(pic_309.jpg)
(pic_310.jpg)
(pic_311.jpg)
sottocartella: nonna
(pic_277.jpg)
(pic_278.jpg)
(pic_279.jpg)
e così via sino a "museo"
poi
cartella: sardegna
sottocartella: piramidi
(nomi foto)
.......
.....
sottocartella: cammello
(nomi foto)
.......
.....
P.S.
se avete qualche idea
grazie
ho risolto finalmente :)
non chiedetemi come perchè sarebbe un massacro rispondervi
Ciao
Kleidemos
05-03-2003, 18:27
Originally posted by "misterx"
ho risolto finalmente :)
non chiedetemi come perchè sarebbe un massacro rispondervi
Ciao
come?
:D :D
Sei un mostro...........risolto in un solo giorno :eek:
eh eh :)
purtroppo non va sempre così di lusso ;)
Originally posted by "cionci"
Con FindFirstFile ?!?!?!
lavorando su un file di testo?
non sarebbe male redirigere l'output di una funzione tipo:
CopyFile()
su di un file di testo; per creare una sorta di simulazione :)
Ciao
una banalità
**********************************************
come posso passare un puntatore a file ad un'altra funzione senza che
questa sia dichiarata globale?
**********************************************
esempio:
main()
{
void aprifile();
void scrivifile(FILE fp); // qui c'è l'errore!!!
void aprifile()
{
FILE *fp;
fp = fopen("miofile.txt","w");
if(!fp) return;
scrivifile(fp);// qui c'è l'errore!!!
fclose(fp);
}
void scrivifile(fp)
{
fprint(fp,"zio paperino\n");
return 0;
}
}// end main
Passa il puntatore al file per riferimento...
void scrivifile(FILE &fp);
Originally posted by "cionci"
Passa il puntatore al file per riferimento...
void scrivifile(FILE &fp);
già fatto ma non ne vuole sapere: sarà mica il mio BCB che fa le bizze
/\/\@®¢Ø
08-03-2003, 18:09
ma il tipo di fp non e' FILE* ?
In tal caso sicuramente non puoi usare una funzione che chiede un FILE& o un FILE semplice...
Originally posted by "/\/\@®¢Ø"
ma il tipo di fp non e' FILE* ?
In tal caso sicuramente non puoi usare una funzione che chiede un FILE& o un FILE semplice...
ciao Marco
e quindi? :)
/\/\@®¢Ø
08-03-2003, 20:12
Quindi il parametro dovrebbe essere un FILE* :D
void scrivifile(FILE *fp);
anche perche' poi nella funzione chiamata usi fprintf che vuole un FILE* e quindi passargli un parametro di quel tipo mi sembra la cosa piu' ragionevole.
Originally posted by "/\/\@®¢Ø"
Quindi il parametro dovrebbe essere un FILE* :D
void scrivifile(FILE *fp);
anche perche' poi nella funzione chiamata usi fprintf che vuole un FILE* e quindi passargli un parametro di quel tipo mi sembra la cosa piu' ragionevole.
guarda che le ho provate di tutte ;)
ma il compilatore si rifiuta: mi dice che la dichiarazione è osoleta
/\/\@®¢Ø
08-03-2003, 20:29
ah... ora ho visto scusa...
e' legale in C dichiarare una funzione nel corpo di un'altra :confused: ?
Adesso ho capito cosa intendevi col dichiararla globale...
Da quel che ricordo io no... pero' non ne sono sicuro.
/\/\@®¢Ø
08-03-2003, 20:36
Contrordine compila...
E' sufficiente includere stdio.h (per la definizione di FILE)
anche se mi da due warning che non mi piacciono niente...
(ah... la funzione e' dichiarata void e ritorna 0...)
non compila
ho idea che dovrò intervenire sulle opzioni del compilatore
/\/\@®¢Ø
08-03-2003, 21:45
aspetta... che compilatore usi ?
il mio (gcc 3.2) compila senza problemi (ma un paio di warning ( il seguente codice:
#include <stdlib.h>
#include <stdio.h>
main()
{
void aprifile();
void scrivifile(FILE* fp); // qui c'è l'errore!!!
void aprifile()
{
FILE *fp;
fp = fopen("miofile.txt","w");
if(!fp) return;
scrivifile(fp);// qui c'è l'errore!!!
fclose(fp);
}
void scrivifile(FILE* fp)
{
fprint(fp,"zio paperino\n");
}
}// end main
eventualmente, che errore ti da ?
sono errori casuali!
ma ora funziona perfettamente!
************************************************
c'è un mistero in BCB che non ho ancora scoperto
************************************************
se inizio un nuovo progetto e lo salvo in una directory con nome
"progetto1" in c:\windows\desktop\progetto1
e poi, per comodità, sposto "progetto1" sotto c:\temp
compilando, vengono generati una miriade di errori, compreso
quello da me esposto
sarà un bacarozzo dell'editor o un'opzione dello stesso che mi sfugge!!
Ciao
Originally posted by "/\/\@®¢Ø"
ma il tipo di fp non e' FILE* ?
In tal caso sicuramente non puoi usare una funzione che chiede un FILE& o un FILE semplice...
Azz...è vero :)
questa è una frase criptata attraverso un mio banale algoritmo:
+AÑÞÎÙßÏÚâÙèBÉà&#8218;ÑèÏÞÛÙè6ÉÑÔÙâÞÍâß
desideravo conoscere se qualcuno è in grado di decriptarla per sapere se il mio metodo è efficace
io temo di no
Credo che serva qualche indizio ulteriore...altrimenti non ci sono metodi per risalire al sorgente...che ne so...una stringa di riscontro (in chiaro e criptata), se la lunghezza della frase criptata è uguale al sorgente, se la frase che hai criptato ha un senso...
Originally posted by "cionci"
Credo che serva qualche indizio ulteriore...altrimenti non ci sono metodi per risalire al sorgente...che ne so...una stringa di riscontro (in chiaro e criptata), se la lunghezza della frase criptata è uguale al sorgente, se la frase che hai criptato ha un senso...
ma se si vocifera che esistono programmi in grado di decriptare qualsiasi cosa
forse devo aver visto qualche film di troppo
Eh sì...renditi conto che io potrei fare molti algoritmi che codificano una qualsiasi stringa (solo limitata dalla lunghezza) nella stessa identica stringa criptata che hai postato...
Poi vabbè se l'algoritmo è banale ci si arriva in qualche modo... Solitamente la prima strada che si cerca riguarda la corrispondenza 1-1 di carattere criptato e carattere in chiaro...
Comunque certo non è impossibile riuscire ad arrivare al testo celato, ma sicuramente servono altri indizi...
/\/\@®¢Ø
10-03-2003, 16:24
Originally posted by "misterx"
ma se si vocifera che esistono programmi in grado di decriptare qualsiasi cosa
forse devo aver visto qualche film di troppo
In linea generale non esiste niente di indecrittabile (forse sfruttando la meccanica quantistica sembra... ma per ora niente di certo). Tutto sta a vedere quanto tempo occorre. Non sapere di preciso l'algoritmo utilizzato e' un aiuto ma non ferma certo una persona decisa (ed esperta). La sicurezza di solito la si pone nella mole di dati necessaria per una "forzatura" (ad esempio se per decrittare un mess. con forza bruta ti ci vogliono 3000 anni penso che desisterai :D)
eppure pensavo che vi fossero programmi in stile FBI che ci impiegassero un attimo
se ci voglio veramente 3000 anni; per i miei scopi il mio algoritmo va più che bene
cmq, ho solo reinventato l'acqua calda :)
Comunque non è detto che per il tuo algoritmo ci vogliano 3000 anni...il discorso era che bisogna fare in modo che per forzare l'algoritmo ci voglia molto tempo...
Per il tuo non so...ma se c'è una corrispondenza carattere-carattere ci si mette molto poco... Ad esempio il procedimento più semplice per criptare è l'or esclusivo...magari a maschera variabile sul contenuto del testo...
scusa ma ultimamente sono un pò fuso; non ti ho spiegato il metodo
è semplicissimo
digito una sorta di password (alfanumerica) lunga a piacere
leggo un carattere alla volta e sommo al primo byte letto il primo carattere della password, al secondo carattere letto il secondo carattere della password e così via
però c'è una chicca finale
la seconda volta che scansiono la password, parto dal secondo carattere, per evitare fenomeni di ripetibilità; e così via sino alla fine della password
alla fine del ciclo, sommo la password al contrario usando il medesimo metodo
Tanto per fare "Cultura":
Ci sono strumenti che rilevano a distanza lo stato magnetico del monitor in modo da sapere tutto quello che stai facendo.
In genere le "Autorità" piuttosto che perdere tempo a decrittare,
quando il tipo è uno "tosto",lo fregano a monte cioè nel momento in cui lui accede al file in chiaro o semplicemente piazzandoti un key logger o similaria.
Con il microscopio a scansione magnetica possono fare del tuo disco quasi quello che vogliono.
Statisticamente infatti per una cancellazione sicura ci vogliono una trentina di sovrascrittura.
Morale :puoi avere l'algoritmo più tosto del mondo ma quando hai una microcamera che ti spia quando digiti la pass sei fregato e manco lo sai.
:D
avevo già sentito tempo fa questa storia, ma è roba da controspionaggio industriale o giù di li
penso che non sia il mio caso, sempre che non interessi loro le foto delle mie vacanze :)
/\/\@®¢Ø
12-03-2003, 08:15
Originally posted by "misterx"
eppure pensavo che vi fossero programmi in stile FBI che ci impiegassero un attimo
se ci voglio veramente 3000 anni; per i miei scopi il mio algoritmo va più che bene
cmq, ho solo reinventato l'acqua calda :)
Il tempo dipende dalla complessita' dell'algoritmo (e della chiave) utilizzato. Se comunque l'algoritmo lo vuoi per necessita' (lavoro ad esempio) e non per divertimento, forse e' meglio se provi qualche libreria gia' pronta. Ce ne sono diverse in giro, anche di gratuite, anche se non saprei consigliarti quale visto che non le conosco bene.
RC5 o RC4....ad esempio...
Sono stati crackati, ma fanno ancora il loro sporco lavoro...
Se vuoi fare lo sborone RSA ;)
Poi c'è MD5, ma non serve per criptare...è una specie di impronta digitale...
Originally posted by "verloc"
Tanto per fare "Cultura":
Ci sono strumenti che rilevano a distanza lo stato magnetico del monitor in modo da sapere tutto quello che stai facendo.
In genere le "Autorità" piuttosto che perdere tempo a decrittare,
quando il tipo è uno "tosto",lo fregano a monte cioè nel momento in cui lui accede al file in chiaro o semplicemente piazzandoti un key logger o similaria.
Con il microscopio a scansione magnetica possono fare del tuo disco quasi quello che vogliono.
Statisticamente infatti per una cancellazione sicura ci vogliono una trentina di sovrascrittura.
Morale :puoi avere l'algoritmo più tosto del mondo ma quando hai una microcamera che ti spia quando digiti la pass sei fregato e manco lo sai.
:D
DOVE SI PUO' TROVARE INFO CIRCA QUESTO MICROSCOPIO A SCANS ELETTRONICA
E QUELLO STRUMENTO CHE MISURA A DISTANZA LO STATO MAGNETICO
DEL VIDEO?
CIOE' SONO QUASI COSE INCREDIBILI, SAI ALTRO?
continuo su questo 3d
Cionci, tempo fa si parlava degli hook di windows, tcnologia ch dovevo sfruttare per lavoro ma, mi avevi messo la pulce all'orecchio circa gli oggetti COM o similari
ti ricordo che avevo la necessità di influenzare il comportamento di un programma attraverso un altro programma
mi chiedevo cosa mi avevi suggerito! (benedetto motore di ricerca)
volevo provare per questa strada :)
Sinceramente non me lo ricordo... Gli oggetti COM servono per altre cose...
Sono componenti da utilizzare in altri programmi...tipo ActiveX...
ah, ora ricordo: mi hai risparmiato una ricerca
però, il programma che desidero controllare è basato tutto su tali controlli
Il microscopio elettr. a scansione magn.non costa molto: 6000-7000 $
se però lo interfacci da te al computer con un programma apposta(mi pare di ricordare).Altrimenti costa un sacco di soldi.
In genere si fa una copia del disco(se non se lo "possono"portare) con una lamina d'oro.Ed esaminano bit per bit il tuo disco comodamente a casa.
Per il monitor è roba che hanno solo i "servizi" che io sappia.
Non ti saprei dire dove comprarli.
Il problema è che per usarli devi essere quasi un genio :)
Cerca "Peter Guttmann" (non ricordo se si scrive così)
E' una persona molto gentile,a me ha risposto una volta che gli chiesi una cosa.
E' lui che ha dimostrato statisticamente che per una cancellazione sicura ci vogliono 35 passaggi .
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.