Hopper: logiciel de reverse engineering

MalaMala Membre, Modérateur
mars 2014 modifié dans Coin canapé & détente #1

Je ne sais pas si vous connaissez Hopper? Je suis tombé dessus un peu par hasard...


http://www.hopperapp.com/index.html


 


Alors soyons clair, pour moi c'est vraiment un outil de hack pour faire tomber les protections des logiciels (d'ailleurs certaines captures sont sans équivoques). Mais j'avoue avoir été assez bluffé par l'élégance de l'outil.  o:)


 


Au passage, la v2 a même été validée par les lutins d'Apple et est dispo sur le Mac App Store. On est peu de chose tout de même...


:p   :p   :p   :p   :p


«13

Réponses

  • yoannyoann Membre

    Je m'en sers depuis un bon moment de cet outil, il est vraiment très bon.


     


    Et ça ne sert pas qu'au vol d'application ! ça sert au hacking en général. Perso je m'en sers pour faire de reverse sur les outils non documenté d'Apple.


     


    Je m'en sers également sur tous logiciel que je télécharge depuis une source louche, juste histoire de vérifier globalement ce que fait le logiciel et quels sont les strings embarqué.


  • yoannyoann Membre

    Dans le même genre mais plus cher il y a IDA Pro https://www.hex-rays.com/products/ida/


  • samirsamir Membre

    et on peut avoir le code source d'une application avec cet outil ? ;)


  • AliGatorAliGator Membre, Modérateur
    Le code assembleur, oui certainement.

    Le code pseudo-decompilé, sans doute j'imagine.

    Le code source d'origine, évidemment que non.
  • MalaMala Membre, Modérateur
    mars 2014 modifié #6

    Perso, il m'a fallut moins de 5 min pour trouver le code ASM à  modifier pour faire péter un bridage d'une de mes Apps.


     




    Et ça ne sert pas qu'au vol d'application !




    Tout à  fait mais la capture ci-jointe sur le site m'a tout de même bien fait sourire... 


     


    Mais je te comprends Yoann. Vraiment très très bien foutue cette application! Si Totalphase faisait la même chose pour leurs mouchards Usb, je serais aux anges!!!


  • yoannyoann Membre


    et on peut avoir le code source d'une application avec cet outil ? ;)




     


    Tu as le code ASM, le pseudo-code C et un cerveau. À priori si tu sais te servir des trois et que tu as beaucoup, beaucoup de temps, oui :-p

  • yoannyoann Membre


    Perso, il m'a fallut moins de 5 min pour trouver le code ASM à  modifier pour faire péter un bridage d'une de mes Apps.




     


    D'une de tes apps c'est normal, c'est hyper simple quand tu sais quel JE / JNE remplacer. Sur l'app de quelqu'un d'autre cela demande un minimum de travail quand même...

  • CéroceCéroce Membre, Modérateur

    Perso, il m'a fallut moins de 5 min pour trouver le code ASM à  modifier pour faire péter un bridage d'une de mes Apps.

    Une de mes applis qui utilisait AquaticPrime s'était fait cracker.
    La première chose à  faire est d'utiliser le minimum de méthodes ObjC. En effet, leurs noms apparaissent dans le code compilé, ce qui donne des indices. Personnellement, j'ai remplacé les méthodes par des fonctions, et plus de problème depuis. ça complique beaucoup la tâche parce qu'un pirate ne sait pas où regarder.

    (Enfin, AquaticPrime est bancale en tout. Rien que le fait qu'elle soit livrée sous forme de framework est risible).


  • Une de mes applis qui utilisait AquaticPrime s'était fait cracker.

    La première chose à  faire est d'utiliser le minimum de méthodes ObjC. En effet, leurs noms apparaissent dans le code compilé, ce qui donne des indices. Personnellement, j'ai remplacé les méthodes par des fonctions, et plus de problème depuis. ça complique beaucoup la tâche parce qu'un pirate ne sait pas où regarder.


    (Enfin, AquaticPrime est bancale en tout. Rien que le fait qu'elle soit livrée sous forme de framework est risible).




     


    Tu sais, le nom des méthodes on s'en fou totalement pour casser des verrous logiciels...


     


    La méthode la plus simple pour trouver l'endroit où est gérer la validation de la licence c'est de faire une recherche en fonction des textes présentés pour l'acceptation / le refus de la licence. Et de là  trouver tous les code pouvant y mener.


     


    Que ça vienne d'une méthode ObjC ou d'ailleurs, on s'en balance.

  • LarmeLarme Membre
    mars 2014 modifié #11

    Ce genre de truc m'a toujours intéressé, plus par curiosité que vraiment intéressé.

    Faudrait que j'essaye, mais ça va s'rajouter à  la longue liste de trucs que je veux essayer quand j'aurais du temps :/


    Par contre, je trouve bizarre que ce genre d'application soit sur l'AppStore.


  • CéroceCéroce Membre, Modérateur

    Tu sais, le nom des méthodes on s'en fou totalement pour casser des verrous logiciels...

    Oui, je sais.
    Si tu as une méthode qui s'appelle -checkLicenseCode:, cracker le logiciel prend 1/4 d'heure et est à  la portée de tout pirate du dimanche.

    S'il faut commencer à  chercher les cheminements dans le code, alors c'est moins facile, et ça prend plus de temps. Tout ce que je dis est qu'il ne faut pas non plus faciliter le travail du pirate pour commencer.
  • Honte sur moi, j'ai déja essayer pour savoir ce que faisais ça: https://github.com/ylechelle/OpenIDFA


    Le seul truc que j'ai pu déduire c'est qu'il ne faisait pas d'accès reseau (enfin je crois ::) )


    Ceci étant dit, c'est pas a la portée de tout le monde... 

  • MalaMala Membre, Modérateur
    mars 2014 modifié #14


    La méthode la plus simple pour trouver l'endroit où est gérer la validation de la licence c'est de faire une recherche en fonction des textes présentés pour l'acceptation / le refus de la licence. Et de là  trouver tous les code pouvant y mener.




    C'est exactement ce que j'ai fait.


     




    Par contre, je trouve bizarre que ce genre d'application soit sur l'AppStore.




    Moi aussi. Surtout quand on connait la politique habituellement totalitaire d'Apple. On a pas le droit d'utiliser des API privées mais par contre une appli qui fait carrément de la décompilation de binaire là  ça gène pas...


  • SpekSpek Membre

    A mon avis elle ne va pas rester longtemps celle là .


  • Il n'y a rien de contraire aux règles de l'AppStore hein. C'est un éditeur comme un autre. ça ne fait pas appel à  des API privé et ça ne fait pas appel à  des comptes système. C'est OK.


  • MalaMala Membre, Modérateur

    Il n'y a rien de contraire aux règles de l'AppStore hein.


    Je ne serais pas si catégorique au regard de l'article 18.3:


     




    18.3

    Apps that solicit, promote, or encourage criminal or clearly reckless behavior will be rejected



    Source: https://developer.apple.com/appstore/mac/resources/approval/guidelines.html


     


    Et cela peut parfaitement être appuyé par les tutoriels vidéos et captures du site qui sont pour le moins éloquentes comme la capture que j'ai posté précédemment (crack du système de licence AquaticPrime). De plus voici la licence d'OS X...



    L. No Reverse Engineering. You may not, and you agree not to or enable others to, copy (except as expressly permitted by this License or by the Usage Rules if they are applicable to you), decompile, reverse engineer, disassemble, attempt to derive the source code of, decrypt, modify, or create derivative works of the Apple Software or any services provided by the Apple Software or any part thereof (except as and only to the extent any foregoing restriction is prohibited by applicable law or by licensing terms governing use of Open-Sourced Components that may be included with the Apple Software).



    Source: https://www.apple.com/legal/sla/docs/OSX109.pdf


     


    Cela signifie tout de même qu'Apple accepte des logiciels sur le MAS qui permettent de mettre en oeuvre les moyens pour violer leurs propres licences logicielles.


     



    C'est un éditeur comme un autre. 


    J'ai pas trouvé l'équivalent dans TextEdit... Lol

  • Un couteau peut servir à  tuer et pourtant (et fort heureusement) il y en a au Super U du coin.


  • zoczoc Membre


    A mon avis elle ne va pas rester longtemps celle là .




     


    Ca fait quelques mois qu'elle y est (depuis la version 2, et la version 3 vient de sortir, mais pas encore sur le store), et je ne vois pas pourquoi elle serait interdite. Il y a tout un tas de cas d'utilisation légitimes pour ce genre d'outils quand on est développeur.


     


    Parce que sinon, autant interdire aussi tous les outils de développements, xCode y compris, car LLDB permet aussi de faire sauter les protections, certes sans doute pas aussi facilement, quoi que...

  • MalaMala Membre, Modérateur


    Un couteau peut servir à  tuer et pourtant (et fort heureusement) il y en a au Super U du coin.




    Oui sauf que le couteau, on t'en fait pas la pub en montrant comment découper proprement les articulations de la belle mère!!!  ;D

  • Non mais il y a des vidéos instructives avec des animaux .. Et une belle-mère c'est une sous-espèce de mammifère, non ?


  • Oui sauf que le couteau, on t'en fait pas la pub en montrant comment découper proprement les articulations de la belle mère!!!  ;D




     


    Heu....


  • LeChatNoirLeChatNoir Membre, Modérateur

    'tin les marteaux.... Ca fait peur... :*


  • * prend des notes *
  • tabliertablier Membre
    mars 2014 modifié #25

    Juste pour rigoler: Je me suis relancer sur mon appli d'aide à  la localisation et j'ai localisé Hopper. Dans la documentation, je suis arrivé sur une phrase abominable pour deux raisons:


    1 je ne suis pas trop bon en Anglais,


    2 Je ne connais pas du tout les processeurs ARM.



    La phrase: This components displays the bytes of the current instruction. If the current processor have multiple CPU modes (like the ARM andThumb modes of the ARM processor family), you'll see a poopup menu which lets you change the CPU mode at the current address.



    qu'à  cela ne tienne, Je demande à  mon ami Paul, qui est Anglais, de me traduire la phrase (il a vécu 30 ans à  Grenoble). Voici sa réponse:



    "Cette section affiche les octets de l'instruction. Si le processeur a des modes CPU multiples (comme le mode 'Thumb' du processeur ARM), vous allez voir un menu déroulant qui permet le changement du mode courant à  l'adresse actuelle."


     

    Le texte est manifestement une [mauvaise] traduction d'une autre langue. J'espère que ça t'aide

    Je termine mes traductions et je l'envoie en cadeau au programmeur qui me répond:



    En effet, je n'ai jamais pris le temps de traduire Hopper. À vrai dire, j'ai toujours moi-même eu un peu de mal à  utiliser des outils de développement traduits; par conséquent, je me posais la question de la traduction.


    Pour l'anecdote, je suis aussi français (j'habite près de Lille).



     


    Moralité de cette histoire:


    Sauf si la langue étrangère est vôtre langue maternelle, faites vos logiciels en Français et faites les traduire par quelqu'un dont la langue maternelle est la nouvelle langue souhaitée!!!!


     


  • MalaMala Membre, Modérateur
    mars 2014 modifié #26

    Un Français! Trop bon! Ca fait plaisir du Made In France d'une telle qualité! :)


     


    Sinon pour rebondir, moi j'utilise les services de Textmaster: http://fr.textmaster.com


    Le travail des traducteurs est sérieux pour un tarif très compétitif et rapide. On peut au choix demander des rédactions, traductions et aussi relectures pour correction. 


     


    Edit: correction d'orthographe accompagnée d'une autoflagellation!  >:)


  • DrakenDraken Membre
    mars 2014 modifié #27
    "Le travail" et non "Le travaille". Tu me dois 2,37 € (HT) pour la relecture.
  • MalaMala Membre, Modérateur


    "Le travail" et non "Le travaille". Tu me dois 2,37 € (HT) pour la relecture.




    :lol:



  • Je ne serais pas si catégorique au regard de l'article 18.3:


     


    Source: https://developer.apple.com/appstore/mac/resources/approval/guidelines.html


     


    Et cela peut parfaitement être appuyé par les tutoriels vidéos et captures du site qui sont pour le moins éloquentes comme la capture que j'ai posté précédemment (crack du système de licence AquaticPrime). De plus voici la licence d'OS X...


    Source: https://www.apple.com/legal/sla/docs/OSX109.pdf


     


    Cela signifie tout de même qu'Apple accepte des logiciels sur le MAS qui permettent de mettre en oeuvre les moyens pour violer leurs propres licences logicielles.


     


    J'ai pas trouvé l'équivalent dans TextEdit... Lol




    Bonjour à  tous !


     


    Content de voir que mon logiciel fait parler de lui :) Par contre, je suis désolé de dire que l'intention que vous me prêtez n'est pas du tout la bonne ;)


     


    Déjà , sur toutes les captures que vous voyez, il s'agit du code d'un logiciel que j'ai écrit. Il est vrai que sur le tutoriel, on y voit du code de protection, c'est un pur hasard, vraiment...


     


    Sur mes propres ordinateurs, je n'ai pas le moindre logiciel pirate (si si, c'est possible). J'ai strictement tout acheté, et Hopper a d'ailleurs été écrit au départ car je n'avais pas les moyens de me payer IDA, qui coûte une petite fortune !


    Donc, pour ma part, j'utilise ce genre d'outils pour écrire des plug-ins à  des logiciels (souvent écrits en Objective-C) qui n'ont pas de SDK officiel, et certainement pas pour pirater. Par exemple, des plug-ins pour Xcode ou pour le Finder. Cette pratique est 100% légale en France, puisqu'il s'agit de reverse engineering dans un but d'interopérabilité. Et d'ailleurs, la plupart des clients qui me contactent s'en servent de Hopper pour ce genre de chose aussi... J'ai même des clients chez Apple, et chez des éditeurs d'antivirus, où ce genre d'outil est très très utilisé.


     


    Concernant le Mac App Store, ça fait 2 ans et demi que j'y suis... Enfin, que j'y étais, car vu le temps nécessaire à  la validation des applications, et la quantité d'argent qu'Apple récupère au passage, ça m'a totalement refroidi... Les règles d'Apple parlent effectivement du reverse engineering, mais ils parlent du reverse de leurs applications. Ils ne parlent pas du tout d'une quelconque interdiction de vendre des logiciels de reverse engineering.


  • bSr43bSr43 Membre
    mars 2014 modifié #30


     


    Moralité de cette histoire:


    Sauf si la langue étrangère est vôtre langue maternelle, faites vos logiciels en Français et faites les traduire par quelqu'un dont la langue maternelle est la nouvelle langue souhaitée!!!!




     


    Quand on en a les moyens, peut-être, oui, mais sinon c'est plus compliqué ;) Quand Cryptic Apps sera devenu une multinationale (on peut rêver), je ferai très certainement appel à  des gens plus compétents que moi ;) Et il y a aussi un autre problème : dans mon ancienne boà®te (qui édite un logiciel de musique), on a eu le souci de trouver des gens capables de traduire un texte très technique sans les dénaturer... Au final, on a payé pour une traduction... à  côté de la plaque  ??? 


     


    Pour la phrase en question, non, ce n'est pas une traduction d'une autre langue, j'ai juste écrit beaucoup de choses, et certaines phrases ont peut-être été mal tournées, c'est très probable... d'autant qu'à  l'époque où cette phrase a été écrite, je travaillais encore en tant que salarié à  côté du développement de Hopper, certaines choses on été écrites un peu rapidement.


    Vous savez, j'écris le logiciel seul, je fais le site (et le moins que l'on puisse dire, c'est que je ne suis pas webmaster :) ), j'écris la documentation, je réponds aux mails, je m'occupe des ventes... je fais ce que je peux :)  Et je me donne beaucoup de mal pour améliorer mon anglais !


    Mais bon, il ne faut pas exagérer, même si je ne maà®trise pas complètement la langue, vu la quantité de texte que j'ai eu à  écrire, ça reste correct  :P 


     


    En tout cas, merci pour vos retours !


     



  • Bon, on a son ip maintenant. Il est foutu. Incendie, noyade, accident de voiture ou sèche cheveux dans la baignoire ?
Connectez-vous ou Inscrivez-vous pour répondre.