Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
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)
Hors ligne
en gros c'est le pbkiller made in France ?
Hors ligne
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é ?)
Hors ligne
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 ?
Hors ligne
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.
Hors ligne
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.
Hors ligne
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
Hors ligne
OK-Ok , je reste donc abonné à ce fil :-)
Un grand merci !
Bybye.
Hors ligne
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)
Hors ligne
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...
Hors ligne
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)
Hors ligne
Hello
Alors, ça décompile maintenant?
Hors ligne
Pages: 1