DotNet Native In-Memory Loader

JunkCoder

Moderatore
5 Giugno 2020
1,682
25
1,495
603
Ciao a tutti, tempo fa dovevo distribuire un software (gestionale) fatto in C#, che quindi richiedeva il .NET Framework, essendo i clienti allergici a tutto cio' di tecnico, nel momento in cui vedevano l'errore del .NET framework mancante erano gia' col telefono in mano. All'epoca avevo risolto includendo il setup offline del .NET nel mio setup, ma ovviamente faceva diventare il programma gigantesco e difficile da inviare, tra chi ha i filtri di dimensione massima nella posta ecc. Quindi poi ho sviluppato questo piccolo tool che non fa altro che inserire il vostro programma in uno stub nativo, senza dipendenze esterne, esso verifica che il .NET sia installato e carica in memoria il vostro programma (senza quindi estrarlo e salvarlo sul disco), in caso non e' installato invece mostra il messaggio scelto da voi al momento del packing, con la possibilita' di aprire un URL, sempre scelto da voi, che porta al download facilitato.

Fatemi sapere se avete in mente nuove feature o bug da segnalare.

Nota: il fatto di avere un eseguibile in pancia non piace ad alcuni antivirus, per questo gli do una passata di XOR con roba a caso, tuttavia il vostro eseguibile potrebbe comunque avere qualche falso positivo.

Nota 2: il fatto di avere uno stub nativo non ostacola granche' i tentativi di reversing, non ha particolari protezioni, e se non le ha neanche il vostro programma sara' facile dumparlo dalla memoria, tuttavia blocchera' gli scriptkiddie che sanno solo fare drag n drop in Reflector.

Nota 3: non rilascero' il sorgente dello stub nativo. Il packer in C# non e' offuscato.

loaderScreen.png



loaderMissing.png



loaderURL.png
 

Allegati

  • DotNetLoader.zip
    69.3 KB · Visualizzazioni: 6
Perchè non caricare il tuo programma su un host e fare una pagina di supporto statica?
Alla fine basterebbe scrivere 2 righe di informazioni.

Meglio ancora se fai un controllo tramite una specie di launcher che ti reindirizza sul sito se non hai il .net framework installato.

Inviare eseguibili via mail è una delle cose da evitare assolutamente, tutto questo giro mi sembra più fatica sprecata che altro.
 
Perchè non caricare il tuo programma su un host e fare una pagina di supporto statica?
Alla fine basterebbe scrivere 2 righe di informazioni.

Meglio ancora se fai un controllo tramite una specie di launcher che ti reindirizza sul sito se non hai il .net framework installato.

Inviare eseguibili via mail è una delle cose da evitare assolutamente, tutto questo giro mi sembra più fatica sprecata che altro.

Il launcher di cui parli e' questo, il link che ho messo e' della microsoft ma puo' benissimo puntare ad una tua pagina di supporto, potrei in effetti aggiungere l'opzione di non mostrare alcun messaggio ed aprire direttamente l'URL senza conferma, grazie per il suggerimento.

Il progetto da cui mi e' venuto in mente questo era molto minimal per quello che pagavano, non mi andava certo di creare un sito ufficiale e curato del prodotto con download diretto (ho parlato di mail perche' un cliente in particolare era un dinosauro che sapeva solo usare outlook express per capirci). Sappiamo che la cosa puo' essere risolta in altri modi pero' volevo con questo programma risolverla una volta per tutte, senza reinventare la ruota per i successivi programmi.
 
Non mi riferivo al creare un sito completo, quello servirebbe per pubblicizzare il prodotto o l'azienda.
Intendevo dire che potresti tranquillamente mettere il programma su un server FTP e farlo scaricare passando l'URL al posto dell'allegato.
In questo modo non invii mail con eseguibili (ripeto, meglio evitare) e non hai problemi di spazio.
Per di più ci puoi pure mettere un'autenticazione di base (non dovrebbe essere difficile cliccare su un link e fare copia/incolla delle credenziali anche se il cliente è un ritardato).

Comunque, visto che il cliente non è una cima, meno cose gli fai vedere e meglio è. Secondo me se vede l'url viene triggerato male hahaha