Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 29-10-2011 16:10:51

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

[OUTIL] Extraire le contenu de PBL/PBD/Dll/Exe PB

Salut,

je viens de remettre un peu à jour PbDumper un outil que je me suis fait pour extraire le contenu de libs PB (pbl/pbd) et fichiers compilés par PB (exe/dll quand on veut produire du code machine).

Cet outil existe depuis 2008 et je viens récemment de corriger et d'améliorer quelques points.
Il permet de retrouver tout ce qui a été aggrégé dans les libs :
- ressources graphiques (icones, bitmaps)
- fichiers sources quand on traite une pbl (et que les sources sont présentes)
- versions compilée des sources

Cet outil m'a permis de retrouver des fichiers qui étaient dans un exe pb dont on avait perdu les sources, j'ai également pu relire les sources de mon premier projet en PB5 alors que je n'ai plus de PB5 et que je me souhaitais pas migrer le projet avec un PB10/11. Et puis c'était plus fun comme cela

Les versions de libs vont de PB5 à PB12 (je ne sais pas si ça peut fonctionner sur PB1..PB4, je n'ai aucun fichier de ces versions pour essayer), et il y a un bug sur les dll PB11/12 (lire : les dll de l'IDE, pas les dll produites par le projet) qui contiennent un certificat qui empêche l'extraction pour l'instant (mais j'ai trouvé comment corriger cela prochainement).

Pour ceux que ça intéresse, c'est sur ma page de powerbuilderies
Enjoy !

Dernière modification par seki (31-10-2011 08:57:46)


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#2 31-10-2011 07:14:17

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [OUTIL] Extraire le contenu de PBL/PBD/Dll/Exe PB



en gros c'est le pbkiller made in France ?


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 31-10-2011 08:48:34

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [OUTIL] Extraire le contenu de PBL/PBD/Dll/Exe PB

erasorz a écrit:

en gros c'est le pbkiller made in France ?

Pas tout à fait, c'est plutôt une version spartiate du Libtool de Arnd Schmidt (c'est chez lui que j'ai trouvé le format des pbl).
Sauf que l'outil d'Arndt est visuel et codé en PB. ALors que PbDumper c'est un bon vieil outil en ligne de commande codé en C.

Et PBKiller permet de voir des sources même quand il n'y en a plus (depuis une pbd), il décompile. Je que je ne fais pas encore
(Mais j'ai déjà pas mal étudié l'asm des pbvmxxx.dll et le code généré par PB pour espérer faire comme PBKiller dans quelque temps... Pour ceux qui connaissent ScummVM, je rêve d'un "ScummPB" et d'un IDE PB sur base d'Eclipse... mais le rêve deviendra-t-il réalité ?)


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#4 31-10-2011 08:56:48

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [OUTIL] Extraire le contenu de PBL/PBD/Dll/Exe PB

seki a écrit:

Les versions de libs vont de PB5 à PB12 (je ne sais pas si ça peut fonctionner sur PB1..PB4, je n'ai aucun fichier de ces versions pour essayer)

D'ailleurs, j'en profite pour demander aux membres du forum : auriez-vous des projets sous le coude faits en PB1, à PB4 ?
Ou encore mieux le setup du compilo PB entre 1 et 4 ?

En rassemblant les fonds de tiroir, je dispose des PB5, 6.5, 7, 8, 9, 10, 10.2, 10.5, 11.5 et 12. Mais rien avant mes débuts avec PB 5.
Je peux garantir que rien de commercial ne serait fait avec un setup qui me serait "prêté", il ne sera utilisé que pour faire avancer la science

Question subsidiaire : à une époque PB (quand j'ai commencé avec PB5) était multi-plateforme : il existait des versions de PB pour Mac, Solaris, AIX, ... J'ai retrouvé en ligne la doc de PB 6.5 pour mac, mais pas le setup. Quelque'un aurait ce genre d'article en stock sur une vieille machine oubliée ou au fond d'un placard ?


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#5 09-11-2011 11:20:32

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [OUTIL] Extraire le contenu de PBL/PBD/Dll/Exe PB

Juste un UP pour signaler que j'ai un peu de temps pour faire évoluer le bin's.
Je viens d'ajouter un mode "simulation" où on se contente de parcourir la lib sans rien sauver.

Si certains utilisent cet outil, n'hésitez pas à remonter des bugs ou des commentaires / suggestions.


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#6 08-12-2011 16:49:39

elfeliz  
Bienfaiteur du site
Award: bf
Lieu: Liège, BE
Date d'inscription: 23-06-2009
Messages: 94
Pépites: 471
Banque: 0

Re: [OUTIL] Extraire le contenu de PBL/PBD/Dll/Exe PB

Salut !

J'ai testé ton outil sur une pbd créée par mes soins.
C'est impressionnant de voir lister ses user objets et autres...
Par contre, je suis un nul pour utiliser ces formats de fichiers (.win, . dwo, .udo, .fun...)
Comment puis-je les exploiter pour, par exemple, en relire le code ?

Merci de ta patience ;-)

Bybye.


No prob, just Pb !

Hors ligne

 

#7 08-12-2011 18:33:53

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [OUTIL] Extraire le contenu de PBL/PBD/Dll/Exe PB

On ne peut pas.

En fait si tu utilises pbdumper sur une pbl, tu pourras retrouver le code dans les objets SR? (sru, srw, srm, ...) en plus de la version compilée en p-code de ces objets (srw -> win, sru -> udo, srf -> fun, ...).

Par contre en utilisant l'outil sur une pbd, on ne peut récupérer que les objets compilés et les ressources graphiques. Il n'y a pas de source disponible et pbdumper ne sait pas recréer du code à partir de ces objets... du moins pour le moment


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#8 09-12-2011 08:22:08

elfeliz  
Bienfaiteur du site
Award: bf
Lieu: Liège, BE
Date d'inscription: 23-06-2009
Messages: 94
Pépites: 471
Banque: 0

Re: [OUTIL] Extraire le contenu de PBL/PBD/Dll/Exe PB

OK-Ok , je reste donc abonné à ce fil :-)

Un grand merci !

Bybye.


No prob, just Pb !

Hors ligne

 

#9 09-01-2012 23:28:02

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [OUTIL] Extraire le contenu de PBL/PBD/Dll/Exe PB

Je viens de mettre en ligne la version 0.9.5 :

- correction d'un bug stupide (on croirait un bug de débutant en C ) qui faisait rater la moitié des objets de la lib
- ajout d'une option --source-only pour ignorer ce qui n'est pas du code source (objets compilés et .prp)
- ajout d'une option --list pour juste lister les objets et leur nombre (compatible avec --source-only ;o)

...pour ceux que ça peut intéresser (y en a un moins un : c'est xlat qui a trouvé que certains objets n'étaient pas dumpés)


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#10 13-03-2012 10:08:46

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [OUTIL] Extraire le contenu de PBL/PBD/Dll/Exe PB

Un pt'it UP...

On est maintenant en 0.9.9, et depuis la 0.9.5 :
- on peut filtrer les objets dans une lib par leur nom, avec wildcards (p.ex on peut faire un pbdumper malib.pbl -l -n "*.sru", ou encore -n "*button*" )
- on peut lister les infos SCC avec --scc

et aussi :
- ajout d'une option --debug pour avoir des infos de deboguage
- début de l'affichage de la cartographie de la lib avec --map (cette fonctionnalité n'est pas terminée)
- corrections de bugs divers (affichage du nom de lib avec --list, n'essaie pas de traiter de nom de folder quand on bosse sur *.pbl, dump des objets dont le nom comporte un path)

Et toujours, travail en cours sur les objets compilés, mais encore rien à vous montrer, sauf si vous aimez lire de l'hexa

ça avance, ça avance...


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#11 24-01-2013 16:23:51

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [OUTIL] Extraire le contenu de PBL/PBD/Dll/Exe PB

seki,  à propos des versions de PB supportées a écrit:

Les versions de libs vont de PB5 à PB12 (je ne sais pas si ça peut fonctionner sur PB1..PB4, je n'ai aucun fichier de ces versions pour essayer)

Un peu de neuf : depuis peu je suis en mesure de jouer avec du PB3 et 4 (on remonte le temps jusqu'en 1994) et j'ai le plaisir de vous confirmer que le format des pbl n'est pas différent. Pbdumper supporte donc toutes les versions de PB classic de 3 à 12.5.
...pour des pbl / pbd vu que les .exe correspondants sont des .exe de type "new executable" (pour windows 2 et 3) et pas des "portable executable" je ne suis pas (encore) en mesure de m'occuper de la partie PB à l'intérieur d'un tel exécutable, mais je vais essayer de le faire prochainement.

J'aimerais bien mettre la main sur PB1 et 2 mais là ça va être dur...

Pour info, une prochaine version de pbdumper est en préparation permettant d'ajouter ou supprimer des objets d'une pbl (ou pbd).

Dernière modification par seki (24-01-2013 16:33:24)


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#12 17-05-2019 11:18:44

John77  
Membre Geek
Lieu: Chambéry
Date d'inscription: 26-10-2012
Messages: 51
Pépites: 227
Banque: 0

Re: [OUTIL] Extraire le contenu de PBL/PBD/Dll/Exe PB

Hello

Alors, ça décompile maintenant?

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22