Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

reverse-engineering et python

23 réponses
Avatar
Titouille
Bonjour !!

J'aimerai savoir... Quel est la fiabilité des fichiers pyc ?? est-il
tout simplement possible de faire du retro-engineering pour récupérer un
fichier py lisible ?? ou bien est-ce une action difficile ou impossible ??

Merci pour vos réponses


Thierry

10 réponses

1 2 3
Avatar
noone

En français, il faudrait écrire offuscation ou, à la rigueur,
offusquement. Au sens propre, en français, offusquer signifie depuis
toujours : obscurcir, rendre peu clair, masquer.



oui mais il y a plus de chance qu'il trouve une entrée avec Google avec
le mot en anglais !

Jamais testé... mais il faut voir...



Au mieux, ça ralentit le retro-engineering.



c'est déjà pas si mal !


Cordialement


Avatar
Amaury Forgeot d'Arc

j'ai entendu parler d'un module qui permet de décompiler les fichiers
pyc. je sais plus comment il s'appelle, et a fortiori je ne l'ai jamais
essayé.

C'est decompyle:

http://packages.debian.org/unstable/source/decompyle

Avatar
Titouille


En français, il faudrait écrire offuscation ou, à la rigueur,
offusquement. Au sens propre, en français, offusquer signifie depuis
toujours : obscurcir, rendre peu clair, masquer.



oui mais il y a plus de chance qu'il trouve une entrée avec Google avec
le mot en anglais !

Jamais testé... mais il faut voir...




Au mieux, ça ralentit le retro-engineering.



c'est déjà pas si mal !


Cordialement



Merci bcp pour toutes ces réponses :)

Je connais l' "obsfucation", car il existe quelques programmes du genre
pour protéger les swf Flash et empécher leur décompilation, mais il est
vrai que ça n'empèche rien, en tout cas en Flash. Le but étant de
regénérer les scripts en créant des alias (numériques ? celui que j'ai
testé crée des alias numériques) qui vont remplacer les noms de méthodes
et de variables, ce qui rend la lecture du code bcp moins facile, voire
même sur des gros projets quasiement impossible.

Maintenant, il est clair que ça n'empèche en rien la compréhension du
code, ça la rend juste difficile.

M'enfin, je posais cette question à la base car on m'avait dit dans un
post que le code python était très facilement réversible... Alors en
voyant la gueule des pyc, je me disais que ça devait pas être si simple
que ça...
Venant à la base du C++, je sais qu'il est tout de même plus difficile
de cracker une appli en C++ qu'en Flash, vu qu'il existe des
décompilateurs tels que ASV ou autre qui ressortent le fla, toutes les
images, les mc, la hérarchie de répertoires ainsi que la totalité des
classes... Avec ça, plutot simple de comprendre comment fonctionne
l'application... si on s'attaque à des languages de plus bas-niveau, on
doit s'attaquer à de l'assembleur ou de l'hexa-décimal, c'est déjà bcp
moins accessible...
Donc je me demandais ou se situait Python dans tout ça, et je pense que
toutes ces réponses me donnent une assez bonne vision :)

Encore merci



Avatar
Do Re Mi chel La Si Do
Bonsoir !

Juste un détail : il paraît qu' ASV contient un trojan, ou un backdoor.

Hoax, ou réalité ?

@-salutations
--
Michel Claveau
Avatar
Titouille

Titouille writes:



Je ne vois pas le rapport avec la fiabilité ? Les *.pyc ont pour but
d'éviter une recompilation systématique à chaque exécution, pas de
protéger le code source.



j'apprend, j'apprend :)

et donc, y a-t-il un moyen de protéger son code source python, ou bien
est-ce une abbération d'y songer ??



C'est une abbération, mais pas plus en python qu'en un autre langage...
Pour deux raisons moultes fois évoquées :
- Ca ne sert généralement à rien
- C'est de toutes façon impossible à 100% quelque soit le langage

Si c'est pour des raisons de sécurité il vaut mieux ne pas rendre le
programme accessible du tout, c'est à dire le placer sur un serveur et
n'y accéder qu'a travers un client (c'est ce que tu compte faire en plus
non ?)




En fait, non. C'est plus complexe que ça...
J'aimerai créer une application qui permette une sorte de simulation de
web-services...
Un serveur php s'occupe de distribuer les données pour alimenter une
application Flash/Python sur le client.
L'application devrai permettre d'établir une connexion sécurisée, ou
renvoyer sur un site sécurisé pour permettre des transactions bancaires.
Elle devrai également pouvoir télécharger des données ou fichiers
payants, ce qui implique une certaine sécurité autant au niveau client
qu'au niveau serveur...
Il serait facheux qu'on puisse utiliser le compte de quelqu'un d'autre
en s'appropriant l'application client, par exemple. (ce qui est tout de
même assez peu probable, vu le système mis en place...)
Un problème plus difficile à résoudre serait justement le piratage de
l'application. Vu qu'au niveau client, j'ai du python et du swf, ça
reste des formats facilement accessibles... Il est clair que ce n'est
pas à la portée de tout le monde, mais j'imagine bien qu'il y en a qui
n'attendent que la sortie d'application pour tenter de les cracker...

Le problème étant que les données/fichiers peuvent être utilisés en
off-line, ce qui veut dire qu'on aurait tout loisir de décompiler les
différentes parties pour en voir le fonctionnement, et pouvoir par
exemple pirater les données/fichiers payés par le voisin (ou par papa)
et les redistribuer au peuple, sans se soucier que derrière tout ça, il
y a des gens qui travaillent...

Enfin bref, ceci implique celà, lol :) pourquoi je me suis pas fait
berger, moi ??

A+ et merci pour vos réponses



Avatar
Wilk
Titouille writes:


Titouille writes:


Je ne vois pas le rapport avec la fiabilité ? Les *.pyc ont pour but
d'éviter une recompilation systématique à chaque exécution, pas de
protéger le code source.



j'apprend, j'apprend :)

et donc, y a-t-il un moyen de protéger son code source python, ou bien
est-ce une abbération d'y songer ??
C'est une abbération, mais pas plus en python qu'en un autre

langage...
Pour deux raisons moultes fois évoquées :
- Ca ne sert généralement à rien
- C'est de toutes façon impossible à 100% quelque soit le langage
Si c'est pour des raisons de sécurité il vaut mieux ne pas rendre le
programme accessible du tout, c'est à dire le placer sur un serveur et
n'y accéder qu'a travers un client (c'est ce que tu compte faire en plus
non ?)




En fait, non. C'est plus complexe que ça...
J'aimerai créer une application qui permette une sorte de simulation
de web-services...
Un serveur php s'occupe de distribuer les données pour alimenter une
application Flash/Python sur le client.
L'application devrai permettre d'établir une connexion sécurisée, ou
renvoyer sur un site sécurisé pour permettre des transactions
bancaires. Elle devrai également pouvoir télécharger des données ou
fichiers payants, ce qui implique une certaine sécurité autant au
niveau client qu'au niveau serveur...


A ce niveau il n'y aucun problème avec python, c'est à toi d'utiliser
les bons protocoles de transferts et de cryptages sécurisés... Quelque
soit le langage en fait.

Il serait facheux qu'on puisse utiliser le compte de quelqu'un d'autre
en s'appropriant l'application client, par exemple. (ce qui est tout
de même assez peu probable, vu le système mis en place...)
Un problème plus difficile à résoudre serait justement le piratage de
l'application. Vu qu'au niveau client, j'ai du python et du swf, ça
reste des formats facilement accessibles... Il est clair que ce n'est
pas à la portée de tout le monde, mais j'imagine bien qu'il y en a qui
n'attendent que la sortie d'application pour tenter de les cracker...

Le problème étant que les données/fichiers peuvent être utilisés en
off-line, ce qui veut dire qu'on aurait tout loisir de décompiler les
différentes parties pour en voir le fonctionnement, et pouvoir par
exemple pirater les données/fichiers payés par le voisin (ou par papa)
et les redistribuer au peuple,


Là, comme on l'a dit, c'est juste une histoire de degrès et de
compétences/motivations...
Si tu penses qu'en C c'est suffisamment obscur, il suffit que tu code la
partie critique en C et le reste en python.

sans se soucier que derrière tout ça,
il y a des gens qui travaillent...


Et le soucis d'emprisonner les clients en leur vendant un programme et
des fichiers au format fermés ? Programme réalisé grace à des logiciels
libres, des algos de cryptage ouverts etc... Bien sûr tu t'es soucié du
fait qu'il y a des gens qui travaillent derrière tout ça et qui
s'attendent à recevoir comme rétribution d'autres programmes et formats
libres et ouvert ?


Enfin bref, ceci implique celà


Et oui !

, lol :) pourquoi je me suis pas fait
berger, moi ??

A+ et merci pour vos réponses


--
William - http://flibuste.net




Avatar
Titouille

Et le soucis d'emprisonner les clients en leur vendant un programme et
des fichiers au format fermés ? Programme réalisé grace à des logiciels
libres, des algos de cryptage ouverts etc... Bien sûr tu t'es soucié du
fait qu'il y a des gens qui travaillent derrière tout ça et qui
s'attendent à recevoir comme rétribution d'autres programmes et formats
libres et ouvert ?





La, c'est moi qui ne voit pas vraiment le rapport... si on décide de
faire de l'open-source, on ne s'attend pas forcément à obtenir des
rétributions (je me suis d'ailleurs toujours demandé si les systèmes de
donations fonctionnent, réussissent à faire vivre un projet...).
Il y a une différence entre contribuer à l'ouverture des technologies et
des logiciels, et le fait de vouloir créer des logiciels à but lucratifs.
Et oui, je pense également aux gens qui travaillent derrière tout ça en
participant à ma hauteur au mouvement, et en essayant de fournir des
appli open-source ou des sources de mes créations... mais ce n'est pas
ça qui va me nourrir, malheureusement...


a++

Avatar
Wilk
Titouille writes:

Et le soucis d'emprisonner les clients en leur vendant un programme
et
des fichiers au format fermés ? Programme réalisé grace à des logiciels
libres, des algos de cryptage ouverts etc... Bien sûr tu t'es soucié du
fait qu'il y a des gens qui travaillent derrière tout ça et qui
s'attendent à recevoir comme rétribution d'autres programmes et formats
libres et ouvert ?




La, c'est moi qui ne voit pas vraiment le rapport... si on décide de
faire de l'open-source, on ne s'attend pas forcément à obtenir des
rétributions (je me suis d'ailleurs toujours demandé si les systèmes
de donations fonctionnent, réussissent à faire vivre un projet...).


On ne s'attend pas à une rétribution directe, mais indirecte oui.

Il y a une différence entre contribuer à l'ouverture des technologies
et des logiciels, et le fait de vouloir créer des logiciels à but
lucratifs.


Il ne devrait pas y en avoir, sinon ça signifierait que ce n'est pas une
alternative crédible et pérenne.

Et oui, je pense également aux gens qui travaillent derrière tout ça
en participant à ma hauteur au mouvement, et en essayant de fournir
des appli open-source ou des sources de mes créations... mais ce n'est
pas ça qui va me nourrir, malheureusement...


Si... indirectement...

--
William - http://flibuste.net


Avatar
Titouille
Et oui, je pense également aux gens qui travaillent derrière tout ça
en participant à ma hauteur au mouvement, et en essayant de fournir
des appli open-source ou des sources de mes créations... mais ce n'est
pas ça qui va me nourrir, malheureusement...



Si... indirectement...



Indirectement, c'est bien beau, mais si il faut attendre 3 ans avant
qu'un logiciel open-source me permette de manger à ma faim, je serai
mort de faim d'ici là... Il faut aussi voir la réalité des choses... On
vit dans un monde de requins... Dis moi qui arrive à vivre de ses
productions open-sources ?? des gens qui ont 20, 30 ans de métier
derrière eux, une répuation qui n'est même plus à discuter, une
expérience énorme, des projets lucratifs à tout va... Ce n'est pas donné
à tout le monde... alors de là à dire que mes logiciels open-source
permettent de me nourrir, je crois que c'est un peu de l'ineptie... Faut
pas réver... C'est facile de dire que ça devrai être comme ceci ou comme
celà, mais quand on regarde la réalité en face, on se rend bien compte
que tout n'est pas si rose...

J'aimerai bien que tu me démontre qu'avec un produit x ou y, lancé en
open-source, tu peux gagner de l'argent... tu vas gagner de l'argent sur
quoi ?? les services, bien sur... Et bien c'est justement le but que je
me donne... fournir des services à des clients contre rétribution... je
ne vois pas ou est la différence... Qui à dit que mon logiciel serait
payant ?? personne. C'est certains services qu'il va rendre, qui seront
payants... après, libre à chacun d'utiliser ces services ou non. Mon
souci étant de pouvoir éviter que des gens utilisent des services qu'ils
n'auraient pas payé.

Après, on peut discuter des heures sur le fait que faire de
l'open-source soit bon ou mauvais, intelligent ou pas, mais dans
certaines situations, on ne peut pas voir les choses de la même
manière... En tant qu'indépendant, je ne peux pas me permettre de bosser
plusieurs mois sur un logiciel open-source en espérant une rétribution
future dont je ne suis pas sur du tout. Quand on voit comment les gens
agissent au niveau musical et dvd, je pense bien que bcp de ceux qui
téléchargent des produits open-source en ont bien rien à foutre de
rétribuer quoi que ce soit... Qui participe à cette rétribution, c'est
justement des gens comme toi ou moi qui avons des idées et essayons de
communiquer notre savoir (Sur des forums, par exemple). Mais tu l'as dit
toi-même... la rétribution se trouvera dans d'autres logiciels
open-source, non pas par rétribution monétaire... et comme je l'ai dit,
avoir accès à un logiciel open-source ne va pas me permettre de payer
mes factures à la fin du mois... Il faut aussi se mettre en situation...
si tu as un job qui te rapporte ton blé chaque mois, et que tu sors des
logiciels à coté, pendant ton temps libre, oki, t'es peinard, à la
limite, que ça rapporte ou pas, t'as toujours ton salaire à la fin du
mois... moi je suis dans un autre cas de figure... je ne peux pas créer
des applications que je vais distribuer gratuitement, c'est du suicide
pur et simple. Surtout que l'application que je veux monter va demander
bcp de travail de maintenance, donc je ne peux pas m'investir sans rien
espérer en retour... le but est aussi de gagner sa vie.

vala, a++


Avatar
Wilk
Titouille writes:

Et oui, je pense également aux gens qui travaillent derrière tout ça
en participant à ma hauteur au mouvement, et en essayant de fournir
des appli open-source ou des sources de mes créations... mais ce n'est
pas ça qui va me nourrir, malheureusement...
Si... indirectement...




Indirectement, c'est bien beau, mais si il faut attendre 3 ans avant
qu'un logiciel open-source me permette de manger à ma faim, je serai
mort de faim d'ici là...


Je ne te parles pas de faire un logiciel open-source et gratuit et
d'attendre patiemment que quelqu'un te fasse un don.

On vit dans un monde de requins...


Tu écris des logiciels et tu souhaites les vendre, tout le monde le
comprend, c'est évident tant que les boulangers feront pareil !

Dis moi qui arrive à
vivre de ses productions open-sources ??


Moi par exemple :-) et pleins d'autres ici. Il ne faut pas faire
l'amalgame entre open-source et gratuité. Ni open-source et diffusion à
toute la communauté.

On parlait de livrer un programme à un client (donc payant). La où la
question de l'open-source se pose, c'est de savoir si le programme que
le client a payé doit être fermé ou pas. Est-ce que le client aurra le
droit d'utiliser à sa guise le programme qu'il vient d'acheter ? Est-ce
qu'il aurra le droit d'exploiter librement les fichiers générés par ce
programme (ouverture du format). Hors cela n'a rien à voir avec le fait
que le programme soit payant ou non.

des gens qui ont 20, 30 ans
de métier derrière eux, une répuation qui n'est même plus à discuter,
une expérience énorme, des projets lucratifs à tout va... Ce n'est pas
donné à tout le monde... alors de là à dire que mes logiciels
open-source permettent de me nourrir, je crois que c'est un peu de
l'ineptie... Faut pas réver... C'est facile de dire que ça devrai être
comme ceci ou comme celà, mais quand on regarde la réalité en face, on
se rend bien compte que tout n'est pas si rose...


Ce n'est pas une histoire d'être rose ou d'être un génie, mais plutôt
d'être cohérent je pense. Je ne dit pas que c'est forcément facile dans
tous les domaines non plus, surtout ne connaissant pas le tien en
particulier.


J'aimerai bien que tu me démontre qu'avec un produit x ou y, lancé en
open-source, tu peux gagner de l'argent... tu vas gagner de l'argent
sur quoi ?? les services, bien sur...


Le service peut être le développement du logiciel lui-même par ex.

Et bien c'est justement le but
que je me donne... fournir des services à des clients contre
rétribution... je ne vois pas ou est la différence...


C'est ce que j'avais compris, d'où la possibilité de faire de
l'open-source.

Qui à dit que
mon logiciel serait payant ?? personne.


On s'en fout ;-)

C'est certains services qu'il
va rendre, qui seront payants... après, libre à chacun d'utiliser ces
services ou non. Mon souci étant de pouvoir éviter que des gens
utilisent des services qu'ils n'auraient pas payé.


C'est légitime. Il faut trouver une solution pour concilier les deux.


Après, on peut discuter des heures sur le fait que faire de
l'open-source soit bon ou mauvais, intelligent ou pas, mais dans
certaines situations, on ne peut pas voir les choses de la même
manière... En tant qu'indépendant, je ne peux pas me permettre de
bosser plusieurs mois sur un logiciel open-source en espérant une
rétribution future dont je ne suis pas sur du tout. Quand on voit
comment les gens agissent au niveau musical et dvd, je pense bien que
bcp de ceux qui téléchargent des produits open-source en ont bien rien
à foutre de rétribuer quoi que ce soit...


Ceux qui n'en n'ont rien à foutre, programme fermé ou ouvert ça ne
change rien, ils pirateront de la même manière.

Qui participe à cette
rétribution, c'est justement des gens comme toi ou moi qui avons des
idées et essayons de communiquer notre savoir (Sur des forums, par
exemple). Mais tu l'as dit toi-même... la rétribution se trouvera dans
d'autres logiciels open-source, non pas par rétribution
monétaire... et comme je l'ai dit, avoir accès à un logiciel
open-source ne va pas me permettre de payer mes factures à la fin du
mois...


Ca va te permettre de payer tes factures dans le sens où tu bénéficiera,
par exemple d'utiliser python sans rien payer. C'est pour ça que je
disais qu'indirectement on y gagne tous.

Il faut aussi se mettre en situation... si tu as un job qui te
rapporte ton blé chaque mois, et que tu sors des logiciels à coté,
pendant ton temps libre, oki, t'es peinard, à la limite, que ça
rapporte ou pas, t'as toujours ton salaire à la fin du mois... moi je
suis dans un autre cas de figure... je ne peux pas créer des
applications que je vais distribuer gratuitement, c'est du suicide pur
et simple. Surtout que l'application que je veux monter va demander
bcp de travail de maintenance, donc je ne peux pas m'investir sans
rien espérer en retour... le but est aussi de gagner sa vie.


Dans ce cas, ce serait très aléatoire et dangereux de compter sur le
fait que personne ne va pirater ton programme simplement parceque tu
l'aura "obfusqué" ou écrit dans un langage difficile à décompiler...
D'où l'intérêt de devancer le problème.

--
William - http://flibuste.net



1 2 3