Unpacking tips and tricks

Magazine
Marque
MISC
HS n°
Numéro
7
Mois de parution
mai 2013
Domaines


Résumé

Lors de l'analyse de programmes, qu'ils soient malveillants ou non, il est fréquent de se retrouver confronté à un packer. Cette protection, ajoutée après la compilation du programme, ralentit l'analyse du programme et peut rendre certains outils d'analyse inopérants. Elle doit donc être contournée, ou mieux : supprimée. Cet article présente les différentes techniques et astuces que nous utilisons pour parvenir à nos fins le plus rapidement possible.


1. Qu'est ce qu'un packer ?

Un packer est un programme qui va modifier un autre programme de manière à fusionner au maximum avec le programme original et ainsi rendre sa suppression la plus difficile possible.

Pour cela deux étapes sont nécessaires :

- Une étape effectuée une fois pour toute lors de la protection du programme (chiffrement/compression du programme, virtualisation du code, etc.),

- Une étape effectuée à chaque exécution du programme, par un loader ajouté par le packer au programme et exécuté avant le code original de l'exécutable.

Ce loader sera exécuté avant le programme et sera chargé de décompresser/déchiffrer le programme, se substituer au loader Windows (notamment pour le chargement des imports, la résolution des relocations), de détecter les outils d'analyse, etc.

Le schéma de la figure 1 donne une représentation simplifiée de ces deux étapes.

 

packer

 

Fig. 1 : Schéma simplifié du fonctionnement général...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Découverte de la puce Titan M a.k.a Citadel

Magazine
Marque
MISC
Numéro
114
Mois de parution
mars 2021
Domaines
Résumé

La puce Titan M ou Citadel est une puce sécurisée sur laquelle repose en grande partie la sécurité des terminaux Android de Google, la gamme Pixel. Dans cet article, nous détaillerons le fonctionnement interne et les usages de ce composant pour lequel peu d’information publique est disponible à ce jour. Nous donnerons également plusieurs pistes pour aider le rétro-ingénieur à travailler sur ce projet.

Les protections des Secure Elements contre les attaques physiques

Magazine
Marque
MISC
Numéro
114
Mois de parution
mars 2021
Domaines
Résumé

Écrire du code sécurisé sans bug ni vulnérabilité n’est pas suffisant pour protéger un système contre des attaques matérielles. Les circuits sécurisés, ou Secure Elements, sont de vraies forteresses numériques capables de résister à des attaques évoluées, qui requièrent parfois des moyens colossaux. Que se cache-t-il derrière ces petites puces ?

Introduction à QBDI et ses bindings Python

Magazine
Marque
MISC
Numéro
109
Mois de parution
mai 2020
Domaines
Résumé

Le présent article traite de l'outil d'instrumentation dynamique QBDI. C'est un framework de DBI (Dynamic Binary Instrumentation), comparable à d'autres projets publics tels qu’Intel PIN, Valgrind ou encore DynamoRIO. Avant d'entrer dans le vif du sujet, quelques rappels peuvent s'avérer nécessaires…

Se protéger de la rétro-ingénierie matérielle

Magazine
Marque
Hackable
Numéro
33
Mois de parution
avril 2020
Domaines
Résumé

En 2008, la rétro-ingénierie matérielle fut mise sur le devant de la scène par deux chercheurs allemands [14] qui réussirent à casser l'algorithme cryptographique propriétaire Crypto-1 de NXP (Philips), uniquement à l'aide de la rétro-ingénierie matérielle d'une puce de silicium. Cet algorithme était alors utilisé dans les puces RFID Mifare Classic qui étaient elles-mêmes utilisées massivement dans des cartes de métro ou de parking, voire dans des cartes d'accès.

Le coût de la rétro-ingénierie du silicium

Magazine
Marque
Hackable
Numéro
32
Mois de parution
janvier 2020
Domaines
Résumé

La rétro-ingénierie matérielle est une pratique qui a longtemps été réservée aux états et aux industriels, et ce, en grande partie à cause des coûts engendrés. Cependant aujourd'hui, chaque personne ayant un bagage technique suffisant peut pratiquer cet art sans avoir à dépenser des sommes astronomiques, on peut alors précisément se poser la question du coût matériel pour différentes configurations. Je vais vous présenter différents ensembles de matériels selon leurs coûts, que nous ferons correspondre à différents niveaux d'expertise en laboratoire. Cet article s'adresse donc autant aux amateurs néophytes, désireux d'acquérir la capacité de pratiquer la rétro-ingénierie matérielle, qu'aux universités voulant lancer un laboratoire dans ce domaine. Nous n'aborderons ici qu'un seul type d'attaque, celle par analyse de puces de silicium. Pour les autres types d'attaques, vous aurez généralement une seule méthode disponible et donc un seul type de matériel ou de machine, ce qui rend la chose trop spécifique pour être abordé ici.