Domanda Basi programmazione per hacking

Stato
Discussione chiusa ad ulteriori risposte.
Ultima modifica da un moderatore:
Mai detto che non vale un c.azzo, ma se hanno creato C per sostituire l'assembly nella creazione di sistemi UNIX e GNU una ragione ci sarà no?
Mettiamola così. Il C è una tecnologia tale per cui ci metti MOLTO meno tempo a implementare algoritmi, però assembly è certamente necessario alle volte.
Loro hanno semplicemente detto che per certe determinate cose l'assembly bisogna saperlo, nulla di più nulla di meno.
Messaggio unito automaticamente:

P.s. ma sapete già che molti dei commenti che stiamo facendo sono OffTopic e verranno eliminati giusto?
In teoria non lo è per il semplice fatto che state discutendo se l'autore del post deve studiare o meno assembly basandovi sulla sua utilità nel 2021.
 
dato che la sintassi è più o meno uguale alla maggior parte dei linguaggi.
a massimo la semantica, la sintassi cambia da linguaggio a linguaggio, anche tra C e C++ si trovano cambiamenti, anche di non poco conto, l'unica cosa che è simile in tutti i linguaggi è appunto la semantica e il paradigma di programmazione.


??? Assembly lo usavano negli anni 70 per sviluppare i sistemi unix, poi hanno lasciato quella roba ed hanno inventato C (perché con Assembly dovevi creare dei porting dell'intero sistema in funzione dell HW), quindi a cosa serve Assembly nel 2021??
Se lo vuoi studiare perché hai tempo da buttare allora puoi farlo, ma Assembly non lo usa più nessuno, anche per la programmazione in PLC ormai o usi C o il ladder.
 
  • Mi piace
Reazioni: HellIn
Non vorrei dire ma ho già fatto vedere tutti i linguaggi che utilizza, e direttamente dal repo, invece di usare wikipedia usa gli occhi per leggere cosa abbiamo scritto fin ora.

 
  • Mi piace
Reazioni: RuBBeR_
@FuckSociety tra l'altro la wiki parla delle versioni aggiornate del kernel, qui parlavamo in merito alla prima versione, quindi bho...
Poi continui a parlarmi di Kernel, ma sai cos'è GNU e cos'è linux? e di conseguenza sai cos'è GNU/Linux?

P.s. ma sapete già che molti dei commenti che stiamo facendo sono OffTopic e verranno eliminati giusto?
 
  • Mi piace
Reazioni: RuBBeR_
Mettiamola così. Il C è una tecnologia tale per cui ci metti MOLTO meno tempo a implementare algoritmi, però assembly è certamente necessario alle volte.
Loro hanno semplicemente detto che per certe determinate cose l'assembly bisogna saperlo, nulla di più nulla di meno.
Messaggio unito automaticamente:


In teoria non lo è per il semplice fatto che state discutendo se l'autore del post deve studiare o meno assembly basandovi sulla sua utilità nel 2021.
Grazie. E' quello che sto cercando di spiegare da 2 giorni
 
Ultima modifica:
go è performante perché ha una sintassi semplice e "scarna" rispetto a qualsiasi altro linguaggio derivato dal C.

@At3x si ma dall'affermare che:

l'assembly serve punto e basta

a dire che:
assembly è certamente necessario alle volte.

c'è na bella differenza no?

Implicitamente(neanche così tanto) credo che nel Topic venisse chiesto di suggerire linguaggi di alto livello, non Linguaggi per programmare Processori o Device, o comunque un linguaggio simil Macchina, giusto?

Se poi mi venite a dire che per un ingegnere informatico, che sta creando il nuovo processore "Cippalippam43DeluxVibratoreSuppaPowa" Assembly è indispensabile, sono d'accordo, ma per un programmatore no, a meno che non abbia esigenze del tutto particolari.

Un virus lo si può creare anche con uno script in BASH, e puoi fare una quantità di danni illimitata.

Magari sono io che non ho compreso, magari sono ignorante, come suggeriva qualcuno, bho.
 
  • Mi piace
Reazioni: UpsurgeCerberus
Update, che magari può interessare a qualcuno: oggi parlavo nuovamente della questione con dei colleghi e sento sempre più parlare bene di Go (qualcuno anche di Rust). Fra l'altro, il mio commento relativo al team SpecterOps che utilizza perlopiù tecniche basate su .NET è relativo ad un training che feci con lorö qualche anno fa e non å più vero - pare si stiano spostando anche loro su Go, a detta di un collega che ha seguito il loro workshop molto più recentemente (credo il mese scorso): https://posts.specterops.io/malware-development-pt-1-dynamic-module-loading-in-go-1121f07f3a5a
Nell'articolo viene citato CGo, altro concetto che sto vedendo nominare molto frequentemente. Insomma, questo sembra confermare in pieno ciò che diceva @UpsurgeCerberus ; sicuramente Go ha adesso il mio totale interesse, quindi so già come riempire il mio (inesistente) tempo libero.
 
  • Mi piace
Reazioni: Eoloprox

Eoloprox

Utente Emerald
20 Marzo 2016
607
151
51
415
Mi devo buttare sulla programmazzione, mi chedevo quale è la migiore sana base per exploit, malware, pentest, hacking ecc...
Mi hanno detto il C# non il C, o il c++, sono indeciso. Grazie per le risposte in anticipo ciao
 
Ultima modifica da un moderatore:
Puoi fare exploit in qualsiasi linguaggio di programmazione credo, ti consiglio di iniziare dal C, per impararlo leggi questi libri e un altro linguaggio che mi è stato consigliato, per l'hacking, è il golang. Ti può servire anche l'Assembly ma non è un linguaggio di programmazione ed è molto difficile da imparare.
 
Dipende da ciò che vuoi fare. A prescindere da tutto bash, powershell e python serve saperli. Se poi ti orienti su malware development per windows, C# regna sovrano, per ora (e nello specifico, se intraprendi questa strada dovrai dare un'occhiata alle direct syscall, PInvoke e DInvoke)
 
Quindi per malware ecc... il C# e una degna alternativa?? Credevo fosse l'ultima spiaggia! Comunque mi sono buttato proprio li, sto facendo da auto didata sul tubo, poi penso si faranno delle videolezioni, mi hanno sparato 1500 euro per 45 ore azz!
 
Quindi per malware ecc... il C# e una degna alternativa?? Credevo fosse l'ultima spiaggia! Comunque mi sono buttato proprio li, sto facendo da auto didata sul tubo, poi penso si faranno delle videolezioni, mi hanno sparato 1500 euro per 45 ore azz!
Lascia perdere qualsiasi corso online e inizia a studiare dai libri, non li trovi gratis ma di sicuro imparerai molto di più da essi che dai corsi. Ti consiglio di iniziare dal C, tutti abbiamo iniziato da quello, ti insegna come funziona la memoria e ti ritroverai avvantaggiato quando andrai a studiare un altro linguaggio, dato che la sintassi è più o meno uguale alla maggior parte dei linguaggi. Il C# non è obbligatorio, io ti consiglio di fare C, golang e assembly, so che quest'ultimo è molto difficile ma sono sicuro che ti tornerà molto utile, poi ,come ti hanno già detto, studia qualche linguaggio di scripting.
 
Assembly lo usavano negli anni 70 per sviluppare i sistemi unix, poi hanno lasciato quella roba ed hanno inventato C
Assolutamente no, Assembly è ancora usato tutt'oggi per i kernel e driver e UNIX tutt'oggi usa Assembly, inoltre, può essere molto utile per lavorare a basso livello e per i malware può tornargli utile.

golang deriva da C, quindi si deve passare sempre da quello.
Ok se conosci il C non è che conosci automaticamente golang.
 
a massimo la semantica, la sintassi cambia da linguaggio a linguaggio, anche tra C e C++ si trovano cambiamenti, anche di non poco conto, l'unica cosa che è simile in tutti i linguaggi è appunto la semantica e il paradigma di programmazione.



??? Assembly lo usavano negli anni 70 per sviluppare i sistemi unix, poi hanno lasciato quella roba ed hanno inventato C (perché con Assembly dovevi creare dei porting dell'intero sistema in funzione dell HW), quindi a cosa serve Assembly nel 2021??
Se lo vuoi studiare perché hai tempo da buttare allora puoi farlo, ma Assembly non lo usa più nessuno, anche per la programmazione in PLC ormai o usi C o il ladder.
Devo appoggiare FuckSociety, l'assembly tutt'oggi non è come il C che bene o male puoi evitarlo, l'assembly serve punto e basta soprattutto lavorando con windows e implementazioni win32 non documentate, e lo dico per esperienza non a caso.

Comunque buona fortuna se studierai driver kernel, efi-r ed efi se non userai assembly.
Messaggio unito automaticamente:

Quindi per malware ecc... il C# e una degna alternativa?? Credevo fosse l'ultima spiaggia! Comunque mi sono buttato proprio li, sto facendo da auto didata sul tubo, poi penso si faranno delle videolezioni, mi hanno sparato 1500 euro per 45 ore azz!
Il C# è buono lo consiglio per qualsiasi cosa ma... è relativamente facile analizzare .NET e di conseguenza viene detectato abbastanza facilmente se non sei esperto, anche perchè viene interpretato dal runtime .net e non è nativo.
Linguaggi migliori per i malware: Go, Rust, C++ e assembly se servisse.
Messaggio unito automaticamente:

Lascia perdere qualsiasi corso online e inizia a studiare dai libri, non li trovi gratis ma di sicuro imparerai molto di più da essi che dai corsi. Ti consiglio di iniziare dal C, tutti abbiamo iniziato da quello, ti insegna come funziona la memoria e ti ritroverai avvantaggiato quando andrai a studiare un altro linguaggio, dato che la sintassi è più o meno uguale alla maggior parte dei linguaggi. Il C# non è obbligatorio, io ti consiglio di fare C, golang e assembly, so che quest'ultimo è molto difficile ma sono sicuro che ti tornerà molto utile, poi ,come ti hanno già detto, studia qualche linguaggio di scripting.
Secondo me dovreste smettere con questo taboo del C, è utile solo per mantenere sistemi vecchi scritti precedentemente in C o kernel davvero complessi/lunghi. Il C++ è un'estensione a tutti gli effetti del C infatti qualsiasi codice C viene eseguito tranquillamente su C++, che è più moderno e non ha letteralmente niente che il C non abbia, anzi.
 
Ultima modifica:
se va bè andate a leggere un pò la storia di Unix(tutto ciò che esiste oggi è un derivato di unix, ma non è unix, da IBM a Apple) GNU è un progetto nato anche grazie a C tecnologia molto più avanzata dell'assembly, il kernel Linux è scritto interamente in C(così come molti altri kernel), se poi non conoscete la storia di Unix e di Gnu/Linux è un altro conto, per il resto pensatela come volete.
 
se va bè andate a leggere un pò la storia di Unix(tutto ciò che esiste oggi è un derivato di unix, ma non è unix, da IBM a Apple) GNU è un progetto nato anche grazie a C tecnologia molto più avanzata dell'assembly, il kernel Linux è scritto interamente in C(così come molti altri kernel), se poi non conoscete la storia di Unix e di Gnu/Linux è un altro conto, per il resto pensatela come volete.
Se preferisci fare l'ignorante resta e fai come vuoi, il kernel linux è scritto sia in C che in Assembly e un paio di altri linguaggi, nessuno sta criticando ne C ne ASM, sono linguaggi che al giorno d'oggi se non lavori su architetture specifiche o con driver kernel, efi-r, efi ecc, ti servono a poco e nulla.
Immagine 2021-02-27 203330.png
 
Finito di insultarvi? Altrimenti chiudo anche se non ho i poteri.... :D
Ho letto un pò di ASSEMBLY e il corso su cui mi sto buttando ne sconsiglia l'utilizzo non perche non valga un cazz@, ma perchè il livello è molto basso e lo sapete meglio di me.... Sè il fine era di creare malware ed exploit, prendo come buono il C, ma come prima esperienza ho approfondito lo C#, ed il corso di C++ è davvero un casino, quello che ho imparato nello stesso numero di lezioni in C#, non ho imparato in C++ ed ho avuto piu soddisfazioni... Mi riservo di intraprendere oltre allo C# anche un futuro corso di C e C++. ciao
 
Ultima modifica:
Ti consiglio comunque di partire prima da C essendo gli altri linguaggi tutti dei derivati di quest'ultimo.

ne sconsiglia l'utilizzo non perche non valga un cazz@
Mai detto che non vale un c.azzo, ma se hanno creato C per sostituire l'assembly nella creazione di sistemi UNIX e GNU una ragione ci sarà no?
Altrimenti continuavano ad usarlo, C è molto performante anche in merito alla programmazione di Basso livello e alla gestione della memoria.
Quando negli anni 70 si usava Assembly era un casino, perché se dovevi far girare UNIX su un sistema con Hardware diverso da quello di partenza eri costretto a riscrivere l'intero codice, quindi per ogni azienda che voleva UNIX sui propri Device si doveva creare sempre un porting diverso adatto al nuovo Hardware.
Con C invece questo problema è stato risolto, permettendo di creare codice che potesse girare su tanti tipi di Hardware diversi senza dover
andare a riscriverlo per intero ogni volta.

Ma a quanto pare solo gli ignoranti si vanno a leggere la storia della nascita dei sistemi UNIX e di GNU/Linux(Che è in stretta correlazione con la nascita di internet tra la fine degli anni 60 e l'inizio degli anni 70, quando fù progettato il protocollo TCP/IP, dal Dipartimento della Difesa americano con l'aiuto dei ricercatori dell'ARPANET )
 
Ti dico quella che è la mia esperienza lavorativa e dei miei vari colleghi. Se devi operare a livello malware su windows, C# e C++ sono la strada più diretta e che ti offre una marea di possibilità, specie se parliamo di integrazione con vari C2, tipo Cobalt Strike e Covenant. C'è un motivo se i team di SpecterOps ed MDSec (non proprio gli ultimi arrivati) hanno spostato tutte le loro tradecraft su C#.

Qualcuno diceva che .NET è facile da analizzare - vero di base, vero anche però che qualsiasi cosa fatta a ca**o di cane è facile da analizzare.
 
Stato
Discussione chiusa ad ulteriori risposte.