Comment faire du hard-patching avec vg-crypt??? ================================================ Je suis pas pour les longs discours,alors,ceux qui savent pas ce qu'est le hard-patching,suivez ce cour,vous comprendrez vite... On va enlever l'aide du bloc note de windows pour faire un exemple! Avec quel api il récupère l'aide? En regardant dans les imports,il récupère l'aide grace a l'api winhelpa (et aussi grace à un cour de teeji :)) .Il faudras donc nopper le call en 0040122C Bon,on sais ou patcher,restes à trouver comment il décrypte les octets...on lance le np crypté avec le symbole loader de softice et on tape en arrivant sous softice: d 0040122C pour voir ce qui s'y trouves... il n'y as que des ??????? ok,il est encore crypté,on continue à tracer et quand on passes sur le call en 0040632D,on voit qu'il affiche les octets décryptés! il nous faut donc rentrer dans ce call,et on arrives ici après avoir un peu tracé: rem: le loader qui décrypte est crypté aussi au départ je penses,car les octets sous wdasm pour le décryptage ne sont pas les mêmes que sous softice! 0040629F lodsd <--- affiche les octets cryptés dans le tableau du dessus et juste en dessous,on tombe sur la routine de décryptage: add eax,ebx <--- charge les 4 premiers octets cryptés dans eax et les additionne à un nombre magique qui change à chaque nouveaux décryptage xor eax,ebx <--- fait un xor du résultat par ce même nombre magique ror ebx,1 <--- transforme le nombre magique... sub ebx,90807066 <--- ... et le retransforme encore... add ebx,ebx <--- ... et fini par en donner un autre! stosd <--- remplace les octets cryptés par les nouveaux (les décryptés quoi!) qui sont contenus dans eax sub ecx,4 <--- passe aux 4 suivants Bon,il charge les 4 premiers octets cryptés dans eax,il les additioone à un nombre,puis xor le résultat par ce même nombre et on obtient finalement nos 4 octets décryptés dans eax rem: edi contient l'adresse du premier octet que l'on décrypte,important pour la suite! Ok,on à tout! on veux remplacer nos 6 octets décryptés (FF154C744000) par 6 nop (909090909090) et l'adresse du call est 0040122C... on à tout,on peut commencer! On sais qu'il charge 4 octets dans eax,qu'il additionne un nombre magique et qu'il xor le résultat par ce même nombre,il restes plus qu'a connaître ce nombre pour reverser l'algo et obtenir nos 90 comme résultats! On sais que edi contient l'adresse du premier octet décrypté,on va donc poser ce bpx sous sice pour breaker quand nos octets arriveront: bpx 0040629F if edi== 0040122C rem: 0040629F est l'adresse ou il a déja charge les 4 prochains octets! on lance grace à 1 f5 et il break! ok, on trace jusqu'au add eax,ebx et on note les valeurs: eax= 4C3BF5B7 ebx= 14B8FA24 on remarque que si vous aviez fait l'effort de regarder sous hexworkshop a l'offset qui correspondait a l'adresse du call,vous auriez trouvez : B7F53B4C <--- les octets cryptés Vous remarquez? quand il charge les 4 premiers octets dans eax,il les inverse,il faudras se rappeler de ca quand on auras trouver les bons octets! On peut donc faire le reverse,pour cela,on remplace les octets décryptés (FF154C74) par les nop (90909090) décryptés: 90909090 xoré par : 14B8FA24 rem: a xor b = c <--> c xor b = a donne : 84286AB4 moins (-): 14B8FA24 donne : 6F6F7090 <--- comment j'ai trouvé,ca marches pas à la calculette hein :)) oubliez pas que l'on travaille sur 32 bits,c'est un indice :-) si vous trouvez pas ce p'tit excercice,envoyez un mail,je vous aiderai! Voila,nous avons nos 4 premiers octets cryptés qui,une fois décryptés,donneront des 90909090 :-) Il en manques 2,ils sont traités après,je ne m'occuperai que des 2 derniers octets,ceux qui nous interesses! décryptés: ....FFC0 xoré par : ....1958 donne : ....89C8 moins (-): ....7070 Voila,c'est bon,on remplace la chaine B7F53B4CC0FF par 90706F6F7070 avec un héditeur hexa... On lance notepad,on va dans l'aide,elle apparaît plus! bingo,c'est cracké! Si vous avez des questions ou que vous êtes une jolie blonde: fatality@ibelgique.com special greetz: Tscube (thank's for learning me the hard-patching!) Gordon (Girls of your school are also beautiful than Gwen? :-)) Draz (go go sex! :-)) member's of acfr ('specially...all member's!) f@t@lity Enjoy the pleasure of cracking!!!