IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

[posix] créer un packer


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Par défaut [posix] créer un packer
    Bonjour,
    Toujours dans le cadre d'un projet (cf mes derniers postes), je suis amené a créer un packer.
    Celui-ci devra packer 3 fichiers. (et éventuellement les compresser, mais c'est pas l'idée actuelle).
    Lors de l'exécution il faudra dépacker le tout dans un dossier temp et exécuter deux fichiers (le 3eme est une ressource).

    tout sera pourrait être bien mignon et sans soucis si je pouvais utilisé l'api win32, mais ce packer doit fonctionner sous linux (et donc etre codé en C posix).

    j'aimerai savoir si vous aviez deux trois idée pour me guider, car la j'avoue que je suis un peu perdu.
    J'avais pensé ajouter les fichiers les uns a la suite des autres et tenter de recréer les fichiers, mais les antivirus gueule et puis c'est pas propre

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    A part définir toi-même ton propre format d'archivage, de type TAR (et donc compressible par la suite), j'avoue que je ne vois vraiment pas comment résoudre ton problème...

    Côté compression, une librairie comme LZO est rapide à utiliser, portable et très rapide à l'exécution. Côté format d'archive, tu peux faire du "primaire" au besoin :
    • Entête de ton archive (= "magic key").
    • Nombre de fichiers.
    • Fin d'entête.
    • Pour chaque fichier :
      • Entête propre aux fichiers.
      • Nombre de caractères du nom de fichier.
      • Nom du fichier.
      • Taille du fichier en octets.
      • Données brutes du fichier.
      • Marqueur / CRC de fin de fichier.
    • Marqueur / CRC de fin d'archive.

    Reste ensuite le souci de l'exécution, qui n'est pas négligeable (ni portable d'ailleurs) : sous Windows, ton exécutable devra être au format PE pour pouvoir être lancé, tandis que sous Linux, c'est du ELF en général... Seule la ressource devrait être compatible avec les deux systèmes.

    Si tu n'as pas le contrôle de la cible Linux visée, n'oublie pas non plus de gérer l'endianness !

    Pour les anti-virus, c'est anormal par contre qu'ils gueulent... Essaie éventuellement de recréer le fichier sous un nom temporaire, et de ne le renommer en .EXE (ou d'effectuer le chmod) qu'à la FIN de son extraction.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Membre émérite Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Par défaut
    Je pense reprendre l'idee de mon premier poste (tous les fichiers l'un a la suite de l'autre avec une signature et de les mapper en memoire directement (au lieu de les faire passer par le disque).
    Ainsi sous nux, je n'ai rien a gerer au niveau des formats de fichier.

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Et tu les exécutes comment, s'ils sont mappés en mémoire "seulement" ??
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  5. #5
    Membre émérite Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2005
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 728
    Par défaut
    J'ai vague souvenir d'une api qui me permettait de mapper les fichiers en mémoire et de pouvoir utiliser le handle comme un path normal (pour l'execution de createprocess par exemple). il faudrait que je cherche de plus pres.

  6. #6
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Par défaut
    Et tu as l'équivalent sous Linux ? Franchement, je testerais plutôt le renommage après extraction complète, pour ma part... Tu auras un peu plus de portabilité.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Créer un Packer en vb.net
    Par dj naoki dans le forum VB.NET
    Réponses: 2
    Dernier message: 12/06/2015, 22h24
  2. Créer un interpréteur de langage inspiré du Basic
    Par Picasso dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 11/05/2002, 18h10
  3. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 16h41
  4. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 17h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo