Tutos pour unpack .NET manuellement

Mettez à disposition vos propres cours de cracking ou des cours que vous trouvez intéressant.

Tutos pour unpack .NET manuellement

Messagepar Titou35 » 02 Juillet 2013, 21:53

Coucou !

Alors avant de crier au loup, du genre : "Mais il y a que des tools pour unpack du .NET, qu'est ce qu'il nous chie celui-la ?! ", je m'explique :

Je suis tombé sur un os, il y a en effet beaucoup de tools pour unpack des .NET, seulement la je dois le faire à la main xD
Après quelques recherches, j'ai compris que je m'y attaque avec Windbg (pourquoi pas...), seulement je m'en suis jamais servi et apparemment la prise en main est un peu compliquée !

Je me posais donc la question si vous aviez déja vu des tutos avec Windbg pour unpack, et si oui, ou ça ? :)
Il y a pleins de tutos avec Olly mais Windbg, que nenni.

Voila, merci d'avance :)
Titou35
 
Messages: 6
Inscription: 28 Juin 2013, 19:11

Re: Tutos pour unpack .NET manuellement

Messagepar Bango » 03 Juillet 2013, 08:09

\ô/
Avatar de l’utilisateur
Bango
Modérateur
Modérateur
 
Messages: 1527
Inscription: 23 Juillet 2007, 15:33
Localisation: Gotham city

Re: Tutos pour unpack .NET manuellement

Messagepar Titou35 » 03 Juillet 2013, 09:33

Merci pour les tutos :)

Hélas, le soft est protégé par un packer qui m’empêche d'avoir accès au code source. "embedded.module not found"
Je ne peux donc pas faire ce genre de manips :)
Titou35
 
Messages: 6
Inscription: 28 Juin 2013, 19:11

Re: Tutos pour unpack .NET manuellement

Messagepar Martinooooo » 04 Juillet 2013, 10:18

Tu pourras t'aider de ce fichier header : https://netasm.svn.codeplex.com/svn/Net ... 1/corjit.h
Pour la protection que tu as, si tu tiens absolument à le faire à la main :
WinDBG =>
- Charge le module SOS
- Pose un breakpoint sur corjit.dll!ICorJitCompiler::compileMethod
- A chaque arrêt, récupère le code IL de chaque procédure ainsi que son identification pour le remettre à sa place.
Tu peux utiliser ces "petites aides" issus des headers du Rotor project :

Code: Tout sélectionner
    virtual CorJitResult __stdcall compileMethod (
            ICorJitInfo                 *comp,               /* IN */
            struct CORINFO_METHOD_INFO  *info,               /* IN */
            unsigned /* CorJitFlag */   flags,               /* IN */
            BYTE                        **nativeEntry,       /* OUT */
            ULONG                       *nativeSizeOfCode    /* OUT */
            ) = 0;


Code: Tout sélectionner
struct CORINFO_METHOD_INFO
{
    CORINFO_METHOD_HANDLE       ftn;
    CORINFO_MODULE_HANDLE       scope;
    BYTE *                      ILCode;
    unsigned                    ILCodeSize;
    unsigned short              maxStack;
    unsigned short              EHcount;
    CorInfoOptions              options;
    CORINFO_SIG_INFO            args;
    CORINFO_SIG_INFO            locals;
};


PS: je t'ai donné le embedded.module dumpé par MP mais sans le code IL, sers-toi en !
Acme::Don't
Acme::Bleach
Acme::Pony
Lingua::Romana::Perligata
The Lingua::Romana::Perligata makes it makes it possible to write Perl programs in Latin. (If you have to ask "Why?", then the answer probably won't make any sense to you either.)
Avatar de l’utilisateur
Martinooooo
Maître des ténèbres
Maître des ténèbres
 
Messages: 575
Inscription: 19 Août 2008, 08:20
Localisation: DR8, le + utile DRx

Re: Tutos pour unpack .NET manuellement

Messagepar Titou35 » 04 Juillet 2013, 17:38

Yes merci encore pour ton aide Martinoooo, je peux rien faire actuellement mais je testerais tout ca demain :)

Pour l'unpack manuel, ça serait un plaisir qu'il existe un tool pour le faire à ma place mais je n'en ais pas trouvé, je suis ouvert à tout soft xD
Titou35
 
Messages: 6
Inscription: 28 Juin 2013, 19:11

Re: Tutos pour unpack .NET manuellement

Messagepar Martinooooo » 04 Juillet 2013, 21:33

Vu que c'est un packer qui n'est pas fréquemment utilisé, je pense qu'il va falloir que tu le codes toi-même ;)
https://bitbucket.org/0xd4d/dnlib
Acme::Don't
Acme::Bleach
Acme::Pony
Lingua::Romana::Perligata
The Lingua::Romana::Perligata makes it makes it possible to write Perl programs in Latin. (If you have to ask "Why?", then the answer probably won't make any sense to you either.)
Avatar de l’utilisateur
Martinooooo
Maître des ténèbres
Maître des ténèbres
 
Messages: 575
Inscription: 19 Août 2008, 08:20
Localisation: DR8, le + utile DRx


Retourner vers Tutoriels

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron