Uso della libreria standard C ++ nel malware

1

Di recente stavo analizzando le fonti di ZeuS, ZeroAccess, Carberp e altri malware professionali e c'era una cosa che trovavo strana:

Gli autori non hanno usato molto frequentemente le funzioni standard di std:: delle librerie quando potevano farlo. Intendo cose come std::fstream / std::string / std::cout (per il debug).

La mia domanda è perché? Un sacco di compiti potrebbero essere realizzati più facilmente se usassero queste funzioni. Non penso che l'efficienza fosse la loro preoccupazione dal momento che l'aumento di velocità non sarebbe valso il tempo speso.

Esempio di fonte qui

    
posta PePePlusPlus 04.06.2017 - 15:00
fonte

2 risposte

2

Quando scrivi un malware, dovresti fare il minor numero possibile di ipotesi sulle librerie esistenti sulla macchina bersaglio (vittima). Poiché le fonti mostrate nel commento sono per Windows, tutto ciò che si può tranquillamente assumere è che saranno disponibili le funzioni per le chiamate WINAPI, poiché qualsiasi dipendenza aggiuntiva sui bit ridistribuibili per qualsiasi sistema C o C ++ potrebbe essere presente o meno: molte macchine Window hanno nessun tool di sviluppo installato e hanno solo le librerie (DLL) richieste da altri software.

Ciò significa che per essere in grado di utilizzare le funzioni dalla libreria C ++ (o anche C), lo sviluppatore dovrebbe collegare staticamente la libreria standard utilizzata risultante in un'applicazione pesante, quando un malware dovrebbe essere piccolo per non pianificare la luce su a causa delle sue dimensioni.

Questo è un possibile motivo per cui gli sviluppatori di Zeus fanno un uso intensivo delle chiamate WINAPI ed evitano le chiamate alla libreria standard C, non parlando di C ++ che aggiungerebbe un nuovo livello e un sovraccarico di dimensioni.

    
risposta data 20.09.2017 - 16:53
fonte
-1

È dovuto al bisogno di eseguire il processo in silenzio. Cosa succede quando provi a eseguire un eseguibile con dll mancante? verrà attivato un messaggio di errore o uno scudo di installazione. Il programmatore non vuole questo perché l'obiettivo principale è quello di eseguire più macchine possibili. Usando la libreria "std" il coder evita alcuni problemi di dipendenze e sarà sicuro che il software verrà eseguito su ogni macchina.

    
risposta data 20.09.2017 - 15:17
fonte

Leggi altre domande sui tag