Skip to content

Details

Astuces et techniques d'analyse dynamique des exécutables C++ sans `marqueurs`.

Le profilage peut donner une vue d'ensemble de ce qui se passe dans une application. Toutefois, les approches de profilage basées sur l'instrumentation du code et l'échantillonnage ont leurs limites (temps des itérations, accès au code source, configuration du profileur).

Cette présentation montrera comment il est possible d'exploiter l'information générée par le compilateur pour fins de débogage (pdb) pour analyser un exécutable autrement inconnu. Certains sujets normalement associés au hacking tel que l'injection dynamique et l'auto-modification de code seront présentés dans un contexte de développement d'outils de débogage capables d'effectuer de l'instrumentation dynamique. De plus, des sujets tel que l'interface binaire de l'application (ABI), les conventions d'appel de fonction, le passage de paramètre, l'analyse du format pdb, le traçage d'événements et les `hooks` seront également abordés afin de comprendre le fonctionnement interne d'un profileur léger et robuste. Finalement, nous verrons comment les profileurs peuvent être utilisés par le développeur pour acquérir une connaissance plus approfondie d'une application complexe en accrochant des `hooks` dans des exécutables complètement optimisés, bâtis avec des engins connus tel que Unreal, Unity et Lumberyard.

La rencontre a lieu dans les bureaux d'Ubisoft à Montréal, au 5480 rue Saint-Dominique. Les portes seront ouvertes à partir de 18h. De la pizza sera servie sur place, gracieuseté de notre commanditaire Druide Informatique inc. La présentation commencera vers 19h, sera d'une durée d'environ 50 minutes et sera donnée en anglais par Pierric Gimmig.

Pierric Gimmig est un développeur passionné par l'animation, la simulation de physique et la programmation de systèmes. Il a travaillé sur plusieurs titres incluant notamment Assassin's Creed, L.A. Noire et Batman Arkham Origins. Il est présentement le développeur principal d'Orbit, un profileur de nouvelle génération pour le C++.

Members are also interested in