(VIDEO) Utiliser Visual Studio pour débugger avec Reflector

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

(VIDEO) Utiliser Visual Studio pour débugger avec Reflector

Messagepar Martinooooo » 07 Septembre 2012, 14:58

Alors voilà, dans mon premier tutoriel sur les applications .NET, j'utilisais une vieille version de Reflector qui permettait de débugger directement des applications, mais désormais les méthodes sont différentes et moins évidentes.
Voilà la méthode désormais pour débugger en utilisant les dernières versions de Reflector VSPro (utilisée pour fisher le serial de ce crackme ultra simple :http://crackmes.de/users/mayhem/mayhems_crackme_3/) :

hxxp://www.mediafire.com/?nnsz58157511x24
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: 571
Inscription: 19 Août 2008, 08:20
Localisation: DR8, le + utile DRx

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar Todd » 08 Septembre 2012, 09:41

Salut,

waouh elle est rapide ta vidéo :shock: ... il faut suivre ! :?
Sinon j'aime bien cette façon d'analyser le DotNet 8), à part qu'installer une usine à gaz comme Visual Studio juste pour cracker un programme, complique encore plus le cracking :o, car cela nécessite une bonne maitrise de cet outil et de son langage alors qu'en réalité cette cible est simple. :roll: Certes le déboguage est un atout. :wink:

Todd
Avatar de l’utilisateur
Todd
Modérateur
Modérateur
 
Messages: 1795
Inscription: 19 Avril 2009, 12:11

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar Martinooooo » 08 Septembre 2012, 10:07

J'ai pris une cible ultra simple en exemple mais je t'assure que sur certaines cibles très compliquées, VS12 me sauve la vie :)
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: 571
Inscription: 19 Août 2008, 08:20
Localisation: DR8, le + utile DRx

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar lautheking » 08 Septembre 2012, 11:13

Même remarque que Todd: c'est intéressant mais la vidéo est beaucoup trop rapide. Impossible de suivre étape par étape.
"Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety."
- Benjamin Franklin
Avatar de l’utilisateur
lautheking
Triumvirat
Triumvirat
 
Messages: 2930
Inscription: 05 Février 2004, 16:01

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar Xenocode » 13 Février 2013, 13:53

* epic up *

J'ai bien aimé, étant à l'aise avec le .NET je n'ai pas trouvé cette démo trop rapide. Petite question ; théoriquement ça fonctionne avec des Pe obfu ?

Sinon je trouve cette technique très "limitée", dans le sens où mis à part trouver le bon mot de passe lors d'une épreuve type "Crackme" je ne vois pas de grandes possibilités. :)
Avatar de l’utilisateur
Xenocode
Visiteur
Visiteur
 
Messages: 21
Inscription: 10 Février 2013, 17:56

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar Martinooooo » 13 Février 2013, 15:50

Cela ouvre pas mal de voies (analyser où bug ta routine de keygen, un soucis de compatibilité, un patch foireux... en gros un peu plus que trouver un serial) pour des debugs pas trop compliqué. Je pense qu'à peu près 30% des PE Obfus devraient pouvoir être compat', sinon faudra passer par WinDBG.
Debug via VS c'est une bonne méthode pour sortir de l'analyse "only static" pour faire un peu de dynamique, après on peut se mettre à WinDBG pour faire un debug plus rapide/native/jit-hooking/manipulation et .NET internals.
WinDBG pour debugger du .NET c'est 20000x fois mieux, mais ça demande une plus grande prise en main !
Peut-être que je ferai un tuto un de ces jours sur comment l'utiliser à ces fins-là.

Mais je t'assure que le debug par VS est plutôt sympa quand on veut pas s'arracher les cheveux et être tranquille.
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: 571
Inscription: 19 Août 2008, 08:20
Localisation: DR8, le + utile DRx

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar Todd » 14 Février 2013, 22:27

Xenocode a écrit:je n'ai pas trouvé cette démo trop rapide
ouais quand on maitrise déjà les outils et la technique ça se regarde :aie:, mais un tutoriel c'est utile à ceux qui n'en sont pas là et qui ont besoin de prendre le temps d'assimiler :roll: ... là c'est impossible pour eux ! :?
Mais ça n'en reste pas moins un tutoriel intéressant :wink:... à la vitesse 1/100 ! :lol:
Martinooooo a écrit:WinDBG pour debugger du .NET c'est 20000x fois mieux, mais ça demande une plus grande prise en main !
Peut-être que je ferais un tuto un de ces jours
Même pas cap' !? :aie: :lol:
J'ai toujours pas pris le temps d'y regarder :(, alors tu as ma bénédiction. :mrgreen:

Todd
Avatar de l’utilisateur
Todd
Modérateur
Modérateur
 
Messages: 1795
Inscription: 19 Avril 2009, 12:11

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar Martinooooo » 15 Février 2013, 11:11

Todd a écrit:
Martinooooo a écrit:WinDBG pour debugger du .NET c'est 20000x fois mieux, mais ça demande une plus grande prise en main !
Peut-être que je ferai un tuto un de ces jours
Même pas cap' !? :aie: :lol:
J'ai toujours pas pris le temps d'y regarder :(, alors tu as ma bénédiction. :mrgreen:


[je doute que du conditionnel dans du conditionnel ça le fasse beaucoup, 'peut-être que nous ferions un tuto' [condi] vs 'peut-être que nous ferons un tuto' [futur] => la structure au futur me parait bien plus probable]

Toucher à WinDBG, une fois qu'on a pris le temps de comprendre/apprendre; ça permet d'unpack la majorité des unpackers sans gros obstacle (au moins en tout cas si on sait s'amuser à mettre un bp compileMethod en automatisé), de chopper les exceptions cachées et les méthodes cachées, de voir si tout va bien... Je ne pense pas qu'on puisse faire un reversing .NET parfait sans y toucher :)
Bref, le tuto, si j'en fais un (j'ai déjà 2000 trucs promis à faire), sera très basique.
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: 571
Inscription: 19 Août 2008, 08:20
Localisation: DR8, le + utile DRx

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar Todd » 15 Février 2013, 22:08

Martinooooo a écrit:la structure au futur me parait bien plus probable
Ok... mais c'est faux ! :mrgreen:
Le futur de l'indicatif exprime une action future dont la réalisation est quasi certaine. Dans le cas présent, l'utilisation du "Peut-être" souligne l'incertitude et renvoie au conditionnel ! :wink:

C'était bien tenté, mais arrête de te débattre, c'est moi ka le stilorouje ! :lol:

Todd
Avatar de l’utilisateur
Todd
Modérateur
Modérateur
 
Messages: 1795
Inscription: 19 Avril 2009, 12:11

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar baboon » 15 Février 2013, 23:10

Todd a écrit:Ok... mais c'est faux ! :mrgreen:
Le futur de l'indicatif exprime une action future dont la réalisation est quasi certaine. Dans le cas présent, l'utilisation du "Peut-être" souligne l'incertitude et renvoie au conditionnel ! :wink:

Non, c'est correcte et tu as faux :)
"peut-être" ici sous entend un "si" : "s'il peut être, si j'ai le temps, si j'ai la motivation, je ferai un article"
Et non "je ferais bien un article mais je n'ai pas le temps" ou encore "je ferais un article, peut-être" :)
Tout dépend de la position du peut-être :D
Newbie mais ayant soif d'apprendre et étant motivé
Avatar de l’utilisateur
baboon
Modérateur
Modérateur
 
Messages: 3273
Inscription: 08 Juillet 2005, 17:49

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar Martinooooo » 15 Février 2013, 23:36

\o/
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: 571
Inscription: 19 Août 2008, 08:20
Localisation: DR8, le + utile DRx

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar Todd » 16 Février 2013, 00:40

baboon a écrit:"peut-être" ici sous entend un "si"
Oh alors maintenant si on justifie une erreur parce qu'un sous-entendu pourrait potentiellement et vaguement ressembler au conditionnel... mais c'est du futur ! :shock: :lol:
Bon vous ne m'avez pas convaincu :P, mais je vous accorde le bénéfice du doute sur ce cas litigieux. :wink:

Todd
Avatar de l’utilisateur
Todd
Modérateur
Modérateur
 
Messages: 1795
Inscription: 19 Avril 2009, 12:11

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar Martinooooo » 16 Février 2013, 01:32

Je reviens à mon passage 3e personne :
- Avec futur : peut-être que nous ferons un tuto
- Avec conditionnel : peut-être que nous ferions un tuto

La version du futur parait bien plus probable (enfin ça sonne mieux). Au-delà de ça, si tu veux j'email l'académie française... hxxp://www.academie-francaise.fr/node/174
Dernière édition par Todd le 16 Février 2013, 21:38, édité 1 fois.
Raison: Pas de lien direct ! Merci.
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: 571
Inscription: 19 Août 2008, 08:20
Localisation: DR8, le + utile DRx

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar Todd » 16 Février 2013, 02:06

Martinooooo a écrit:enfin ça sonne mieux
Désolé c'est pas un argument valable ! :shock: Moi j'entends régulièrement "comme si que..." ou "si il..." et d'autres horreurs du même genre, mais ça n'en fait pas des vérités !? :?

Martinooooo a écrit:Je reviens à mon passage 3e personne
Tu veux dire 1ère personne du pluriel ! :roll: :P

Martinooooo a écrit:si tu veux j'email l'académie française
Avec plaisir, car rester sur un doute me tracasse et avoir tort ne me pose aucun problème. :wink:
Mais attention à poser la question en toute neutralité ! :twisted: Avec l'exemple initial : "Peut-être que je ferai(s) du vélo un de ces jours" :|

Todd

P.S: En plus, il y a des chances pour qu'ils te répondent qu'on dit : "Peut-être ferai(s)-je du vélo un de ces jours ?" :mrgreen: Ou que le vélo c'est trop dur ! :lol:
Avatar de l’utilisateur
Todd
Modérateur
Modérateur
 
Messages: 1795
Inscription: 19 Avril 2009, 12:11

Re: (VIDEO) Utiliser Visual Studio pour débugger avec Reflec

Messagepar Xenocode » 16 Février 2013, 20:43

WinDBG pour debugger du .NET c'est 20000x fois mieux, mais ça demande une plus grande prise en main !


Justement j'allais poster une démo avec WinDbg pour le dot net (une simple mise en vidéo du tuto de 0xd4d).

Javais tenté à l'époque de jouer avec IDA mais mis à part le diagramme UML j'avais rien pigé ( :aie: ).

Là avec WinDbg c'est syntaxiquement potable, bon perso je trouve qu'ils auraient pu faire un effort car y'a aucune "mise en page" ligne après ligne quasiment. Et pour le trouver c'est une vrai galère ! Jsuis resté 2 heures perdu dans ce fichu msdn :twisted:

Pour en revenir au sujet, un simple :

foreach (TypeDefinition t in assembly.MainModule.Types)
{
if (t.Name != "<Module>")
{
#region Added
RenameTypesMethodsFields(t, chkTypes.Checked, chkMethods.Checked, chkFields.Checked);
#endregion
for (int i = 0; i < 100; i++)
{
#region Modified
var m = new MethodDefinition(SingleCharRename(), MethodAttributes.Private, assembly.MainModule.Import(Type.GetType("System.Void")));
t.Methods.Add(m);
m.Body.Instructions.Add(Instruction.Create(OpCodes.Br_S, (byte)0x2c));
#endregion
m.Body.Instructions.Add(Instruction.Create(OpCodes.Nop));
list.Items.Add(m);
}
}
}


Suffit à faire crash le debug via Reflector ;-) (Ou sinon tu peux carrément obfu un PE avec Confuser, Reflector aime pas Confuser.)
Dernière édition par Todd le 16 Février 2013, 21:39, édité 1 fois.
Raison: Pas de lien direct ! Merci.
Avatar de l’utilisateur
Xenocode
Visiteur
Visiteur
 
Messages: 21
Inscription: 10 Février 2013, 17:56

Suivante

Retourner vers Tutoriels

Qui est en ligne

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