Fuzzing continue

Bonjour,

Je suis en train d’implémenté du fuzzing continue, wikipedia a une bonne définition:

Le fuzzing (ou test à données aléatoires) est une technique pour tester des logiciels. L’idée est d’injecter des données aléatoires dans les entrées d’un programme. Si le programme échoue (par exemple en plantant ou en générant une erreur), alors il y a des défauts à corriger.

J’ai une infrastructure de teste, je lance de forme continue via les bots que j’ai mentionné dans l’article précédent. Cela permet de détecté des bugs avant que les joueurs ne s’en rendent compte.

J’ai couplé cela à des techniques de pointe comme le sanitizer software utilisé par google dans chrome (cf: OSS-Fuzz), qui permet de détecter les buffer overflow et autre bug/crash/faille de sécurité. Ce qui m’as permit de détecté encore plus de bugs et une fois corrigé, cela me permettra de fournir une meilleur stabilité.

Bye

 

 

 

Botnet vs cluster

Bonjour,

Je viens de finir les bots pour CatchChallenger, du moins juste un truc basique comme base de travail. Cela peu servir de botnet d’attaque DDOS contre CatchChallenger. L’attaque est spécialisé donc vraiment très efficaces, mais la défense (dons les filtres anti DDOS intégré) ne permette pas d’attaque sauvage.

sachant que rien n’est optimisé. Face aux bots, le serveur consome 20x moins de CPU, 5x moins de mémoire.

Bye

Map chunk et déplacement

Les maps modernes se charge par parties, cela permet d’éviter de charger des ressources en mémoire inutilement et donc de fluidifier le jeu pour en améliorer l’expérience. Chaque morceau de map (ou Map chunk en anglais) est en générale une section de taille fixe dans le cas de génération procédurale typiquement.

Cela ajoute des difficultés de gestion dans le code. Les détections de collision doivent être multi-map. Les éléments pouvant circuler d’une map a l’autre doivent être déchargé d’une map puis chargé dans l’autre.

En UDP des données de déplacement sont non continue, en TCP elle peuvent être continue ou non. Pour le client side prediction, donc que l’autre joueur continue sur sa lancée ou son mouvement en cour, il faut donc transformer cette chaine de point/direction typiquement en un movement, pour ne pas alourdir les calcules dans CatchChallenger je n’utilise pas de pathfinding a ce niveau (et donc je m’évite DDOS coté client et surcharge).

Voila comment un jeux moderne fonctionne, 2D ou 3D. Bye

P2P pour CatchChallenger

Salut,

Le P2P est pour le backbone de CatchChallenger. Pourquoi?

Le but premier été de supprimer le Single Point Of Failure, ou le seul point unique qui pouvez tomber tout le réseau.

Bien que pratique, le TCP (surtout avec le chiffrement), posais beaucoup de problème avec le P2P, surtout ce point: ont ne pouvais pas se connecter sur le port émetteur, donc il fallarais se connecter sur un autre port (transmit d’en face, sans garantie qu’il soit fonctionnel).

J’avais besoin d’un réseau sécurisé (authentifier de forme générale, chiffré à certain endroit). L’UDP est sensible as un certain nombres d’attaques (comme les attaque replay). Le protocole UDP est souvent utilisé comme amplificateur. J’ai donc du redévelopper une couche dédié pour répondre à ces besoins.

J’ai besoin d’être résistant a une node compromis, donc pouvoir blacklister sa clef publique. J’utilise un dérivé des autorités de certification pour faire que la clef publique est reconnu par le réseau et une clef maitre broadcast des clef a ban sur le réseau (et autre ordre).

Cela m’as fait travailler sur beaucoup de domaine parallèle (Database NoSQL + lockless), maintenant je suis dans la phase d’implémentation.

Bye

Meltdown, Spectre, j’ai eu chaud

meltdown spectre inmune
meltdown spectre inmune

J’ai fait le choix d’utiliser des petites nodes avec des Cortex A53. Justement pour pouvoir avoir du hardware dédié pour le haut de gamme. Avantage du VPS avec beaucoup de bénéfices du dédié dans notre datacenter (Confiared).

Par chance, ces CPU son non affecté par Meltdown, Spectre. Les CPUs sont comme le code, moins ils sont complexes, moins il y as de bugs. Je pense que les constructeurs vont envisager de plus en plus OpenRISC, Google appuie le RISC-V.

Source: https://www.xda-developers.com/risc-v-cores-and-why-they-matter/

zombiod cheats: server/XpSystem/XpUpdate.lua

xp:AddXP(Perks.Fitness, 99);
xp:AddXP(Perks.Sprinting, 99);
xp:AddXP(Perks.Nimble, 99);
xp:AddXP(Perks.Strength, 99);
xp:AddXP(Perks.Axe, 99);
xp:AddXP(Perks.Cooking, 99);
xp:AddXP(Perks.Blunt, 99);
xp:AddXP(Perks.BluntMaintenance, 99)
xp:AddXP(Perks.Electricity, 99);
xp:AddXP(Perks.Farming, 99)
xp:AddXP(Perks.Fishing, 99)
xp:AddXP(Perks.PlantScavenging, 99)
xp:AddXP(Perks.Woodwork, 99)

xp:AddXP(Perks.Aiming, 99)
xp:AddXP(Perks.Reloading, 99)
xp:AddXP(Perks.Trapping, 99)
xp:AddXP(Perks.Lightfoot, 99)

player:getInventory():AddItem(« Base.Crisps »);

player:getInventory():AddItem(« Base.Axe »);

Confiared

Bonjour,

J’ai monter mon petit FAI, en plus de mon travail et de mes projets open source.

Je ne suis pas tout seul. Nous essayons de faire bouger les choses en bolivie, car internet 2M coute 50€/mois. Nous allons cabler en FTTH. Nous allons faire aussi datacenter et IXP.

Equipe de Confiared
Equipe de Confiared
Confiared, solution virtuelle
Confiared, solution virtuelle
Logo de confiared
Logo de confiared

C’est donc normal si j’ai moins de temps sur les projets open source.

Génération procédurale de la map

Bonjour,

Vous vous demandez peu être ou j’en suis avec la génération procédurale de la map pour CatchChallenger.

Bien qu’il reste des mois de travails, pour avoir juste une map de base, cela avance.

Les villes sont là, certaine avec des bâtiments complexe. C’est basé sur des template statique sont seront fait dynamiquement plus tard.

Les routes ne sont que des lignes droites. Je travail sur la répartition des espéces.

Répartition des espéces
Répartition des espéces
Overworld avec 3 villes
Overworld avec 3 villes

Cela m’as permit de voir certain bug et noté une serie d’amélioration a faire.

 

Minimap
Minimap

Je continue à explorer d’autre piste comme le deep learning et machine learning pour la génération automatique.

J’améliore mes compétances en d’autre domaine (bioinformatique, physique quantique, fibre optique, …), pour mon enrichissement personnel.

Je prépare aussi la conférence que je doit donner sur les télécommunications en bolivie. (hackmeeting 2017)