A au fait maman merci pour le conseil.
Ah oui lequel ?
Ouvrir un plan d'épargne retraite à la Carac.
Ah oui.
En 2024, le fonds euro de la Carac m'a rapporté 4%.
Mais oui la Carac s'occupe bien de nous et depuis longtemps.
Et nous avons un conseiller en patrimoine dédié qui change tout.
Et jusqu'au 31 mars, la Carac me donne 50 euros si je verse 2000 euros.
Et ça peut aller jusqu'à 1000 euros offert.
A la Carac, on se bat pour vous.
Les taux passés ne préjuchent pas des taux à venir.
Taux net de frais avant prélèvement sociaux.
Offre soumise à conditions, plus d'informations sur carac.fr.
Mutuelle soumise au livre 2 du code de la mutualité.
Bienvenue dans Underscore, installez-vous bien.
Et bienvenue Martin.
Merci, merci de m'avoir invité.
Mais du coup bienvenue Martin, est-ce que tu peux juste,
on va rentrer dans le vif du sujet, du cheat making etc.
Mais peut-être tu peux nous dire un peu ce que tu fais dans la vie actuellement,
dans cette boîte qui les inacte.
Le jour, que fais-tu le jour ?
Que fais-tu le jour, que fais-tu la nuit ?
Du coup je suis coordinateur du Pôle Développement chez SINACTIVE.
SINACTIVE, c'est une entreprise qui a été créée en 2012,
qui cherche à devenir, à être, la référence en matière de cyber sécurité offensive en France.
Aujourd'hui ça représente à peu près 190 personnes.
Et du coup on fait pas mal de types de missions,
du pentest, de la rétroconception,
dans le but de trouver des vulnérabilités.
On fait du développement d'outils offensifs et défensifs.
On fait aussi de la réponse à l'incident.
Et aussi on développe un outil d'investigation numérique.
On fait tout.
Et c'est typiquement, toi tu bosse plus sur le loutillage de ça ?
Ouais, moi je coordonne le Pôle Développement.
Donc on fait en fait à la fois de loutillage pour les autres équipes,
à l'intérieur de SINACTIVE.
Mais aussi des missions spécifiques pour nos clients externes
qui vont avoir des besoins particuliers.
Ok.
Et vous avez des trucs publics ?
Genre des trucs open source ou pas trop ?
Oui, alors il y a plein de petits outils, de programmes etc.
qui sortent sur internet, sur GitHub.
Allez voir dans le GitHub, il y a tout un tas de projets.
Après on a aussi quelques projets plus commerciaux.
Pour en citer 15, pour les cités Cracosaurus,
qui est notre plateforme de cracking de H.
Donc ça c'est principalement utilisé.
Cracosaurus, très bon Némi.
Et donc c'est quoi ? C'est des data centers que vous mettez à l'exposition ?
Alors généralement on va plutôt vouloir héberger nous-mêmes nos solutions.
Et nos clients aussi.
Donc ça va principalement être un cluster de serveurs équipés de GPU.
Donc un peu comme ce qu'on pourrait utiliser pour entraîner des LLM.
Ou un Blodio.
Pour leur donner une seconde vie, c'est ça.
C'est cracker des H.
Et du coup, on les dédie à ça.
Pour tester des milliers, de centaines, de milliers, de millions,
fonction du format de H, fonction de la rapidité.
Mais du coup on a des machines qui tournent chez nous 24h sur 24, 7 jours sur 7.
Et puis dès qu'elles réussissent à trouver les mots de passe,
elles ont fait des petites notifications.
En fait c'est du cracking de mot de passe à la demande.
J'allais demander s'il y avait d'autres usage,
à part celui-là qu'on connaît, entre guillemets.
Est-ce qu'il y a d'autres raisons de trouver des H que du classique mot de passe ?
Il peut y en avoir d'autres pour des attaques crypto notamment.
Mais j'ai envie de dire que la majorité de l'utilisation de Cracosorus,
c'est pour accompagner un pen testeur,
pour faire en sorte qu'il puisse utiliser son temps,
là où il va avoir plus de valeur ajoutée,
plutôt que de bébiscité d'H4 et de G1.
Pour toujours relancer, relancer, après avec tel ou tel règle.
On a réussi à capitaliser beaucoup sur des années,
des expériences d'intrusion pour avoir des world lists,
des rules, des masclistes, etc.
qui vont permettre d'avoir des bons résultats.
Et surtout, c'est un taf de toujours être à jour.
Parce que juste maintenir ces bases de données, ces world lists,
c'est tout comme ça.
Oui, ça peut être internappable.
C'est une petite pérémie en fait.
Très intéressant. Très bon noir toi.
Oui.
C'est une présentation de client aujourd'hui.
Ou bien, tu vas faire un tout autre poursuivier.
Alors, évidemment, ça va trop passionner ce que vous faites.
Nous, on avait reçu des collègues à l'époque, peut-être que tu avais vu.
Pour la Tesla.
Voilà, c'est ça pour parler de la Tesla.
Donc, plutôt en test d'intrusion entre...
Je ne sais pas, dans quel pollyzé tu as.
Alors, il y en avait un du poll pen test,
un du poll reverse engineering.
Et donc là, c'était dans le cadre de la compétition PON2N.
D'ailleurs, il y en a un autre bientôt en Irlande.
On envoie des gens qui...
Bah, dites-nous.
Qui t'en est-il ?
Tout un tas de cibles.
Et notamment la Tesla encore.
Donc, on va voir ce que ça donne.
Parce que, juste pour me souvenir,
est-ce qu'on sait à l'avance,
on sait pas à l'avance qu'on se prépare les autres équipes ?
Non, on ne sait pas ce que les autres équipements.
Une incertitude sur ce qu'on connaît.
On connaît la liste des targets.
On sait à l'avance quels devices font partie de la compétition.
Donc, on peut, pendant des semaines, voire des mois,
commencer à préparer les attaques,
à trouver des vulnérabilités,
développer des exploits,
essayer de les fiabiliser au maximum,
parce que le jour de la compétition,
on a eu trois tentatives.
J'avais pas ça, mais c'est très cool.
Et il y a un temps limité aussi.
Les tentatives ne peuvent pas prendre trop de temps.
Et on sait pas ce que les autres équipes ont.
Elles peuvent potentiellement cibler les mêmes que nous,
avoir identifié les mêmes vulnérabilités.
Et du coup, il y a un tirage au sort
pour savoir qui va passer au premier.
C'est important.
Donc, il y a des fois...
C'est le premier qui gagne.
Le hasard peut vraiment influer.
Et donc, des fois, pas de chance.
T'es passé numéro 2,
et puis l'autre, il utilisait la même vulne que toi.
Ça laisse le travail de mon travail.
C'est horrible.
Je vous propose...
Il y a une dernière chose aussi
qui peut changer un peu la donne.
Mais c'est que les vendors vont généralement
sortir des mises à jour,
juste avant la compétition.
Donc, on peut aussi avoir tout parier
sur une vulnérable chaîne qui marche, etc.
Et puis, la patch à la dernière minute.
Évidemment, il faut les mises à jour chez Ponton.
Ah, yai, yai, yai.
T'as un biciel stress.
Je vous propose de rentrer dans la vie de ce sujet.
Puisque aujourd'hui, nous n'allons pas parler de ça.
Nous allons parler de jeux vidéo.
Je vais faire ma petite intro.
Je t'invite juste à tirer un tout petit peu ton micro.
Parce que, comme c'est des micros de podcast,
il faut manger dedans.
Et je fais ma petite intro et on commence
dans le sujet.
Aujourd'hui, on reçoit Martin Balch,
un ancien développeur de cheat.
Ces programmes qui permettent de tricher
aux jeux vidéo.
Tu vas nous raconter comment tu es tombé dedans
quand tu étais petit, comment ça marche,
comment les éditeurs de jeux se défendent
et enfin comment tu as déjà vendu des cheats
à des joueurs pros.
Ce qui est quand même un truc que peu de gens peuvent se targuer.
Vous allez voir, le cheat making, c'est un univers absolument
passionnant.
Ce n'est pas juste des gros sous et des scandales
pendant les compétitions.
C'est aussi une porte d'entrée incroyable
dans le monde du hacking.
Première question, évidemment.
Comment tu es tombé dans le développement de cheats ?
C'était quoi un peu l'élément déclencheur ?
Ok, bon déjà il faut revenir pas mal en arrière.
On est fin des années 99, début 2000.
Donc je suis au lycée, j'ai mis la calculée de casuaux
et du coup j'ai commencé à programmer en basique.
Et j'avais un camarade de classe,
qui s'appelait Salomon,
et qui, tout à fait en passant, a créé Docker.
D'accord, d'accord.
Je n'ai pas vu venir celle-là.
Oui, mais il espère que je suis là.
Je vois sa tête.
Il était dans ma classe et il m'a dit
« Martin, t'as d'or programmé, il te faut un PC,
il faut que tu commences. »
Il avait raison.
Du coup, c'est une époque où on jouait beaucoup
dans des salles de jeux en réseau,
des LAN parties, etc.
J'ai économisé mon argent de poche pendant quelques temps,
à Noël, l'anniversaire,
et je me suis acheté un PC.
Je me souviens encore des stats,
c'est vraiment ridicule,
un MDK6 2, 400 MHz, 64 MHz,
8,5 Giga de disque dur.
C'était compliqué d'avoir un Dual Boot Windows Linux
au niveau de la place, mais ça passait,
avec des bienes 2.
Donc ça, c'était à Bécan,
et j'ai commencé à acheter des livres
sur la programmation C,
et j'ai commencé principalement à faire du modding
pour des jeux vidéo.
A l'époque, ça existe toujours,
mais les jeux les plus populaires,
ou du moins ceux qui m'en intéressaient le plus,
c'était First Person Shooter, Quake, Half-Life,
donc j'avais installé ça,
mais je n'avais pas encore Internet,
mes parents ne voulaient pas que j'ai Internet,
et Counter Strike, c'était un jeu exclusivement,
c'était un mod de Half-Life,
à l'époque, ce n'était pas un jeu standalone,
et on ne pouvait y jouer qu'en ligne,
il n'y avait pas de système de bot
pour jouer en solo.
Il y a des gens qui avaient fait des mods
du mod de Counter Strike,
pour pouvoir jouer tout seul avec des bots.
Mais ça, c'était des serveurs side bots.
Et du coup, en m'en renseignant sur Internet,
je suis arrivé au client side bot.
Donc là, c'est un petit peu autre chose.
Il y a tout un tas de technologies
qui sont vraiment identiques,
de méthodes qui sont identiques,
mais l'idée est d'injecter du code,
pas sur le serveur pour émuler d'autres joueurs,
mais pour jouer à sa place,
et donc viser automatiquement,
se déplacer automatiquement,
ou juste nous donner tout un tas d'avantage
pour tricher.
– Juste du coup, pour comprendre,
le but à l'origine, c'est
de comprendre comment jouer
avec des personnages virtuels.
Ça part de ça.
Quand tu dis serveurs side bots,
c'était ça ?
À l'origine, c'était émuler simplement
d'autres joueurs ?
– Oui, mais en fait, il faut savoir qu'à l'époque,
on avait tout le temps, dans le jeu vidéo,
la composante serveur pour héberger
une partie en LAN,
on n'avait pas de service cloud
avec la partie serveur inaccessible.
Donc en fait, l'idée, c'était juste
de lancer la partie en local,
en tant que serveur,
mais du coup, je suis tout seul dans la map,
donc c'est pas très fun.
Je peux m'amuser à courir,
à faire du bunny jumping,
mais si je peux avoir un programme
qui va injecter d'autres faux joueurs
dans la partie,
j'avais des coéquipiers,
des adversaires, c'était des bots,
mais du coup, je pouvais jouer au jeu.
– Sans que c'était prévu à la base
par l'éditeur, évidemment.
Et donc déjà, c'était peut-être
la première fois que tu découvres
comment émuler des...
– Alors là, je n'étais même pas
au début rentré dans le code.
Il y avait des gens qui publiaient
des bots serveurs side différents
pour Counter Strike.
Il y en avait qui utilisaient aussi
des réseaux de neurones pour essayer
d'apprendre en fonction des
parties jouées
par les humains.
Donc on pouvait enregistrer
ce que s'appelait des démos, donc
c'était juste un enregistrement de la partie.
Au niveau du netcode, en fait,
donc c'était tout petit, sur quelques centaines
de cas ou quelques méga, on pouvait avoir
une partie complète d'une demi-heure,
une heure enregistrée.
– En gros, c'est l'ensemble des actions
effectuées par le...
– C'est tout ce que le jeu
va recevoir du serveur.
Et donc qui va lui dire
qu'il y a tel joueur qui a tel endroit,
là il y a une explosion,
là il y a si qui se passe.
Donc c'est les messages réseaux envoyés du serveur
aux clients.
– Oui, ils ont enregistré ça. – Et ils entraînaient
des bots pour qu'ils aient
des comportements un peu humains
pour se déplacer dans la map.
Donc ça, c'est quelque chose qui existait
à début des années 2000. – Préble.
– Pas avec les mêmes résultats que
ce qu'on peut avoir aujourd'hui, mais un petit peu similaire
je ne sais pas si vous avez vu passer ça, mais
ils ont
utilisé un...
Alors c'est pas un LLM du coup, mais du machine learning
pour émuler complètement une partie de Counter Strike
un point de vue
graphique.
J'ai vu passer ça là il y a 2-3 jours.
– Si, vous prédisez les frames qui... – C'est ça.
– ...suivante, c'est si, oui, j'ai vu ça. – Frame by frame.
– Incroyable.
Et donc toi, à ce moment-là, le point de départ c'est...
– J'ai envie de...
Je n'ai pas internet, j'ai personne avec qui jouer
à Counter Strike.
Et du coup, je télécharge des programmes
qui modifient donc le serveur
pour me donner
des coéquipiers virtuels.
– Ok, à quel moment arrive la triche ?
– Ben en fait, je me renseigne,
j'essaye de comprendre comment on sait.
Donc je suis toujours dans une démarche de
programmer. En fait, j'essaye
d'apprendre à apprendre un programme en C
mais sur un sujet qui me passionne.
Et du coup, les jeux vidéo sont une bonne porte
d'entrée là-dessus. Et donc j'ai commencé
à regarder, parce que ces trucs-là
étaient distribués en open source, comment ils étaient codés
et je trouve ça intéressant.
Et puis, à force de taper de trois recherches,
je finis par tomber sur un site
qui s'appelle ClayOnBot.narod.ru
Donc ça, c'était les...
– Ah, l'odeur du truc.
– Le point Rue déjà. – Point Rue, oui.
Narod.ru, en fait, c'était le Geocities
russe à l'époque. Un hébergeur
gratuit où tout le monde pouvait mettre sa petite page perso.
Et donc il y a un russe qui avait fait
un forum dédié à la triche
sur Winters Strike, Half-Life et d'autres jeux.
Et donc lui,
il avait sorti
un base-hook.
Donc c'était un programme
qui, de lui-même, ne faisait rien.
Mais en fait, qui démontrait
comment injecter du code
dans le processus du jeu.
Donc il y avait un petit
injecteur, un loader,
si on veut, qui allait
forcer le jeu
à charger une DLL.
Donc une bibliothèque de codes partagés.
Et dans laquelle
était la logique qu'on allait
injecter dans le jeu.
Et en fait, ce que ça faisait,
donc c'est que ça
récupérait tout un tas d'informations
sur l'état du jeu. Donc la position
de différentes personnes,
tous les événements qu'il peut y avoir,
et un certain nombre de fonctions,
enfin de pointeurs de fonctions,
pour appeler
des bouts de codes
existants dans le jeu.
Comme par exemple, je veux afficher
un sprite sur l'écran
pour pouvoir afficher une information
supplémentaire.
Je veux afficher un modèle
ou même juste
détourner des fonctions du jeu
pour pouvoir modifier les données
au fur et à mesure. Donc par exemple,
un exemple tout simple,
mais très efficace,
et qui est toujours une des choses
qui se fait le plus
de nos jours dans des cheats sur des FPS,
ça va être de rajouter
un ESP ou un glow
autour des
personnages.
Donc là, le jeu, dans le moteur,
avait déjà
des effets graphiques pour quand il y a les personnages,
il y avait un power-up, le quad-damage,
par exemple, dans Quay, etc.
Et donc ça faisait une espèce
d'aura, semi-translucide,
un petit peu jolie qui bouge,
et qui indique visuellement
qu'on a le power-up.
Attention, si cette personne te tire
dessus, tu vas mourir vite.
Mais ça, c'était
un flag à l'intérieur.
Quand on arrive dans
les fonctions de rendering
du personnage,
donc en fonction du modèle
qu'on a choisi, des textures qu'on a
choisi, il va utiliser
tel ou tel modèle, tel ou tel texture.
Mais si on avait le flag
glow A1,
qui était 7,
là on avait automatiquement
cette tête visuelle
qui permettait de voir beaucoup plus facilement,
beaucoup plus loin la personne.
Il y avait un autre flag qui pouvait dire
ignore
le clipping, le Z of 7,
et donc ça apparaissait
à travers les murs.
Donc on arrive à
un wall-acc,
qui permet donc
d'avoir un avantage certain
si on peut voir à travers les murs.
Juste pour reprendre un petit peu dans
l'ordre, parce que t'as mentionné pas mal de trucs
qui ne sont pas forcément intuitifs pour tout le monde,
c'est quoi la différence entre
être un développeur de mode
ou de acte dans ce genre-là,
et être le développeur
du jeu. C'est-à-dire que quand tu parlais
d'aller appeler des fonctions
dans le jeu, d'aller modifier la manière dont
le jeu s'occomporte
concrètement,
c'est quoi la différence entre
le développeur qui est chez l'éditeur
et toi ?
L'accès
au code source principalement.
Un développeur
d'un jeu vidéo, il va avoir
accès
à tout le code qui régit la logique
du jeu, tous les assets,
de manière
il va avoir le code source,
parce que pour les modèles, ce n'est pas du code,
mais il va y avoir les fichiers source.
Si on fait un mode
d'un jeu vidéo, généralement
on va avoir une partie
de ce code qui sera publiée
et qu'on pourra modifier.
Mais ce n'est pas tout le temps le cas.
Il y a des jeux qui ne donnent absolument
aucune partie de leur code.
Ils ne veulent pas aider les modèles, donc...
Oui, ils ne veulent pas leur faciliter la vie,
ou qu'ils considèrent que c'est du taf en plus.
Mais donc il va y avoir des cas où en tant que modeur
on peut accéder à une partie.
Mais par exemple, une partie auquel on a rarement
accès, ça va être
l'engin de rendering,
tout ce qui peut faire
un peu la valeur ajoutée d'un jeu.
Donc ça, c'est des choses qui vont protéger.
Mais
quand on va faire un mode
un petit peu officiel, on va pouvoir
travailler avec du code,
on va juste modifier de l'existent, rajouter
les nouvelles fonctionnalités, changer la logique,
rajouter des assets supplémentaires,
des nouvelles maps,
des nouvelles textures, des nouvelles armes,
enfin, ce qu'on veut.
À partir du moment où
on veut faire un cheat,
on peut
éventuellement avoir accès à une partie
du code source, il y a aussi des fois où il y a du code source qui fuite,
notamment le moteur
source, Half-Life,
Engine, il avait
fuité. Donc ça, c'est des choses qui peuvent être
intéressantes pour
avoir des points de référence et essayer de mieux
comprendre le code,
ou de moins plus facilement que
depuis de l'assemblure,
qu'on aurait
des assembles juste le code.
Parce que du coup, c'est ça que de la situation
normale, c'est que tu n'as rien,
tu te retrouves avec l'assemblure.
Et là, toi, ton job, c'est d'essayer de comprendre
le fonctionnement interne du jeu
de l'extérieur, en fait.
Moi, dans mon caractère,
pour Counter-Strike, pour Half-Life, etc.
il y avait donc une partie
du code qui était
open-sourcé pour pouvoir faire des modes.
Donc en fait, il y a tout un tas de types
de structures. Les structures,
par exemple, pour les joueurs,
qui étaient connues. Alors le format pouvait
un petit peu évoluer, mais du coup,
ça permet de déguiller
dans la partie reverse engineering, de savoir
qu'est-ce qu'on cherche. Et il y a aussi
des interfaces entre
la partie qui est modifiable,
la partie qui n'est pas. Et du coup,
ces interfaces-là, elles sont connues. Donc
à partir de là, si on injecte du code
et qu'on intercepte les fonctions à cet endroit-là,
on a des bases
sur lesquelles ça appuie.
C'est totalement inconnue que ton personnage
il a 3 propriétés
et qu'elles ont ce format-là et que du
coup, toi, si tu vas modifier
en tel endroit,
la couleur de son skin va changer. En gros, c'est un peu ça.
Ouais, c'est ça. Et concrètement,
on sait qu'il va y avoir
un vecteur pour la coordonnée du joueur,
que c'est 3 flottes
qui vont être d'affilée.
X, Y, Z. Après, il y aura
les angles. Et puis après, je vais avoir, je ne sais pas,
par exemple, un IN32
pour dire tous les flags
qu'il y a sur le joueur. Et puis à côté de ça, j'ai un fichier
point H avec
les valeurs différentes des flags. Donc
c'est plus facile. Si vous avez été perdu,
c'est que des structures qui permettent
d'écrire de la donnée sur un disque dur,
quoi, à Rambinaire. Vous dans les mémoires.
Vous dans les mémoires.
Et donc,
t'as dit un autre truc qui est, que je trouve intéressant
de détailler un petit peu. T'as parlé de DLL.
Tout le monde a au moins
entendu le mot.
DLL missing.
Au moins, une erreur.
Concrètement, c'est quoi
et cette histoire-là
de DLL
pirate, d'injection de DLL,
est-ce que tu peux nous expliquer
pourquoi ça marche ?
Cette technique
d'injection de DLL
c'est quoi déjà aussi ?
Le but, ça va être,
il y a plein d'autres manières pour arriver
à cette fin.
Mais c'est une qui est simple, efficace
et qui a tout un tas d'avantage.
Mais donc l'idée, c'est de réussir
à prendre une DLL
dans laquelle on va écrire nous notre code.
On l'écrit en C, on l'écrit en C qu'on veut, on peut l'écrit en R.
Mais donc on implément notre
logique.
Et en fait, on va
trouver un moyen, donc par cette technique
de faire en sorte que le jeu charge
ce bout de code
dans sa mémoire
et l'exécute.
Et donc à partir de là, ce qu'on va vouloir faire
généralement, c'est de modifier
la logique du jeu et
de modifier le comportement du jeu.
La manière dont on va
faire ça,
comme je le disais, il y a plein de manières différentes
de le faire, la plus simple, la plus
connue
mais aussi facilement détectable,
c'est de faire
un enchaîné de 3 appels différents
de fonction, mais on va commencer par
ouvrir le process,
un open process, après on va
faire un virtual aloc
xMemory,
l'idée c'est
d'allouer dans le processus distant
de la mémoire, dans la
qu'on va aller écrire
avec une autre fonction writeProcessMemory, on va
écrire une chaîne de caractères, notamment
le nom de la DLL qu'on veut
injecter. Et à partir
de là, on va appeler une quatrième
fonction qui va être createRemoteSread,
donc ça va dire
créer un fil d'exécution
à distance. Et donc là,
c'est un appel système qu'on fait à Windows
et Windows
va se charger de créer
un nouveau thread à l'intérieur
du process, sur les arguments
qu'on lui a donnés. Et donc là, les arguments
qu'on va donner, c'est qu'on va donner l'adresse de la fonction
loadLibrary, qui sert
à l'ODDDLL, et comme argument
la zone mémoire qu'on avait alloué
et écrite. Et donc en fait, une fois que ça va être
exécuté,
du coup, le programme, c'est comme si on avait
trouvé, enfin on force
le programme à appeler
la fonction loadLibrary
avec le nom de la DLL. Et du coup
il la charge en mémoire. Et là en fait
c'est l'intérêt un petit peu de Package
et ça dans une DLL, c'est qu'après
il y a tous les mécanismes de linking
de l'OS.
Et donc si on a des dépendances à d'autres
librairies, etc., il y a tout qui va se faire
pour les loadLibrary, résoudre
tous les symboles dont on peut avoir besoin.
Et donc c'est assez pratique
de Package et ça comme ça. Évidemment question
de la question, mais tu peux faire ça
à partir du moment où
tu as des droits élevés
dans le système. Un programme
qui tourne à côté, genre je ne sais pas
moi, VLC, peut pas prendre le contrôle
d'un jeu vidéo qui tourne
juste à côté, juste comme ça.
En priori. Si en fait, si.
Si, il peut. Alors après il y a plein
de mécanismes au niveau de l'OS
pour limiter ça,
notamment la notion
d'intégrité des processus.
C'est un programme qui
tournerait dans une sandbox,
dans une intégrité plus basse,
ne pourrait pas le faire.
Après, un
programme qui tournerait sous un utilisateur
différent, pas avec le même
owner, ça ne marcherait pas
non plus. Après évidemment
sauf si on est haut, sauf si on est
à l'admire. En gros, ça marche.
En fait, ça paraît super con
je ne sais pas comment dire, mais
juste, tu as une manière
qui n'est pas très un l'oblique, tu ne sais pas
nécessairement une faille pour lancer
injecté du code dans un autre process.
Au bout du compte, CREATRIMODSRED
c'est une fonctionnalité offerte par le kernel
Windows. Donc ça
ça va être quelque chose qui va être
particulièrement regardé par des solutions
d'Antichit ou des solutions
des EDR ou des antivirus.
Ça va être des fonctions
qui sont
plus souvent utilisées dans un cadre
malicieux que légitimes, même si
ils existent.
C'est la question que j'avais sûre
c'est ok, donc toi à ce moment-là tu découvres
aussi le valeur de développement
cheat, comment on s'injecte dans un autre process etc.
Est-ce qu'à l'époque, il y avait
déjà des techniques
développées par les éditeurs de jeu pour
vous empêcher de faire ça
ou sinon quand est-ce que ça arrivait ?
Les empêcher je dirais non
les détecter
il y avait des systèmes
moi celui auquel j'ai été le plus exposé
s'appelait punkbuster
c'était ce qui protégait
Quake 3
Il y avait déjà un système de détection
il y avait des cheats
il y avait des gens qui râlaient
il y avait des gens qui
il y avait une opportunité, une opportunité business
etc.
mais donc il y avait des antichits
qui étaient
beaucoup moins perfectionnés
avancés par rapport à ce qu'il peut
se faire maintenant
mais
dans l'ensemble, il faisait déjà
le boulot
c'est à dire qu'ils arrivaient
à détecter la majorité
des cheats publics
open source
ce qui n'était pas
des private cheats
parce qu'ils pouvaient se baser
plutôt que de se baser
sur des techniques particulières
ils se basaient juste sur des signatures
ils regardaient la liste des DLL
qui était chargée dans le programme
et puis s'ils envoyaient une qui s'appelait comme ça
s'appelait OJC
par exemple c'était un cheat populaire
ils voient OJC.dll dedans
ils font un nom, je te kick
je te banne, je reporte
et ça suffisait en fait
c'était des trucs un peu basiques mais qui marchaient
il y a des techniques
qui ont un truc d'anti-cheat
qui sont un peu plus intéressantes
ou
il y a des stratégies malignes
dans le jeu du chat de la souris
sur maintenant ou à l'époque
en fait les deux
enfin un exemple
que je peux donner pour à l'époque
mais bon ça reste assez
radépacrète tu as envie de dire
par exemple
une des manières de UK
une fonction
pour pouvoir modifier des données
à la volée à certains endroits
donc on va aller
réécrire des instructions
à certains endroits dans le code
en changeant la protection mémoire
et en écrivant directement
des op codes
donc en gros on écrit de l'assembleur
mais en forme abinaire
et du coup on va mettre un jump
un jump pour aller
à une partie du code
donc on contrôle le code qu'on a écrit
derrière
ça va être détoné
on détonne
on réécrit
les instructions qu'on avait effacé
parce que du coup
le jeu marche quand même
après potentiellement
on appelle la fonctionnalité originale
et on peut modifier
les données avant, après
donc ça c'est ça qu'on appelle un hook, un crochet
donc par exemple ton épée
au lieu de faire d'autres dégâts
tu fais un x5 dessus
tu fais des dégâts, mais thématiquement
ça sur un jeu en ligne
multi-joueur ça ne marchera pas
mais sur un jeu solo en local
tout à fait
donc quand
ils sont passés en fait
des détections de signature
à essayer de détecter des méthodes
de corruption de la mémoire
donc en fait ils regardaient juste
à certains endroits
et regardaient, ça commence par E9
parce que E9
c'était un jump en x86
et donc si vous voyez un E9
à cet endroit là, c'est pas censé être un E9
mais ils disaient détecter, ban, c'est pas bien
et en fait
il existe plusieurs
manières d'encoder les instructions
et donc moi j'avais testé de remplacer ça
par FF15 qui est une autre
qui a un jeu très connu mais qui est aussi
une autre instruction
qui a un autre jump, mais au lieu d'être un jump
relatif par rapport
à l'endroit où on est dans la mémoire actuellement
c'est un jump à une adresse absolue
c'est...
Mais celui là il marchait
Mais celui là il était pas détecté
au début c'était basique
ouais il y avait pas grand chose à faire
après un petit peu plus tard
ils ont amélioré leur
système de détection, ils sont mis
à faire quelque chose d'un petit peu plus malin
qui était juste de périodiquement
scanner l'intégralité du segment
texte du programme
du jeu et du coup
de regarder s'il y avait la moindre
enfin il va faire un checksum
faire une empreinte, un hash
un shawan, un md5, de tout ça
et de regarder si c'était
la bonne valeur, si on n'avait pas modifié
ça donne le bon hash
et sinon ça donne le mauvais hash
donc quel que soit
le type de hook que je mettais
la ça ne marchait pas
aussi de l'intégrité a été modifiée
hop, t'es ban
t'as déjà été ban avec un cheat ?
ouais ouais ça arrive
mais généralement
c'est des bannes temporaires
parce qu'en fait ils veulent visiter les faux positifs
et à partir du moment où ils commencent
à modifier la mémoire, à bidouiller etc
enfin ils veulent pas trop prendre le risque
donc ils vont souvent
en fait
attendre
et puis bon, et aussi c'est pour aussi
donner leur chance aux
des gens à se dire bon
t'as fait une bêtise une fois
ok je laisse passer
je te banne temporairement pendant 24h48
une semaine mais après
quand c'est la cinquième fois mec t'es irrécuperable
là je te banne au niveau hardware
et tant que tu change pas suffisamment
de choses dans ton pc, tu restes
bloqué quoi et du coup sur la histoire du scan
ouais et alors du coup ouais j'ai pas fini
tu t'en ai sorti de cette histoire ou pas ?
ouais alors j'ai contourné de
de manière différente d'abord
la première mais qui me plaisait pas trop
mais qui marchait, qui était efficace
c'était de
de hooker
en fait le code de l'anti cheat
pour détecter
quand est-ce que eux allaient faire le scan
et à ce moment là en fait
enlever tout mes hoocs
laisser le scan passer
et après les remettre
ce qui donnait un petit effet
visuel, un petit glitch
où il y avait tous les effets graphiques qui disparaissaient
pendant une fraction de seconde et qui revenait
et là je me suis fait scanner
il arrond, c'est très drôle
mais alors je sais pas comment dire
mais métaphoriquement t'as vraiment l'impression
qu'il y a quelqu'un qui fait une ronde
et euh...
tu te colles au mur et tu passes
tout le monde te cache, tout le monde
te slater, t'as pas de faite gaffe
bon on peut y retourner
incroyable mais alors du coup
ça a
apparturement on commence à toucher un peu aux
anti cheats
et là ils ont pas trop de
euh...
enfin ils rigolent plus, c'est là où ils se mettent
à ban, à hardware ban
direct
et du coup en fait j'aimais pas le coup
déjà il y a des moments
ça a désactivé un petit peu les cheats tu le voyais
et puis c'était pas élégant
comme solution
bon du coup en l'occurrence là
sur Quake il y avait
une partie de la mémoire qui pouvait pas
check semée
parce qu'elle était générée
dynamiquement, il y avait
Just in Time
à l'époque le jeu avait été fait pour
marcher sur Windows, Linux et Mac
et il y avait ce qui s'appelait des QVM
Quake Virtual Machine et un peu
à la manière d'un navigateur internet
qui va compiler le JavaScript
et transformer
en instructions natives
pour améliorer les performances et la rapidité
ben Quake faisait ça
et du coup ça c'était aussi
donc ça allait générer
du code
spécifique à la machine
sur laquelle il tournait et donc là les antichits
n'avaient aucun moyen de connaître la valeur
de faire une emprunte donc je suis allé planquer
mon code là dedans et puis ça
ça se...
T'as trouvé un fourri en fait ou se cacher
ou les gardes ne passaient pas quoi
Ben cette technique du coup
n'a jamais été détectée par punkbuster
d'ailleurs
Est-ce que encore aujourd'hui
il y a des... t'as déjà vu entre guillemets
des années plus tard des cheats
qui utilisent ce genre de choses aussi
Ouais ouais enfin
mais la technique de l'injection de DLL dont je parlais
avant vraiment basique de ok
c'est un peu les building blocks
c'est les choses qui marchent
qui sont utilisées aussi dans d'autres contextes
mais c'est des choses qui marchent toujours
après c'est des choses qui peuvent
se faire détecter plus ou moins facilement
bébé sué un tout petit peu ton micro
non tu n'as pas cru
non le B c'est plutôt...
en fait faut qu'on voit ta... sinon on te voit mon...
ah ouais
parle un petit coup
est-ce que c'est bien non ?
non en gros ça fait une montagne
donc c'est plutôt la... en gros c'est...
vas-y vas-y
mais y a des nos micros qui sont un peu bizarres
comme ça ? non
voilà nickel
c'est un togut
moi
on a eu un petit pas...
évidemment certains se font encore sur leur fin
sur la technique et tout mais bon
c'est pas non plus de perdre au tout le monde
je propose de s'arrêter un peu sur un autre aspect
qui m'intéresse trop c'est l'économie
c'est qui a une économie dans le jeu vidéo
euh...
qu'en est-il de la triche ?
est-ce qu'il y avait une économie déjà à l'époque
une sorte d'économie parallèle où on pouvait acheter
des cheats par exemple
c'était quoi un peu les raisons
qui faisaient que les gens s'intéressaient
ça est-ce qu'il y avait déjà de la compétition
ce qu'il y avait etc... c'était quoi les enjeux ?
alors du coup il y avait effectivement
déjà des compétitions avec du prize money
euh...
et du coup des compétitions qui étaient entièrement en ligne
euh...
il y avait donc des gens qui
qui voulaient gagner
que ce soit pour des raisons monétaires ou juste pour montrer qu'ils étaient les plus forts
euh... et donc il y a des gens qui étaient déjà
prêts à acheter des cheats à l'époque
alors c'était pas du tout
le même business que c'est maintenant
parce que maintenant c'est des
des cheats makers
qui font ça professionnellement
ils font payer des abonnements
et du coup dès que le cheat est détecté
ils promettent
de redonner
accès à un nouveau
un détecté direct etc
et il y a des histoires
enfin ça brasse
des centaines, enfin voir
des millions d'euros quoi
donc c'est un gros business
à l'époque c'était pas le cas
mais il y avait quand même quelques
il y avait déjà des gens qui vendaient les cheats
mais c'était plutôt en mode
one off, bah je te le vends
et il est indétecté aujourd'hui
après est-ce que ça tiendra
deux semaines, deux mois, deux ans je sais pas
mais en tout cas si t'en voulais un nouveau
bah tu repèriras
tu repasseras par les caisses quoi
du coup moi...
ça se vendait combien à peu près ?
100, 200 euros
pour des cheats publics
moi j'en ai vendu
500 euros
c'était des cheats privates
donc ça c'était des cheats que j'ai fait
pour une personne
avec des spécifications
qui m'a demandé
qui m'a donné
et du coup voilà c'était un cheat
sur mesure qui était pas du tout
donc distribué publiquement ou autre
et du coup bah qui était beaucoup moins
enfin qui avait beaucoup plus de chance
de durer dans le temps
et de pas être détecté
et toi à l'époque t'es étudiant
ou tu...
ouais moi toute cette activité là
c'est quand je suis en école d'ingénieur
trop fait non
bah ça m'a payé des vacances au ski
et c'était sur quel jeu ?
c'était sur Quaiq3
et c'était donc quelqu'un
donc c'était un joueur pro ?
ouais alors là dans l'occurrence c'était quelqu'un qui était dans
l'équipe nationale de suisse
et un autre équipe nationale française
qui m'ont chacun demandé
des cheats avec des
fonctionnalités vraiment différentes
mais donc c'est des gens qui m'ont identifié
sur les forums de cheatmaker
parce que bah je t'ai actif là dedans
pour échanger
des techniques ou discuter
avec des personnes qui avaient un peu les mêmes
centres d'intérêt avec moi
et donc ils m'ont envoyé
envoyé un message privé en me disant
est-ce que tu serais intéressé pour
me faire un cheat custom
avec telle et telle fonctionnalité
combien tu me vendrais ça
c'était quoi comme type de cheat
est-ce que c'était que
des informations en plus affichées
à l'écran
ou il y avait aussi du comportement du joueur
soit des déplacements, des tirs etc
alors de déplacements non
alors j'en ai fait 2
comme ça custom
le premier assez classique
il voulait un auto-shoot
donc l'idée c'était pas d'avoir un namebot
parce que ça c'est
dans ces jeux là on peut facilement
être en mode spectateur et donc voir
les déplacements souris de la personne
et un namebot ça peut être
assez risqué
ça se voit à quoi
si ça loque et que ça vise tout le temps la tête
c'est vraiment trop facile de détecter
par contre un auto-shoot
où on passe la souris
et puis ça va juste
émuler un clic au bon moment
quand on passe juste devant la cible
ça c'est quelque chose qui
peut vous dire à détecter
parce que oui en gros il y a l'aspect
de la visée et du timing
donc là c'est un truc sur le timing
ça fait le timing pour nous
et donc ça c'est quelque chose qui est très efficace
pour là on voit le railgun
donc avec 3
ça c'est le tien ?
non ça c'est pas le mien
je connais par contre le développeur qui l'a fait
et j'ai pu en faire
mais les mien étaient plus discrets que ça
parce qu'il faut dire que
quand un cheat est public
forcément il va se faire plus facilement détecter
parce que les solutions internet que quand il est privé
l'éditeur de solution
de détection, bah lui il le télécharge
il le analyse, il le dépiète et derrière
il rajoute du code
de la logique pour le détecter
est-ce qu'il y a des techniques
pour que justement on a parlé
du fait de pas se faire détecter
par l'anti cheat ? moi je trouve ça intéressant aussi
de le côté de ne pas se faire détecter
par les autres
est-ce que tu as du mettre en place
donc là tu as parlé de l'autochoute qui est plutôt discré
est-ce que tu as du mettre en place des logiques particulières
pour justement parce que vu que c'est des joueurs pro
qui vont potentiellement être regardés
pour pas qu'ils se fassent détecter en mode spectateur
alors j'ai fait les choses
mais pour être parfaitement internet
c'était assez expérimental
mais je vois maintenant
quand je regarde un petit peu de temps en temps
sur les forums de cheat actuel
des gens qui font ce genre de choses aussi
mais l'idée est de donner un comportement
plus humain à un aimbot
et du coup de...
moi ce que j'avais pu faire en fait c'était
de détecter quand je déplace la souris
je calcule déjà l'endroit
de où il faut viser
pour toucher
potentiellement en anticipant
le durée
pour que les projectiles atteignent la cible
ou est-ce que c'est un it scan
est-ce que c'est instantané
il va falloir prendre ça en compte
et il va falloir prendre en compte le lag
le temps de réponse avec le serveur
ça peut influer
donc on calcule l'endroit où il faut tirer
et à partir de là
je regardais
quand je voyais que la souris bougeait
si la souris bougeait pas
je faisais rien
si la souris bougeait
je regardais est-ce qu'elle allait dans le bon sens
pour aller vers une cible
et si oui je l'ai décalé un tout petit peu
pour aller
c'était exactement le bon sens
et du coup
on déplace la souris sur le côté
et puis si moi je vise pas tout à fait bien
le cheat arrive
à voir
lequel je visais
et du coup m'aide un petit peu
me guide sur le bon chemin
un effet d'attraction
c'est un aim assist
mais ce qui est marrant c'est que maintenant
les aim assist
donc une technologie de cheat
en fait et intégrée de base
dans beaucoup de jeux multijoueurs
pour notamment
avantagez un petit peu des joueurs
par rapport à des joueurs pc
quand il y a du crossplay ou des choses comme ça
c'est vrai que c'est marrant que les premiers gens
qui ont développé un aim assist
c'était vous en fait
et ça m'a fait marrer
de jouer à Overwatch 2
et de voir qu'il y avait un perso dont le pouvoir
était de voir à travers les murs
maintenant les fonctionnalités elles sont en standard
c'est plus la triche c'est une fonctionnalité
il y a plus besoin de s'embêter
et
ça c'est le premier exemple
pour le aim bot
il y a d'autres trucs de ce genre là
pour ne pas être détectés en live
même sur le...
sur la manière dont tu contrôles ton cheat
je sais que
un cheat public tu vas peut-être avoir une fenêtre
qui se superpose au jeu
ou tu peux littéralement avoir une interface de contrôle
moi j'ai bien dit qu'un joueur pro
il veut pas ça quoi
ça va le griller
quelque chose que j'ai moi j'avais demandé de faire
il y a
je sais pas si vous avez vu il y a pas très longtemps
il y avait un clavier
un clavier par Logitech qui s'est fait interdire
pour les compétitions pro de Counter Strike
parce que
il y a des espèces de systèmes de macro
ou de auto-repeat
et là je crois que c'était pour le strafe gauche-droite
quand on appuie
sur les deux boutons en même temps
mais là en gros ils avaient mis de la mécanique à l'intérieur
pour détecter qu'on était en train de faire ça
et pour rendre plus rapide que ce qu'on a
avec les vrais réflexes humains
et donc du coup Val va dire
qu'il banait
l'utilisation de ces claviers
en compétition
et du coup
à moindre mesure il y a aussi des gens qui faisaient
par exemple bindé la molette
à l'action de sauter
pour par exemple courir
et aller très très vite dans des escaliers
pour faire tchut tchut tchut tchut tchut
beaucoup plus vite que si on faisait pas ça
donc moi quelqu'un m'avait demandé
alors ça c'était vraiment un tout petit tweak
mais assez bas niveau
dans le netcode
de Quake mais donc j'avais fait en sorte
que s'il restait appuyé sur le bouton sauter
et que du coup
ça activait une fonctionnalité
qui disait une frame sur deux
je passe
de sauter à pas sauter sauter à pas sauter
sauter à pas sauter
et donc lui en fait il avait aucun effort à faire
il restait appuyé sur son bouton
et puis il montait les escaliers
le plus vite que personne arrivait à faire
et donc ça c'était
une fonctionnalité
qui du coup d'un point de vue spectateur
ne se voit pas
par contre si quelqu'un qui regarde
le pc et qui regarde les mains
ben là et on voit que
comment ça se fait que tu as eu assez vite
alors que tu as pu pas plein de fois sur le bouton
donc ça ça serait vite et malin
tu sais si les joueurs prend question
ça a marché
enfin est-ce qu'ils...
ouais ben ils n'ont jamais eu le scandale pour cela
ils se sont pas fait...
personne sait que c'est des gens qui ont tranché
c'est drôle
je peux t'assurer que là il y ait des enquêtes
qui vont démarrer
bon c'est des gens qui sont en fin de carrière
c'était il y a 15 ans
je pense que leurs carrières de joueurs pro
elles sont déjà finies
il y a pas de problème
c'est incroyable
donc je pense qu'ils ont été rentables du coup
parce que les 500 balles ils ont juste là en tête
parce que quand on y pense 500 balles
c'est pas tant que ça
c'est pas beaucoup
ouais mais surtout que ça a marché pendant 2-3 ans
et tu es revenu derrière
et moi il y a rien
tu avais fidélisé les clients tu es en train de dire
la qualité du travail
déjà le sens du
relation client
c'est le côté ambiance
salut
si vous appréciez Endorscore vous pouvez nous aider
en mettant 5 étoiles sur Apple Podcast
en mettant une idée d'invité que vous aimeriez qu'on reçoive
ça permet de faire remonter Endorscore
telle une fusée
à l'époque les raisons qui font que tu fais ça
moi je fais ça pour le fan
je fais ça pour le fan, je fais ça pour apprendre
je fais ça parce que j'ai envie de programmer en C
et puis c'est les jeux auxquels je joue
et du coup
en fait je m'amuse
à développer tout un tas de fonctionnalités
que au bout du compte j'utilise même pas
bon j'en ai vendu, j'en ai profité
mais
moi quand je jouais la plupart du temps
j'acceptais pas de
faire aider et d'avoir des actions automatisées
ce que je faisais quand même
c'était afficher des petites infos supplémentaires
pour par exemple ne pas avoir fort de calcul mental
pour savoir quand est-ce que
tel armure va réapparaître etc
on va avoir le petit display
automatique
un décompte 5.4
et puis vu que j'avais fait
toute le calcul
la prédiction où est-ce qu'il faut viser
pour la ballistique
donc l'idée c'est
il y en a une personne qui va sauter comme ça
loin j'ai un lance roquette
il va falloir que je vise
pour que ça fasse
que la roquette et la personne intersectent
enfin leur trajectoire
en fait ça affiche
où est-ce qu'il faut que tu tires maintenant
si tu veux que la personne
se prenne le projectile
donc ma justification
ma justification, ma manière
ou les trucs comme ça qui sont que basés là-dessus
trop marrant
donc la justification c'était juste
c'est de l'entraînement
c'est pour m'apprendre à être meilleur
ben non mais premier degré je sais que
typiquement sur Rocket League ça existe des modes
qui permettent de calculer
de savoir la millisecondes quand est-ce que ta voiture elle passe
d'un état un autre
je ne suis pas dans le time
mais c'est un usage
un usage des cheats c'est aussi pour
s'entraîner
dans les feuilles il y a des gens qui
dans l'image des cheaters
c'est des gens en aimbot
qui pourrissent les parties
donc je peux aussi comprendre que
c'est un peu la majorité en vrai
la majorité des gens qui ont tué les sages
qui sont là juste pour gagner
ou juste pour
un espèce de dédicat de domination
écraser les autres
et aussi que ça ne va pas durer longtemps
parce que ça ne fait pas du plaisir à justre
cuiner le plaisir des autres
c'est un peu dommage
mais j'arrive pas à comprendre comment ça
ça peut durer longtemps parce que
je me souviens de tous les jeux, il y avait des cheat codes
par exemple pour être comme ça, tu avais genre
argent illimité, le jeu
perd instantanément tout son intérêt
et pourtant il y en a
il y en a partout des cheats
même encore aujourd'hui mais c'est un truc
qui m'intéresse c'est comment ça se fait que ça existe
encore entre guillemets, c'est à dire qu'il y a
il y a pas de solution
enfin qu'est ce qui fait qu'il y a pas de solution
technique définitive
au problème de la triche
alors il y a au bout du compte
une limite
qui peut pas être
enfin comment dire
ce que le programme client
est censé faire
afficher le jeu et récupérer
les données du clavier, de la souris
pour savoir ou de la manette
pour savoir comment la personne se déplace
quelles actions elle fait dans le jeu
ça c'est quelque chose qui est toujours fait
côté client
ça en fait, ça c'est quelque chose
sur lequel on pourra toujours jouer
on pourra toujours aider ça
tricher sur ça, sur les déplacements
sur les clics, sur les actions qu'on fait
on pourra toujours automatiser ça
ils peuvent rendre ça plus ou moins difficile
ils peuvent
détecter quand c'est fait mais au bout du compte
on demande au programme
d'envoyer ça au serveur
pour dire comment est-ce qu'on se comporte dans le jeu
donc ça c'est quelque chose qui pourront
a priori pas
qui pourront pas bloquer
après en fonction de la manière dont le jeu est programmé
la question c'est
à quel point le serveur
fait confiance aux clients
et ça c'est un principe en sécurité informatique
on fait jamais confiance aux données clients
on les waitlist, on les filtre
on les nettoie
toutes les problématiques d'injection
de code
c'est la même chose pour un jeu vidéo
c'est à dire il faut pas faire confiance aux clients
il faut considérer qu'il est hostile
et qu'il essaye de tricher
qu'il essaye de faire les choses qui devraient pas faire
donc pour donner des exemples
il y a beaucoup de jeux
qui par
par facilité
ou par soucis de confort
de l'expérience utilisateur
vont faire confiance aux clients
sur sa position dans le monde
parce qu'en fait c'est quelque chose qui est très désagréable
pour une personne humaine
qui est en train de jouer un jeu vidéo
le lag
le lag et du coup quand le serveur
va dire en fait non t'as même plus que du lag
t'avais du lag et t'as eu une erreur de
prédiction du coup je te téléportais
je te warp
et donc ça fait un glitch graphique
qui est pas du tout agréable
ça casse l'immersion etc
donc il y a des jeux qui
pour juste pas avoir à gérer ce problème
ils vont dire en fait je fais confiance aux clients
pour savoir où il est dans le monde
comme ça lui il n'aurait jamais sur de glitch
et c'est top
mais du coup ce que ça veut dire
ça veut dire qu'en fait on peut se téléporter
on peut voler
on peut bypasser toutes les lois de la physique du jeu
des fois
et donc ça
si le serveur fait confiance aux clients
sur ses coordonnées
c'est un problème
pour donner un exemple plus récent
d'un jeu que j'ai adoré
auquel j'ai beaucoup joué
ça s'appelle Elite Dangerous
on a des vaisseaux dans l'espace
il y a une simulation de la galaxie à l'échelle
c'est particulièrement
techniquement intéressant
et un bel exploit technique
mais du coup pour
des questions de coups
ils ont
pour payer moins de serveurs
pour que ça leur coûte moins cher
ils ont fait une architecture pire tout pire
et du coup
il n'y a quasiment pas de serveurs
qui est impliqué dans la boucle
et du coup toute la gestion des dommages
des boucliers, des dommages sur les vaisseaux
est faite de client à client
et donc en fait il y a un message réseau
qui va dire je t'ai touché
et puis l'autre qui est censé répondre
ok tu m'as touché
et du coup il met à jour
ses points de vie, son bouclier
est-ce que son vaisseau prend feu ou pas
et du coup
il y avait des cheaters dans le jeu
eux ils avaient bouclé un fini, il imitait
puis ils ne pouvaient jamais mourir
donc il fallait s'enfuir
donc ça c'était
le coup d'une décision d'architecture
réseau en fait
c'est que le client
avait autant de
la source de vérité
c'était le client
hyper intéressant
on avait eu
comme il s'appelait
Marcin
il s'appelait aussi Marcin
c'est celui dont j'allais parler
Collin merci
je ne sais pas comment il l'a fait pour dominer
on a eu un gars incroyable
qui avait développé un cheat sur
ah oui sur Elder Scrolls Online
il expliquait justement
sur cette histoire de confiance client-server
que la manière dont il avait résolu le problème
c'est que le
le serveur du coup vérifiait si c'était
physiquement possible
donc il y avait une sorte de
de vérification
qui permettait d'éviter les rollbacks
et en même temps
avec tout un système de prédiction
pour essayer de résoudre pour
essayer de vérifier la cohérence
des événements du jeu
et à ce propos ça me fait penser
à un truc qui était intéressant
je crois que c'était un des premiers MMORPG
Star Wars auquel j'ai pas joué
mais je connaissais quelqu'un qui faisait des cheats pour ça
et ce qui était intéressant
au point de vue de l'architecture
c'est que le monde
MMORPG était divisé en zones
et chaque serveur s'occupait
d'une zone
donc en fait quand un joueur passait d'une zone à l'autre
son fichier de personnage
était transvasé d'un serveur
d'un autre
du coup il y avait une fenêtre temporelle
où on passait d'un serveur à l'autre
et où en fait l'idée c'était
je commence à rentrer dans cette zone
il y a un snapshot de mon personnage qui est pris
à ce moment là et qui est envoyé au serveur
donc avec des objets
de l'or, des choses comme ça
et en fait après je le drop par terre
je drop
et en fait avant que la migration
soit effective
et du coup en fait quand on arrive
sur l'autre serveur
j'ai encore les pièces d'or dans l'inventaire
et en même temps il y a l'or qui est par terre
et du coup ça pouvait dupliquer des objets
c'est génial
c'est génial
du coup l'or restait dans l'ancien serveur
après il avait plus qu'à l'an dernier
après il revenait et l'or est par terre
donc ça c'est un bug de duplication
effectivement et c'est encore une autre catégorie
où il y en a plus
je me souviens dans Minecraft il y avait des bugs
de duplication, il fallait être sur les bonnes versions
tu pouvais générer des diamants comme ça de manière limitée
souvent c'était avec de la TNT
je sais pas pourquoi
mais les explosions dans Minecraft c'était un bon moyen
de voyousquer
c'était un goût frappé
c'était trop intéressant
et moi j'ai une question justement
sur ces différences
de métier entre
le hacking et le cracking
de jeu
pour faire sauter les licences
qui protègent le piratage
etc
est-ce que c'est les mêmes disciplines
est-ce que c'est les mêmes communautés
c'est quoi les différences
non ça va pas être
c'est pas les mêmes communautés
par contre il va y avoir
une discipline en haut commun qui est le reverse engineering
le rétro-ingénierie
le fait de partir de codes binaires
de comprendre comment ça fonctionne
ça c'est quelque chose qui va y avoir des deux côtés
ensuite les buts sont pas les mêmes
il va y avoir un certain nombre de techniques
qui peuvent
être similaires
mais du coup
c'est pas les mêmes buts
mais au bout du compte
on va modifier un programme
on va modifier un programme binaire dont on n'a pas le code source
et pour pouvoir faire ça il faut déjà comprendre comment il fonctionne
il faut voir les mécanismes de sécurité
qui sont en place
surtout des mécanismes de détection
il va falloir trouver des manières
de pas déclencher ça et de réussir à faire ces effets là
donc il y a tout un tas de similarités
mais
ça reste des disciplines
je me demande s'il n'y a pas aussi à Trieimey
je suis curieux de savoir
ce que les uns pensent des autres
parce que je pense que ce qui est le plus mauvais
c'est le cracker
à quoi que je sais pas
sur le côté
droit d'auteur
le cracker
vu de l'éditeur logiciel
c'est l'ennemi numéro 1
mais vu de celui qui télécharge
en jeu parce qu'il n'a pas de gens pour se le payer
c'est le robin des bois
le hacker c'est celui qui
potentiellement brûle ses expériences
de partie
c'est vraiment... et une autre catégorie
de gens qui ressemblent un peu
en termes de rétro-ingénierie
en fait c'est les développeurs de malware
c'est à dire qu'on n'a pas dit évidemment
depuis le début c'est que
plein de trucs que tu as expliqué sont des comportements
genre de l'injection de code dans un autre process etc
sont des trucs que tu vas retrouver
dans les développeurs de malware
pareil les
détecteurs de cheat
ils vont avoir j'imagine des méthodologies
qui peuvent ressembler à des analyses antivirus
mais justement
j'aimerais avoir
ta perspective là-dessus
c'est
à quel point c'est proche
ces choses là et à quel point toi ça t'a servi
et ça t'a
donné envie après pour ta carrière
dans la super sécurité d'être passé par le cheat
ok
beaucoup de choses dans cette question
mais effectivement
enfin comme tu l'as dit
il y a un certain nombre de similarités
il y a tout un tas de techniques
qui vont être
quasiment identiques
c'est juste qu'elles n'ont pas le même but
il y en a un ça va être
de cacher un comportement
malicious et l'autre ça va être de concher
cacher un comportement malicious
c'est le même genre de comportement malicious
le beau est le mauvais
mais pour donner
un exemple
un peu plus appliqué
mais un malware
quelle que soit sa finalité
soit un banking trojan
que ce soit juste un rat
pour donner le contrôle à distance
sur la machine, aux heures de choses
il va généralement vouloir
être invisible, ne pas être visible
disons déjà de l'utilisateur
après des solutions de sécurité aussi
des antivirus, des EDR etc
mais prenons le cas par exemple
de vouloir se cacher
d'un utilisateur un petit peu averti
déjà il va commencer par pas faire de fenêtre
pas faire de
crash, de bug, de plantage
d'autres choses qui pourraient avoir
d'être visibles
mais si on prend
un utilisateur un petit peu plus avancé
il va se dire j'ai l'impression qu'on PC est plus lent
en ce moment je vais regarder
dans mon gestionnaire de processus
qu'est-ce qu'il tourne et puis là il voit un truc
qui s'appelle evilmalware.exe
donc imaginons
un malware et on a envie
de se cacher de ça
une des méthodes qui pourraient utiliser
on revient à notre injection de NL
mais donc là au lieu
d'aller injecter du code dans un jeu
il va regarder les processus qui tournent
il va voir est-ce qu'il y a un gestionnaire de tâches
qui tourne et puis si lui
il va envoyer une petite DLL dedans
et il va détourner des fonctions
donc on voit bien c'est exactement le même schéma
que tout à l'heure pour un jeu de vidéo
c'est un truc classique ça c'est marrant
et du coup on va
hooker sur windows nt query information system
qui est la fonction
enfin une des fonctions qui peut être utilisée
pour demander au kernel
des informations sur les processus en cours
et du coup
l'OS va renvoyer
une structure de données
qui va contenir une liste chainée
avec la liste de tous les processus
et du coup en fait si on hook cette fonction
on la laisse passer
on prend le retour
et puis là on parcour la liste chainée
et on fait ah celui là
celui là il me plaît pas trop
alors je vais prendre
next le champ suivant
et je vais sauter celui là
et puis le champ précédent celui d'après
hop je vais le mettre donc c'est un link
dans une liste chainée
et puis du coup on laisse passer ça
et alors ça c'est
la conclusion juste pour expliquer c'est que
ton malware il est bien
toujours là le processus est bien toujours
mais la ligne a disparu
mais dans ton interface de gestion redtache
ça a disparu quoi
donc ça ça fonctionne
si on regardait un peu plus
un peu plus proche
et qu'on regarde un snapchat de la mémoire
on va toujours voir les infos dedans
là on n'a même pas
enfin c'est grossier comme approche
mais bon que ça soit
pour du cheat, pour du malware
ou autre
on fait le minimum
nécessaire
pour ne pas être détecté
c'est pas très intéressant de déployer
tout un tas de nouvelles techniques
dans le vide si on en a pas besoin
de fait un cheat
on aurait pas besoin de faire ça par exemple
ben oui parce qu'a priori
on sait qu'on le tourne
à tout moment je te demande une fonction
de la libre windows
oui ça va pas, ça va pas, ça va pas, ça va pas,
faut qu'on en parle c'est exceptionnel
tu fais des citations textes
mais non mais oui en plus tu fais pas d'erreur
tu as win 32 dans la tête
j'ai aussi toutes les fonctions
post-x, linux, y'a pas de souci
c'est l'expérience mais
effectivement tu as aussi commencé
il y a un certain temps
j'ai en arrivé justement à ton côté carrière
à quel point tu dirais
que le fait d'avoir comme ça
commencé dans le cheat de jeu
ça t'a aidé
à en faire un métier
pour le coup
etique ou tu vas aider justement
à découvrir de l'inertabilité etc
à quel point ça t'a aidé
de travailler
sur le cheat
dans le jeu vidéo
ça m'a permis d'apprendre beaucoup
ça m'a permis d'apprendre beaucoup de choses
qu'on allait pas m'apprendre à l'école
à l'époque il y avait beaucoup moins de filières
spécialisées en sécurité
quasiment pas
et du coup il fallait trouver
il y avait aussi moins d'informations
disponibles sur internet
des routemis, des sortes de choses
des challenges, des tutoriels
il y avait de l'information
mais il fallait chercher un peu plus
c'était moins accessible
du coup d'avoir des projets persos
sur ce sujet
m'a permis de
me perfectionner en programmation
en assembleurs
en debugging
sur la partie
networking
donc ça m'a...
que des trucs super utiles en fait pour après
oui
et du coup ce qui est marrant
c'est que chez Sineactive on a des gens
qui viennent de plein d'horizons différents
mais si on prend les gens qui sont là depuis longtemps
et donc qui comme moi
avaient pas non plus
de spécialisation
de curses spécialisées en cyber sécurité
il y en a qui viennent du monde du cracking
il y en a qui viennent du hacking
il y en a qui viennent du cheat making
mais du coup en fait on avait besoin
d'apprendre ça par nous-mêmes
et du coup ça c'était
une manière parmi d'autres
d'être exposé à
toutes ces connaissances
c'est vrai que c'est effectivement très marrant
quand tu découvres un peu le monde de la cyber
tu te rends compte qu'il y a des communautés
qui sont là en fait
et vraiment tout le monde était sur les non forums
en fait, à début 2000
il a toujours entendu un hacker qui s'est fait quand il était plus jeune
ou il a été traîné
tout le monde très intéressant de savoir d'où il vient
comment il a appris
mais effectivement peut-être que ça va être un peu moins le cas pour les générations d'après
ou il y a plus de cursus
ils ont moins besoin parce qu'il y a plus de cursus
etc
mais pour le coup je fais pas mal de recrutement
alors si j'ai un conseil à donner au jeune
c'est de le cheat
le cheat
pas du tout
mais c'est de pratiquer
et de pas s'arrêter à ce qu'ils vont voir en cours
parce que ça va pas suffire
c'est d'avoir
d'avoir
une passion
un axe, quelque chose qui
voilà un projet perso
juste une opportunité
de mettre en pratique ce qu'il peut
avoir appris et vu en cours
et surtout
d'avoir envie
de continuer à creuser, d'apprendre
des nouvelles choses
parce que c'est comme ça
qu'on complète
et qu'on apprend
et dans les faits quand tu poses dans la civer
tu es très souvent
confronté à une énigme ou un truc
ou tu n'as pas un cours qui te donne la théorie
de comment tu vas faire
et donc c'est exactement ça
qui aide aussi quand tu fais du cheat
ou quand tu fais tout ce truc que t'as expliqué
tu es dans cette position de
j'ai aucune info, le l'éditeur me donne rien
j'ai pas de code source et je donne des merdes quoi
et ça ressemble à un
un challenge
trop intéressant, merci énormément d'être venu nous raconter tout ça
c'est trop cool, on aimerait te garder
encore longtemps
mais c'est une d'émissions qui était bien longue
j'espère que t'es apprécié
merci beaucoup
une prochaine fois peut-être
on sait qu'on entendra encore parler de vous
donc voilà, à prochaine
tu sais que ce sujet on a fait un appel
à expert et tu m'avais dit
que l'appel a été
relayé en interne
ce cinéacive
ce qui est une très bonne chose
peut-être qu'on recevra d'autres gens de cinéacives
parce qu'on commence à avoir des portes
qui se sont ouvertes des deux côtés
merci beaucoup à vous
merci d'être venu, c'est un grand plaisir