Packer UPX ? et les autres ??
|
15-10-2013, 18h14
(Modification du message : 15-10-2013, 18h15 par supersnail.)
Message : #2
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,609 Sujets : 71 Points: 465 Inscription : Jan 2012 |
RE: Packer UPX ? et les autres ??
Bonjour,
Déjà pour répondre à la question "comment ça marche ?": Un packer n'est ni plus ni moins qu'un exécutable qui a pour but d'en décompresser un autre, qui est stocké quelque part dans le packer. Une fois ceci fait, le packer va "mapper" l'exécutable décompressé correctement en mémoire, c'est-à-dire placer correctement ses sections en mémoire (comme le ferait le loader win32), résoudre "l'import table" qui indique toutes les fonctions dans les DLL externes dont le programme a besoin pour fonctionner, et éventuellement effectuer d'autres actions d'initialisation (comme lire la table des relocations si on a pas pu placer le binaire à l'image base indiquée dans le PE header). Pour se faire, le packer a besoin d'exécuter du code qui n'a pas été "prévu" par le concepteur de l'application packée, et va donc modifier des registres du processeur. C'est donc là qu'intervient nos fameux "pushad"/"popad", instructions assembleur qui vont respectivement sauvegarder l'état des registres sur la pile et restaurer le contenu des registres depuis la pile. On va donc logiquement appeler "popad" lorsqu'on a fini (ou presque) toutes les opérations d'initialisation et passer la main à l'exécutable "unpacké" (correctement initialisé), ce qui permet de trouver généralement l'OEP (pour Original Entry Point). Ensuite, tu peux avoir des packers assez "complexes" qui ont pour but de perdre le reverser (on parle de "protectors" dans ce cas) ou les antivirus dans leur analyse et où trouver un "popad" peut s'avérer assez complexe, et il vaut mieux utiliser dans ce cas l'ESP trick (voir ici, je viens juste de valider le tuto) ou encore repérer où l'exécutable est décompressé dans le packer avant qu'il soit mappé pour le dumper sauvagement, ainsi on chope un .exe directement exécutable (ça marche plûtot pas mal dans les packers utilisés par les malwares, par contre pour les protectors, ça fonctionne moins bien :')). Par ailleurs, il est même possible que le packer ne fasse pas de pushad/popad d'ailleurs, je pense par exemple au packer XPACK assez utilisé il y a quelques temps. Voilà j'espère avoir répondu à tes questions
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
« Sujet précédent | Sujet suivant »
|
Messages dans ce sujet |
Packer UPX ? et les autres ?? - par sakiir - 15-10-2013, 16h26
RE: Packer UPX ? et les autres ?? - par supersnail - 15-10-2013, 18h14
RE: Packer UPX ? et les autres ?? - par Loup - 15-10-2013, 21h50
RE: Packer UPX ? et les autres ?? - par sakiir - 16-10-2013, 22h01
|
Utilisateur(s) parcourant ce sujet : 2 visiteur(s)