Désassembleur
KarlKox, je vais te dire, dans l'absolu bien sur, tout est possible, mais quand le niveau de difficulté est elevé à ce point et non maintenable dans le temps, je le classe dans l'impossible, même si c'est une façon de parler.
Je vais même te dire, le gars capable de faire ce truc et qui se mange quasiement tout à revoir à chaque release de pure et bein je le classe directement dans la case crétin, car vu la somme de boulot incroyable qu'il faudra déployer et le pauvre interet de la chose je vois pas comment appeler ce genre de gars.
Mais tu peux toujours essayer.
JL
Je vais même te dire, le gars capable de faire ce truc et qui se mange quasiement tout à revoir à chaque release de pure et bein je le classe directement dans la case crétin, car vu la somme de boulot incroyable qu'il faudra déployer et le pauvre interet de la chose je vois pas comment appeler ce genre de gars.
Mais tu peux toujours essayer.
JL
Quand on me gonfle trop j'éclate, sinon ça va !
Pour clarifier:
- oui, c'est possible de décompiler (en assembleur) un programme PureBasic.
- oui, c'est possible de detecter tel ou tel appel de function purebasic (a l'aide de signatures pour chaque function du purebasic, pour chaque version (car le code d'une function évolue d'une version a l'autre))
- C'est aussi possible de detecter les boucles, les tableaux, les procedures et les listes chainées, car chaque partie est 'générée' ce qui veut dire que ca répond à un ou plusieurs modèles 'facilement' reconnaissable.
La ou ca devient interessant, c'est au niveau des noms de variables, de procedure, de tableau etc.. et de reconstruire les expressions arithmetiques. Pour les noms de variables, tableau etc.. c'est simple, c'est pas possible, y'a rien dans l'executable qui peut nous mettre sur la piste. Et pour les expressions arithmetique, c'est pas impossible mais quand meme bien balèze.
Donc oui ca doit etre possible de reverser un programme ASM codé en purebasic (si c'est codé dans un autre language, laissez complètement tomber) mais le résultat sera tres tres dur a exploiter. A noter qu'il faut avoir un sacré niveau pour se lancer dans cette aventure.
- oui, c'est possible de décompiler (en assembleur) un programme PureBasic.
- oui, c'est possible de detecter tel ou tel appel de function purebasic (a l'aide de signatures pour chaque function du purebasic, pour chaque version (car le code d'une function évolue d'une version a l'autre))
- C'est aussi possible de detecter les boucles, les tableaux, les procedures et les listes chainées, car chaque partie est 'générée' ce qui veut dire que ca répond à un ou plusieurs modèles 'facilement' reconnaissable.
La ou ca devient interessant, c'est au niveau des noms de variables, de procedure, de tableau etc.. et de reconstruire les expressions arithmetiques. Pour les noms de variables, tableau etc.. c'est simple, c'est pas possible, y'a rien dans l'executable qui peut nous mettre sur la piste. Et pour les expressions arithmetique, c'est pas impossible mais quand meme bien balèze.
Donc oui ca doit etre possible de reverser un programme ASM codé en purebasic (si c'est codé dans un autre language, laissez complètement tomber) mais le résultat sera tres tres dur a exploiter. A noter qu'il faut avoir un sacré niveau pour se lancer dans cette aventure.
Oula, je ne m'avancerais pas sur ce point la, etant donné que pour moi, un emulateur c'est le top du top car il faut:
- Apprendre un language ASM tordu (souvent le cas pour les consoles etc..)
- Une fois qu'on le maitrise sur le bout des doigts, on recrée 'virtuellement' un processeur, avec les registres, les interuptions etc.. Rien que ca.
- Dans le cas d'une console, va falloir émuler les 'customs chips' (processeurs graphiques, sonores etc..) qui souvent sont tres peu documentés.
Bref c'est la mission, c'est pas pour rien qu'il a fallu attendre si longtemps pour avoir un emulateur amiga correct, et qu'il n'y a pas d'emulateur mac PPC pour l'instant (!).
- Apprendre un language ASM tordu (souvent le cas pour les consoles etc..)
- Une fois qu'on le maitrise sur le bout des doigts, on recrée 'virtuellement' un processeur, avec les registres, les interuptions etc.. Rien que ca.
- Dans le cas d'une console, va falloir émuler les 'customs chips' (processeurs graphiques, sonores etc..) qui souvent sont tres peu documentés.
Bref c'est la mission, c'est pas pour rien qu'il a fallu attendre si longtemps pour avoir un emulateur amiga correct, et qu'il n'y a pas d'emulateur mac PPC pour l'instant (!).
evidemment si tu cites l'exemple de l'amiga... rien de moins simple 
n'empeche, c marrant que t'en parle. j'ai un pote il a trouvé Amiga500 dans une décharge la semaine dernière. il a pensé à moi, coool. je l'ai rallumé : instant hypra magique je te dis pas
ca se jete pas une becane pareille ! et ce meme si winuae est finalement plus confortable

n'empeche, c marrant que t'en parle. j'ai un pote il a trouvé Amiga500 dans une décharge la semaine dernière. il a pensé à moi, coool. je l'ai rallumé : instant hypra magique je te dis pas

Je ne sais pas si tu m'as bien lu mais j'ai dit la même chose que toi : c'est impossible de retrouver la sémantique purebasic depuis un binaire.Lukky a écrit :KarlKox, je vais te dire, dans l'absolu bien sur, tout est possible, mais quand le niveau de difficulté est elevé à ce point et non maintenable dans le temps, je le classe dans l'impossible, même si c'est une façon de parler.
Je vais même te dire, le gars capable de faire ce truc et qui se mange quasiement tout à revoir à chaque release de pure et bein je le classe directement dans la case crétin, car vu la somme de boulot incroyable qu'il faudra déployer et le pauvre interet de la chose je vois pas comment appeler ce genre de gars.
Mais tu peux toujours essayer.
JL
En parlant d'émulation, ca fait un petit moment que je me tate à en faire un (en pb évidemment), je sais que j'ai pas le niveau mais bon, ca m'a toujours interessé ce genre de projet

"Qui baise trop bouffe un poil." P. Desproges
Je répète que je l'ai fait pour Microsoft Basic version Mac (édition 1988)qui n'était PAS un language interprété mais bien un language compilé. Comme la souligné Fred, le résultat n'est évidemment pas la copie conforme du programme d'origine. Moins clair, et plus difficile à exploiter, il lui manque entre autre les commentaires !Lukky a écrit :KarlKox, je vais te dire, dans l'absolu bien sur, tout est possible, mais quand le niveau de difficulté est elevé à ce point et non maintenable dans le temps, je le classe dans l'impossible, même si c'est une façon de parler.
Je vais même te dire, le gars capable de faire ce truc et qui se mange quasiement tout à revoir à chaque release de pure et bein je le classe directement dans la case crétin, car vu la somme de boulot incroyable qu'il faudra déployer et le pauvre interet de la chose je vois pas comment appeler ce genre de gars.
JL
- Mon décompilateur parvenait à regénérer un code basic à peu près correcte quand le programme d'origine était en Basic (grace aux "signatures" qu'il reconnaissait)
- Le résultat était encore beaucoup moins clair quand le code d'origine n'était pas du Basic, mais il en sortait bien quelquechose. Et là, l'intérêt est énorme !!!! En clair, l'idée était de prendre N'IMPORTE QUEL PROGRAMME disponible sur le marché et d'en pondre un équivalent en Basic. Délicat au niveau de la légalité, mais fichtrement intéressant. Car, pour peu que l'utilisateur refonde un peu son interface, et une fois le programme recompilé avec Basic, le code assembleur est si différent de l'original que les protections légales ne sont plus applicables. Cela signifie que l'on pourrait par exemple vendre une "copie" de Word, fabriquée par ce moyen, en toute légalité.
- On peut imaginer un décompilateur spécialisé dans la récupération des programmes compilés avec Microsoft Visual Studio (C, C++, etc..) et qui cracherait un programme en PureBasic.
Ok, tout ça est un ENORME boulot (mais moins que d'écrire un émulateur) mais c'est possible !! Le gars qui fait ça aura les moyens de faire la nique à Bill Gates et de gagner des centaines de milliards, alors pas d'accord avec Lukky au sujet du "pauvre intérêt de la chose".
Le principe de base :
- on écrit une série de petits programmes simples dans le langage d'origine
- on les compile
- on analyse le résultat et on écrit peu à peu le décompilateur de sorte à retrouver un code en Basic qui soit acceptable
- on recommence avec des programmes d'origine de plus en plus complexes.
Compte tenu de l'intérêt financier et/ou philosophique de la chose (par rapport au monopole Microsoft), je suis convaincu que quelqu'un sera un jour assez gonflé pour tenter l'aventure (et je peux lui donner un coup de main).
PS : une anecdote intéressante qui présente un certain rapport avec cette histoire : en 1990 (à peu prés) il y une petite équipe de gars absolument géniaux qui ont réussi à écrire un système d'exploitation compatible avec Windows (j'ai oublié son nom, mais ça a fait du bruit à l'époque). Tu chargeais ça sur ta machine à la place de Windows et tu faisais tourner toutes les applis conçues pour Windows. Comme le truc marchait assez bien et que Microsoft n'a pas trouvé de moyens légaux pour contrer cette équipe, la solution a été radicale : Microsoft a racheté la société en question (une petite fortune) et a rangé leur joli projet dans une poubelle. Les gars n'ont jamais eu la satisfaction de pousser leur projet jusqu'au bout, mais ils ont ramassé un sacré pactole au passage. En clair, si tu veux devenir riche, il n'est pas nécessaire de faire quelquechose qui puisse VRAIMENT mettre le monopole de Microsoft en danger : il suffit de faire quelquechose qui POURRAIT mettre le monopole de Microsoft en danger... et de négocier.
Tout obstacle est un point d'appui potentiel.
Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Ce serait pas Caldera l'histoire de l'anécdote ? Parce que j'ai le souvenir que Caldera à fait tourner les applis windows avec leur dos (Dr Dos) : ils ont faké win.com et ont démontré que windows (95 je crois) n'étais qu'une gui au DOS, ca s'apparante un peu 
Sinon, pour le décompilateur dont tu parles, j'ai mal lu : tu parlais du Microsoft Basic et non du Microsoft Visual Basic d'où mon étonnement (je crois qu'il n'existe meme pas pour mac
)

Sinon, pour le décompilateur dont tu parles, j'ai mal lu : tu parlais du Microsoft Basic et non du Microsoft Visual Basic d'où mon étonnement (je crois qu'il n'existe meme pas pour mac

"Qui baise trop bouffe un poil." P. Desproges
Effectivement, Microsoft a abandonné son "Microsoft Basic" (qui tournait sur Mac et sur PC) lorsqu'ils ont sorti "Visual Basic" (qui ne tournait que sur PC). Microsoft Basic était un bon produit qui ressemblait pas mal à PureBasic (avec beaucoup de bugs en plus, Microsoft oblige !)
Le produit dont je parlais plus haut ne s'appellait pas Caldera, mais mince, flute, le nom de me revient pas.
Et pour répondre à Flype
Le produit dont je parlais plus haut ne s'appellait pas Caldera, mais mince, flute, le nom de me revient pas.
Et pour répondre à Flype
J'ai dit que l'aspect légal de l'idée était "délicat", mais au sens strict, le plan que je propose n'a rien d'illégal. Il exploite une faille, c'est tout. Et quel intérêt y aurait-il à créer un language, maintenant que PureBasic existe ??? Réussir à faire mieux que PureBasic pour le vendre moins cher ? ALors là, je reprends l'expression de Lukky : c'est IMPOSSIBLE !Et pour les plus honnêtes d'entre vous il est encore
plus intéressant de créer son propre langage...
Tout obstacle est un point d'appui potentiel.
Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Juste pour mettre mon grain de sel dans une conversation qui ne me concerne pas vraiment, (vu mon niveau en informatique,
), mais Caldera - DrDos existe toujours!
Il est employé, entre autre par, par des sociétés comme PowerQuest pour faire tourner DriveImage ou PartitionMagic sous Dos avec XP, ou encore par des boites comme Maxtor ou WesternDigital pour faire tourner leur formateur bas niveau.
Voilà! Vous pouvez reprendre votre conversation
Chris

Il est employé, entre autre par, par des sociétés comme PowerQuest pour faire tourner DriveImage ou PartitionMagic sous Dos avec XP, ou encore par des boites comme Maxtor ou WesternDigital pour faire tourner leur formateur bas niveau.
Voilà! Vous pouvez reprendre votre conversation

Chris

J'ai jamais dit le contraire, la version 8.0 est sortie il y a pas longtempsChris a écrit :Juste pour mettre mon grain de sel dans une conversation qui ne me concerne pas vraiment, (vu mon niveau en informatique,), mais Caldera - DrDos existe toujours!
Chris

"Qui baise trop bouffe un poil." P. Desproges
J'ai mis quelques temps à re-poster car je voulais faire confirmer mes dires par un ancien colléque de boulot.
En en fait, il m'a confirmé ce que je me souvenais, cest à dire :
En 1991/2 un ingé de ma société a du faire un Décompilateur pour récupérer un prog victime d'un 'sabotage'. L'interet n'était pas de retrouver le prog (qu'il aurait pu reécrire facilement) mais de pouvoir réutiliser des quantité données généré par ce prog ...
Ceci étant dit, ma curiosité est rassasié, et je n'ai personellement pas d'intérêt pour ce genre de prog.
En en fait, il m'a confirmé ce que je me souvenais, cest à dire :
En 1991/2 un ingé de ma société a du faire un Décompilateur pour récupérer un prog victime d'un 'sabotage'. L'interet n'était pas de retrouver le prog (qu'il aurait pu reécrire facilement) mais de pouvoir réutiliser des quantité données généré par ce prog ...
Ceci étant dit, ma curiosité est rassasié, et je n'ai personellement pas d'intérêt pour ce genre de prog.
Pour finir étant donné que je n'ai aucune espèce d'intéret moi non plus pour ce sujet, c'est juste pour causer.
Je confirme que rien n'est impossible, mais je pense qu'un soft qui demande une somme de travail monstrueuse pour un intéret minime somme toute n'est pas digne d'intéret.
De plus, j'admet que c'est déjà plus humain sur un vieux basic à l'époque ou 4 instructions suffisaient pour faire le café mais aujourd'hui avec les api les billiard de fonctions des langages (regarde pure, 2 billiards !) c'est du suicide.
En plus juridiquement je me demande si c'est légal car on est dans le reverse engineering et ça ça le fait pas.
JL
Je confirme que rien n'est impossible, mais je pense qu'un soft qui demande une somme de travail monstrueuse pour un intéret minime somme toute n'est pas digne d'intéret.
De plus, j'admet que c'est déjà plus humain sur un vieux basic à l'époque ou 4 instructions suffisaient pour faire le café mais aujourd'hui avec les api les billiard de fonctions des langages (regarde pure, 2 billiards !) c'est du suicide.
En plus juridiquement je me demande si c'est légal car on est dans le reverse engineering et ça ça le fait pas.
JL
Quand on me gonfle trop j'éclate, sinon ça va !