Le passe-partout électronique
ou
l'initiation à la neutralisation des protections logicielles




METTONS LES CHOSES AU POINT
---------------------------

    Derrière ce somptueux titre à connotation quelque peu illégale
se  cache  en  fait un article qui cherchera simplement à dévoiler
aux  non-initiés  quelques  méthodes  employées pour - n'ayons pas
peur des mots - "cracker" un programme.

    J'en  vois certains qui s'imaginent déjà devant leur clavier à
pénétrer les  systèmes  informatiques des banques ou à pirater les
réseaux...  Eh bien, NON, il ne s'agit pas ici de cela.  Il s'agit
d'éclairer  un  peu certains curieux qui voient en le piratage des
formules  magiques  et  des  méthodes  systématiquement peu ortho-
doxes...



    LES OUTILS INDISPENSABLES...
    ----------------------------

    Avant  de  s'attaquer  au déplombage, tout hacker possède dans
son attirail au moins:

 Un débugger: (ADEBUG!!!)
 -----------
 Cet outil permet de regarder ce qu'un programme a dans le ventre.
 Autrement  dit, il va vous permettre de voir les instructions as-
 sembleur qui le composent et de suivre à la trace son exécution.

 Un désassembleur: (EASY RIDER?!)
 ----------------
 Un programme exécutable  ne laisse plus aucune trace du programme
 source.  Le désassembleur va vous permettre de décompiler un pro-
 gramme pour avoir de nouveau son source et pour l'étudier.

 Un moniteur de disk: (MEGARIPPER!?)
 -------------------
 Ce  logiciel  va permettre de s'attaquer directement au "hard" de
 la  disquette  d'en modifier le contenu ou d'en extraire une par-
 tie.  Si  possible, essayez de mettre la main sur un multi-décom-
 pacteur.



    LES FORMULES MAGIQUES :
    ---------------------

    Le hacker va chercher à neutraliser la protection.  Cela sous-
entend  qu'il va empêcher ou sauter son exécution.  Pour se faire,
il  va  remplacer l'instruction (ou les instructions) composant la
protection par d'autres ne faisant... rien!

    Le tout est donc de localiser la protection à l'aide du debug-
ger, puis  de mettre des NOP où il faut à l'aide du moniteur ou du
debugger... (les NOPs sont les instructions qui ne font rien.)



    QUELQUES PROTECTIONS:
    --------------------

    Nous  allons voir quelques types de protections et comment les
passer:


    A) "RANDOM"
    -----------

    Ce  genre de protection va générer un numéro aléatoire, qui va
    renvoyer l'utilisateur à un manuel.  Il devra entrer la donnée
    correspondante.

    Il  faut  placer des breakpoints à chaque TRAP #14 et regarder
    si l'appel RANDOM a lieu à cet endroit...

    Certaines protections consultent les données d'un fichier sui-
    vant l'heure, par exemple, pour avoir un numéro aléatoire.

    Il suffit de remplir ce fichier par une même donnée.


    B) LES PROTECTIONS EN HARD...
    -----------------------------

    Celles-ci sont les plus dures à passer.

    SUR DISK : les duplicateurs industriels sont capables d'écrire
    des données que nos contrôleurs ne peuvent reproduire.  Le lo-
    giciel va alors vérifier si cette donnée est présente à un en-
    droit particulier du disk.

    Juste  avant  le  déplacement de la tête de lecture (on entend
    généralement un gros bruit...), le hacker va récupérer la main
    et neutraliser le test.

    EN CLE : celles-ci  utilisent  les  interruptions lorsqu'elles
    sont insérées dans un port.

    Il faut simuler l'existence de la clé en créant l'interruption
    logicielle  et  en  écrivant son code...  Il est préférable de
    posséder  un  exemplaire de la clé.  Cela rend le travail plus
    facile.


    C) LES PROTECTIONS COMPACTEES:
    ------------------------------

    Celles-ci sont décompactées par le programme. Il faut non seu-
    lement les localiser, mais encore les modifier au bon moment.

    Le hacker va laisser la protection se décompresser puis, juste
    avant  sont  exécution,  il va insérer une instruction l'auto-
    modifiant  du  genre "MOVE #$4e71,adresse" à l'endroit ou elle
    entre  en jeu.  Si ça marche, il va désassembler le programme,
    mettre l'instruction d'auto-modification au même endroit  puis
    recompiler. A la prochaine exécution et après le décompactage,
    la protection sera annulée.



    LE BA-BA.
    ---------

    Les  étapes  à  suivre pour cracker un soft. Cette méthode est
valable pour les petites protections par code.  N'allez pas croire
qu'il faut systématiquement procéder ainsi.

    a) Dupliquer la disquette originale avec sa protection.
    b) Charger un débugger puis le programme a cracker.
    c) Prendre une feuille et du papier (beaucoup!!!)
    d) Mettre des breakpoints un peu partout:
       - après chaque JSR ou BSR
       - à chaque TRAP
      Ceci  vous assurera de reprendre la main dans la plupart des
      cas (en utilisant ADEBUG bien sûr...)
    e) Lancer l'exécution.
    f) Si  vous  ne reprenez pas la main, faire un break au moment
       le plus opportun (juste avant la demande de code par ex.)
    g) Si  vous  ne  reprenez  toujours pas la main, recommencez à
       l'étape a) en exécutant par bout de programme.
       Si nécessaire, passez en IPL 7.
    h) Arrivé  ici,  vous avez a peu près localisé ou se trouve la
       protection.
       - noter l'adresse actuelle, cela vous permettra au prochain
         essai d'éviter de repasser par les étapes précédentes.
       - chercher  où se trouvent les données en mémoire (ex : les
         couleurs, les mots de passe...) et les modifier si nécés-
         saire.
       - regarder sur quoi pointent les registres d'adresse.
       - placer des breakpoints aux BNE. Ceux-ci sont généralement
         les sauts lorsque le code est mauvais.
       - noter les adresses intéressantes.
    i) Exécutez d'un coup les BSR et JSR jusqu'à celui qui exécute
       la protection. Ne pas oublier de noter son adresse.
    j) Vous savez maintenant où se trouve la protection. Passez si
       nécessaire  plusieurs  fois par i) et j) jusqu'à trouver où
       se trouve précisément le test.
    k) Noter une partie de la séquence de code de la protection en
       HEXA.
    l) Remplacer  le  code de la protection par des NOPs ou mettre
       un RTS à sa première instruction.
    m) Lancer et vérifier si la protection est neutralisée. Recom-
       mencer autant de fois que nécessaire les étapes j) à l).
    n) Débugger  le  programme pour vérifier si l'annulation de la
       protection n'a pas altéré l'exécution future.
    o) A l'aide d'un moniteur de disk, rechercher les séquences en
       HEXA  notées en k) et remplacer le code par 4e71 (NOP) puis
       sauver.
    p) Et voilà le travail!



    HASTA LA VISTA
    --------------

    J'imagine  que les crackers confirmés ont pissé de rire devant
cet article.  Je suis d'accord avec eux et je confirme que le hac-
king est un art et qu'il n'est pas accessible facilement.  Il faut
de  la persévérance pour arriver au bout de certaines protections.
J'espère  que  les crackeurs que je ne citerai pas seront d'accord
avec moi. De toutes façons, je suis sûr que ça a au moins interes-
se  les  pauvres hères qui n'y connaissent rien...  On se ratrappe
comme on peut... Héhéhé !

Allez,
                  see ya !

                                         article écrit le 10/12/95
                                         en 1h30 pour TOXIC MAG 11
                                         par DZ?DJTP/Supremacy.

------------------------------------------------------------------
    Je vous laisse décrypter mon pseudo sachant que D=S et que les
lettres sont décalées par rapport au clavier...
------------------------------------------------------------------

Note de Thyrex: Je tiens à préciser que No Limit Coding ne pratique
                pas le piratage. Sachez que c'est  cela qui a  fait
                fuir les programmeurs de jeux.... Il est  vrai  que
                ça  m'aurait fait chier d'acheter un jeu 'OCEAN'...
                Et comme si ce n'était  pas  suffisant , maintenant
                des crétins crackent des jeux qui sont  à  porté de
                toutes les bourses !!! (UTOPOS etc...).
                je voudrais  bien  voir la tête d'anciens  crackers
                reconvertis dans le développement de jeux  victimes
                de ce genre de delit (il y'en a !!!!).



[ Retour au sommaire ]