OVH Cloud OVH Cloud

Décompression et execution d'un programme

4 réponses
Avatar
+-- SenoN --+
Bonjour,

Je reviens au mail de Testor ci-dessous. Je me pose la question suivante :
est-il possible d'avoir un programme compressé qui se décompacte
automatiquement en s'executant sans passer par un programme extérieur, style
winzip ?

Dans la discussion avec Testor, il était question à un moment donné de la
librairie "zlib" : est-ce la solution ?

Merci.

4 réponses

Avatar
Patrick 'Zener' Brunet
Bonjour.

Je réponds à Nicolas qui a écrit :
+-- SenoN --+ a écrit :
Bonjour,

Je reviens au mail de Testor ci-dessous. Je me pose la question
suivante : est-il possible d'avoir un programme compressé qui se
décompacte automatiquement en s'executant sans passer par un
programme extérieur, style winzip ?

Dans la discussion avec Testor, il était question à un moment donné
de la librairie "zlib" : est-ce la solution ?

Merci.





On peut arriver à cela avec UPX, disponible sur
http://upx.sourceforge.net/ .
Il compresse le fichier, et ajoute un petit décompresseur.
Au lancement, le décompresseur crée l'image du fichier exécutable, et
le lance, sans que l'utilisateur ne le remarque. UPX n'a pas l'air
d'utiliser zlib.




L'utilisateur ne le remarquera peut-être pas, mais il y a bien création d'un
EXE parallèle, et même s'il est prévu de le détruire après, un firewall
ordinaire avec surveillance d'applications ne va pas laisser faire.

Il me semble bien que M. +-- SenoN --+ entendait un programme qui se
décompresse lui-même. On sait qu'il y a des techniques d'obfuscation en ASM
(MISC a fait un article là-dessus il y a un an environ), mais c'est plutôt
de la modification intra-code, a priori sur le process en mémoire, et sans
possibilité de dilatation (il faudrait réallouer l'espace)

Une problématique connexe avait déjà été évoquée dans une conversation à
laquelle j'avais participé, il y a assez longtemps : il s'agissait pour un
EXE d'arriver à s'auto-modifier (définitivement et au niveau du fichier EXE)
pour s'auto-tatouer avec une clé de licence.

Nous étions parvenus en gros à la conclusion selon laquelle ça n'est pas
directement possible du fait que le fichier EXE est verrouillé en accès
exclusif lors de son exécution, ce qui conduisait effectivement à lui faire
pondre un "oeuf" et le lancer, puis se terminer pour que ledit oeuf le
tatoue avant de se terminer à son tour en relançant le programme principal
désormais tatoué. Avec donc le même problème de la présence même fugitive
d'un second EXE et donc la possibilité d'une interception.

La suite avait porté sur la possibilité pour un EXE de résider en mémoire
pure (pas sur un ramdisk) et donc d'être lancé de mémoire à mémoire
(pseudo-fichier programme dans une bloc de mémoire à instance de process en
mémoire). Et là on était restés dans l'inconnu sur le moyen de faire faire
ça au loader.

Si quelqu'un a du nouveau sur ce thème, je suis toujours intéressé ;-)
Maître AMcD® svp ?

Cordialement,

--
/***************************************
* Patrick BRUNET
* E-mail: lien sur http://zener131.free.fr/ContactMe
***************************************/
Avatar
Cyrille Szymanski
"+-- SenoN --+" wrote in
news:42bd0d80$0$12703$:

suivante : est-il possible d'avoir un programme compressé qui se
décompacte automatiquement en s'executant sans passer par un programme
extérieur, style winzip ?



Quel est le problème que tu cherches à résoudre en faisant cela ?

--
Cyrille Szymanski
Avatar
+-- SenoN --+
C'est pour ma culture personnel.
Je pensai aussi au noyaux Linux, qui me semble-t-il fait se genre de chose
au boot....a moins que je me trompe.

"Cyrille Szymanski" a écrit dans le message de
news:
"+-- SenoN --+" wrote in
news:42bd0d80$0$12703$:

> suivante : est-il possible d'avoir un programme compressé qui se
> décompacte automatiquement en s'executant sans passer par un programme
> extérieur, style winzip ?

Quel est le problème que tu cherches à résoudre en faisant cela ?

--
Cyrille Szymanski


Avatar
Cyrille Szymanski
Nicolas wrote in
news:42bebf2a$0$22324$:

When creating a bootable kernel image, the kernel is also compressed
using the zlib algorithm, which requires a very small decompression
stub to be included in the resulting image.



Il me semble que le problème qu'ils cherchaient à résoudre était d'avoir
une petite empreinte disque pour que le programme de boot prenne le moins
de disquettes possible.

Aujourd'hui, avec les CD bootables par exemple, je ne pense pas que ce soit
encore la priorité.

--
Cyrille Szymanski