Dépacking sans IDA :) vive les strings

Un collègue m’a fournit un petit EXE. Voici une petite histoire fort rigolote. Comme quoi la qualité des droppeurs est bien inégale.  À première vue, pfff tendu.. un EXE .NET

Et bien non, on ne reverse pas. En stringuant les strings unicodes (quoi cela ne se dit pas ? ), on a directement l’emplacement du stage 2.

On downloade le stage 2.. et là , rebelotte, le stress. Encore un .Net

Là en stringuant l’ascii on tombe sur un ENORME champ intriguant :

Screen Shot 2014-02-06 at 23.17.39

Très intriguant n’est-ce pas, ca sens le base64 mais c’est pas du base 64, mais ca sens le PE encodé en base 64, Un peu d’header, et beaucoup de “0”. un vrai base 64 de PE ca ressemble à ca..

Screen Shot 2014-02-06 at 23.23.36

En réfléchissant un peu de A à C, ca change de 2. C’est trop beau pour être vrai … Essayons. On découpe cette string magique..

Ensuite on shifte de -2 char…  et oui c’est bien ca, on base64 décode…

hooo c’est magique.. et on remet ca dans un vrai exe…on tombe sur un UPX.

Et c’est bingo… c’est plus packé

On a rarement autant de moule :) Sérieux les gars, utilisez RC4 au moins, c’est pas plus dur à utiliser, mais ca force à ouvrir l’exe pour dépacker.

Spéciale dédicace à Tecamac, grand fan des crypto à deux balles :)

3421020f6cfff96201a15d24976e862a  stage1.exe
135c2d12bfa205b6cba13a29329c2f77  stage2.exe
12440f3e323638ba30e78c00b26d4734  stage3.exe

This entry was posted in Malware, Reverse and tagged , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

AlphaOmega Captcha Classica  –  Enter Security Code