Désassembleur

Sujets variés concernant le développement en PureBasic
LavaLava
Messages : 173
Inscription : dim. 28/mars/2004 17:42
Localisation : Provence

Désassembleur

Message par LavaLava »

Par pure curiosité, existe t'il un prog pour 'désassemblé' des Exe de PB ? Cad de retrouver les lignes de code PB à partir d'un EXE !
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

tu retrouvera pas les lignes de code en PB vu que, il me semble, pb converti le code en asm avant de le compiler en exe.
Lukky
Messages : 340
Inscription : dim. 25/janv./2004 12:22
Localisation : Morbihan

Message par Lukky »

On peut toujours desassembler un exe, qu'il provienne de Pure ou d'un autre langage, mais au mieux tu auras un source en assembleur, non documenté avec des appels difficiles à suivre.

Mais partir d'un exe et obtenir un source en PureBasic ou en tout autre langage (hormis des langages non compilés genre JAVA) est IMPOSSIBLE.

JL
Quand on me gonfle trop j'éclate, sinon ça va !
LavaLava
Messages : 173
Inscription : dim. 28/mars/2004 17:42
Localisation : Provence

Message par LavaLava »

Je ne suis pas trop d'accord avec vous ... car tout ce qui peut être fait peut-être défait ....
Pour schématisez, quand PB compile des lignes de code il convertit des instruction PB en équivalent Assembleur PC. Une instruction PB correspont à plusieur, voire beaucoup, mnémonique PC.
Il est vrai que c'est trés difficile à faire sur des langage orienté 'Objet' tel que les Visual de Microsoft mais sur un langage interprété comme le PB je pense que cela doit être possible.

Il est vrai que sans le nom des procédures,ni des variables,... c'est difficile à comprendre mais c'est toujours mieux que de lire de l'assembleur PC.
En fait c'est en lisant les posts sur le cracking et le vol de prog (voire de routine) que je me suis demandé si ce genre d'utilitaire existait.
Je vous rassure, je ne suis ni hacker ni cracker !
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

tu veut dir un convertisseur ASM -> PB ?
LavaLava
Messages : 173
Inscription : dim. 28/mars/2004 17:42
Localisation : Provence

Message par LavaLava »

Oui, le terme de convertisseur est plus approprié que 'desassembleur'.
Lukky
Messages : 340
Inscription : dim. 25/janv./2004 12:22
Localisation : Morbihan

Message par Lukky »

Et bien je te souhaite bien du courage, mais je class ça dans l'impossible car mnémonique ou pas à l'arrivé t'as un code asm qui pourrait être craché par n'importe quel langage, la sortie asm de pure n'est pas signée pure.

Mais si tu y arrive, je te promet j'achète une licence, et je serais pas le seul, microsoft devrait aussi être intéressé.

J'attend l'avis de Cederavic mais au vu de sa question je ne suis pas inquiet !

JL
Quand on me gonfle trop j'éclate, sinon ça va !
LavaLava
Messages : 173
Inscription : dim. 28/mars/2004 17:42
Localisation : Provence

Message par LavaLava »

@Lukky
Si tu relis mon premier post tu pourra lire que ma question est par PURE CURIOSITE et qu'en aucun moment (même si je pense que c'est faisabme) je n'ai fait allusion à ce que j'avais les compétences pour le faire.
Et de toutes manière je ne me lancerais pas dans cette aventure car je n'ai a priori aucun besoin de cet outil ...
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

un truc dans ce genre, crois moi, si ça existait, ça se saurrai :lol:
Lukky
Messages : 340
Inscription : dim. 25/janv./2004 12:22
Localisation : Morbihan

Message par Lukky »

Non mais ce n'est pas le problème de tes compétances, c'est un problème insoluble.

Image toi pour simplifier une ligne pure genre A=0, en asm pour mettre un registre à 0 souvent on fait xor eax,eax bon alors tu traduit ça en A=0 très bien, mais fred s'aperçois que c'est pas bon il fait un truc genre mov eax,0 pour faire la même chose et bein ton programme de desassemblage recodage est dans les choux et tout le reste du code asm devient illisible du fait du décalage des instructions.

Faudrait le redevelopper à chaque nouvelle version de Pure. Et encore la ce n'est qu'un des très nombreux barrage infranchissable.

Non je te dis c'est pas un problème de compétance c'est IMPOSSIBLE et la je met ma b...e à couper, si si !

Non dans le meilleur des cas tu peux recracher le code ASM de l'applic, la modifier (bon courage) pour qu'elle soit recompilable et faire joujou, mais franchement si tu peux faire ça, tu peux redevelopper l'applic directement, tu gagneras du temps !
JL
Quand on me gonfle trop j'éclate, sinon ça va !
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

y'a tout un tas d'outils (entre guillemets) qui permettent de recréer le code asm depuis un exe ou une dll, m'enfin c'est du domaine du piratage...

plus simplement si tu souhaites "voir" le code assembleur généré par le compilo de pb , utilise l'assembleur en ligne de commande sur TON source
avec l'option /commented :

/COMMENTED : créé un fichier de sortie '.asm' commenté en même temps que l'exécutable. Ce fichier peut être ré-assemblé ultérieurement après l'avoir modifié selon vos besoins. Cette option est à destination des programmeurs avancés.

patrick
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

ouhla, il y a un peu de tout et n'importe quoi à ce que je vois ...
Désolé d'être aussi direct mais je vois trop souvent l'amalgame qu'il y a lorsque l'on parle de désassembleur.
Le fait de retrouver le code source d'un binaire s'appele décompilation, l'acte d'avoir un code asm, le désassemblage.
Concernant la décompilation, désolé de te contredire LavaLava mais je ne souscrit pas à l'idée que " tout ce qui peut être fait peut-être défait" : créé moi un atome.
Concernant ton explication, PureBasic convertis en effet son code en assembleur mais tu oublies de dire que ce même code est passé à fasm et ensuité passé à lcc qui tout deux produisent un code objet.
Le code objet est une suite de 0 et de 1 compréhensible par l'ordinateur et de fait, tu ne te retrouve avec aucune mnémonique (je schématise).
De plus, tu dis que PureBasic est interpreté : encore une erreur !! C'est un langage natif 32 bits COMPILE !
Concernant le désassembleur, le code produit ne correspond pas à ce que tu aurais en codant l'application en assembleur mais ca convertis TOUS les symboles contenus dans l'exe en équivalent assembleur (regarde du coté des shellcode pour comprendre le principe).
Conclusion : oublie cette idée, c'est une perte de temps.
"Qui baise trop bouffe un poil." P. Desproges
ZapMan
Messages : 393
Inscription : ven. 13/févr./2004 23:14
Localisation : France
Contact :

Message par ZapMan »

Faudrait le redevelopper à chaque nouvelle version de Pure. Et encore la ce n'est qu'un des très nombreux barrage infranchissable.

Non je te dis c'est pas un problème de compétance c'est IMPOSSIBLE et la je met ma b...e à couper, si si !
D'accord sur le premier point, la tache est difficile et le programme sera à mettre à jour à chaque version de PureBasic.

Pour ce qui est du deuxième point, tu devrais peut-être faire un peu attention à ton outillage. Il y a 10 ans, j'ai développé un décompilateur pour Microsoft Basic qui correspond très exactement à ce que vous décrivez. C'était pour le code compilé pour Macintosh et il n'y a rien a récupérer dedans. Je confirme que ça a été une galère, mais ça marchait assez bien et ça prouve que la tache n'est pas "IMPOSSIBLE". De toute façon Lucky, ne dis jamais que quelque chose est "IMPOSSIBLE". Ca m'énerve, ça va me donner envie de la faire pour te prouver que tu as tort et j'ai déjà assez de boulot comme ça avec mon traducteur C vers PureBasic.
Tout obstacle est un point d'appui potentiel.
KarLKoX
Messages : 1191
Inscription : jeu. 26/févr./2004 15:36
Localisation : France
Contact :

Message par KarLKoX »

ZapMan a écrit :
Faudrait le redevelopper à chaque nouvelle version de Pure. Et encore la ce n'est qu'un des très nombreux barrage infranchissable.

Non je te dis c'est pas un problème de compétance c'est IMPOSSIBLE et la je met ma b...e à couper, si si !
D'accord sur le premier point, la tache est difficile et le programme sera à mettre à jour à chaque version de PureBasic.

Pour ce qui est du deuxième point, tu devrais peut-être faire un peu attention à ton outillage. Il y a 10 ans, j'ai développé un décompilateur pour Microsoft Basic qui correspond très exactement à ce que vous décrivez. C'était pour le code compilé pour Macintosh et il n'y a rien a récupérer dedans. Je confirme que ça a été une galère, mais ça marchait assez bien et ça prouve que la tache n'est pas "IMPOSSIBLE". De toute façon Lucky, ne dis jamais que quelque chose est "IMPOSSIBLE". Ca m'énerve, ça va me donner envie de la faire pour te prouver que tu as tort et j'ai déjà assez de boulot comme ça avec mon traducteur C vers PureBasic.
Mauvais exemple ! Visual Basic a été un langage interpreté jusqu'à la version 4 (inclue) donc comme je l'ai dit, autant pour les langages compilés, on peut oublier, autant pour les langages interpretés, la décompilation est plus que possible.
D'ailleur on peut plus ou moins décompiler du code VB 5 car, comme tu dois le savoir, tu as deux mode de compilation avec VB : natif et P-Code.
Il faut juste que le code soit compilé en P-Code pour rendre possible la décompilation.
"Qui baise trop bouffe un poil." P. Desproges
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

KarLKoX a écrit :" tout ce qui peut être fait peut-être défait" : créé moi un atome.

d'abord ta reponse ne correspond pas a ton precepte !!
il est question de defaire ce qui a ete fait pas de creer ce qui n'existe pas !!

mais c'est pas grave car a l'heure ou j'ecrit on sait faire les 2

casser un atome, c'est fait tous les jours au CERN !!! pour voir des particule plus petite !!!

creer un atome , il y a plusieurs methodes,
1- faire l'amour avec ta copine et neuf mois apres ça peut te creer
des millions d'atomes !!! :D

2- un pote ingenieur dans le nucleaire m'a un jour explique que dans le coeur d' un super generateur , il y avais creation spontané d'OR !!!!!
en quantité infime !
etonnant non ??
se serai due a la fusion nucleaire !!

et puis aujourd'hui on sait meme "deplacer" les atomes
puisque chez IBM il grave l'interrieur de leurs processeurs de cette
facon !!!! dixit un science-et -vie numero je sais plus ! :D
et c'est surement dans le livre des records comme etant la plus petite
incription jamais créé !! :D
Répondre