St3ve sei molto molto fuori strada. Mescoli la gui con il codice, AAAAAH che dolore al cuore!!!!!
E attento che RAD è diverso da editor di risorse!!!! RAD (rapid application development) non è qualcosa di tangibile, ma è un metodo di sviluppo del software, non un ambiente!!!!
Sono definiti ambienti RAD tutti quei linguaggi associati ai relativi ambienti di sviluppo (esempio di prodotto il visual studio con vb) che ti permette un rapido sviluppo di applicazioni e non editor di risorse, ma stiamo scherzando?
Per esempio una delle caratteristiche fondamentali di un ambiente RAD è la prototipizzazione, oppure la semplice integrazione con la gui (ma non la creazione, solo la sua INTEGRAZIONE), oppure la facilità di creare oggetti che interagiscono ecc...
Sinceramente il termine RAD l'ho sentito per la prima volta in questo thread. Non sapendo cosa fosse mi sono informato e mi è balzata all'occhio questa pagina di wikipedia:
List_of_rapid_application_development_tools; e mi sono saltati all'occhio tools a me familiari come come: WxDevC++ (solo di nome, ma avevo provicchiato wxDesigner in visual studio) e Qt (provato [sia usando QtDesigner e visual studio che usando QtCreator], anche se non ci ho fatto nessun programma "serio").
La pagina
italiana di wikipedia è a dir poco scarna, quella in
inglese l'ho letta solo in piccola parte; visto che mi ci vuole un certo tempo per comprendere l'inglese (e non ero nemmeno particolarmente interessato da quello che leggevo) ho letto la lista dei programmi e probabilmente sono giunto frettolosamente a una conclusione. Leggerò anche la pagina inglese e mi informerò meglio.
Un editor di risorse per fare gui, le fa PERFETTE, stiamo parlando di standard informatici. Addirittura dici che sembra tirare a caso? Scusa l'espressione ma davvero non sai di cosa stai parlando.
Con: "editor che apparentemente sembrano funzionare tirando a caso" mi riferivo all'uso frettoloso di programmi come Qt Creator (evito di definirli perché, come detto sopra, non mi sono ancora documentato sulla giusta terminologia per questo tipo di programmi).
Un esempio palese di come il mio ragionamento sia corretto è visual basic (6 / .net): non dirmi che non hai mai letto (anche su inforge) domande dove risulta palese che chi le ha postate non ci capisce un piffero di programmazione; tirando a caso i controlli molti si improvvisano programmatori.
Se non lo puoi fare con visual basic a maggior ragione non lo puoi fare in c++.
Con cosa pensi siano fatte tutte le gui di tutti i gestionali aziendali fatti in C?
Non ho detto che in c/c++ non si possa fare una gui, maya è scritto in c++ usando le Qt, ho detto che non è semplice (a maggior ragione se paragonato a visual basic). Ed è ben diverso!
ok andiamo oltre:
Il fatto che tu trova semplice "crackkare" la password di un crackme fatto in Qt, sai cosa significa? SOLO (e lo sottolineo solo) che chi la fatto tale crackme, non era in grado di scrivere codice decente... oppure ha voluto farlo coscentemente semplice. Cosa che si distacca totalmente dalla sua gui.
giusto per fare un esempio, qui ho proposto un facilissimo crackme:
http://www.inforge.net/community/reversing/120349-[crackme]-crackmeasm4-[keygen-solved-ricky92].html
(tra l'altro già risolto) che ha la gui realizzata con l'editor. Ora spiegami il legame tra la generazione del seriale e la sua gui.
Come faccio a crackkare un crackme (
fatto da un inesperto) con una gui? (ribadisco che parlo c++)
Semplice, prendiamo ad esempio Qt, che sono quelle che conosco meglio, seppur sia poco. Le Qt usano la classe QString per gestire le stringhe nei suoi controlli. Il primo pirla che passa, per evitare problemi di casting, potrebbe eseguire tutti i controlli direttamente da questa classe.
Se io ricompilo la dll (è open source) aggiungendo codici per stamparmi un log o per mostrarmi a schermo (le classiche cose che si fanno in fase di debugging per intenderci) nella classe QString posso vedere tutto quello che succede. Se vuoi avere un solo exe (senza dll), da quel che ricordo, ti devi comprare la licenza di Qt (per un crackme?! ridicolo).
Non c'è bisogno di nessuna nozione di cracking per beccare la password in questo modo...
Ovviamente ho fatto un esempio stupido, ma il concetto penso si sia stato chiarito.
Poi sconsigliare lo suidio del C++ è informaticamente una eresia. Il C/C++ è ancora in assoluto il migliore linguaggio per tutta una serie di motivi che non stiamo inutilmente ad elencare qui. E per migliore linguaggio intendiamo quel linguaggio che presenta il piu' alto rapporto tra risultato e prestazioni (senza dimenticare il multipiattaforma e diffusione).
Ormai pareggiato solo dalla famiglia del Net, il quale pero' presenta gli svantaggi derivati dalla decompilazione del codice, la necessità del framework e la non totale multipiattaforma.
Non ho sconsigliato lo studio del c++, sarei incoerente visto che è l'unico linguaggio che conosco bene (quanto bene dipende punti di vista), ma ho sconsigliato di fare gui in c++ senza una buona padronanza del linguaggio e della libreria utilizzata!
L'utente ha richiesto un modo semplice per fare gui e, secondo me, un'ottima scelta può essere FLTK (non l'ho provata seriamente, ma qualche prova l'ho fatta). Per un crackme dubito gli serva una grafica complessa e come si può vedere dalla documentazione mettere button, textbox e messagebox è semplicissimo. Inoltre hai decisamente più
"controllo" rispetto a Qt (per dirne una) che genera automaticamente parte del codice e ti permette di pasticciare con il designer senza realmente sapere quello che si sta facendo.
Secondo le mie esperienze, qualcosa per fare gui a mo dì visual basic in c++ non esiste!
Avrei anche da ridire che i .net (che sono comunque ottimi linguaggi) siano alla pari con c++, ma capisco che lo sai bene dalla tua frase successiva: "
In ogni caso il C++ rimane (per molti motivi) ancora il linguaggio "padrone" della scena della programmazione."
Per fare una gui non occorre nessun concetto di programmazione, nessuno! la si crea, ogni controllo ha un ID e lo si utilizza nel codice. Siete troppo abituati a doppio click nel visual studio.
Aprofitto del discorso sollevato per dire che ho quasi utlimato il packer per AuoiT, l'ho codato in ASM, ho fatto la gui e gli ho fatto pure il DRAG&DROP!!!!!! e stiamo parlando di asm, figuriamoci con C...
Ciauzzzzz
Gli ho consigliato di fare tutto via codice e dici "siete troppo abituati al doppio click di visual studio"?
Comunque non ho mai parlato di concetti di programmazione, semplicemente reputo doveroso conoscere sufficientemente linguaggio e libreria prima di mettersi all'opera. A prima vista sembra tutto facile, ma quando provi a fare qualcosa di un po' più cazzuto la storia cambia.
Un crackme magari non sarà particolarmente cazzuto (dal punto di vista di rapporto uomo-interfaccia grafica) ma penso che sia doveroso conoscere la
"struttura" del proprio programma (tant'è vero che si fanno in asm). Ma qui potrei sbagliarmi, visto che ho 0 teoria e 0 esperienza sulle crack.
PS. Sti messaggioni... :suicidio: