33 private links
Une explication sur comment sont implémenter les dictionnaires en Python.
Intéressant : comment le Notepad de Windows fait pour déterminer l'encodage des caractères du fichier (ASCII, UTF-8, UTF-16BE, UTF-16LE, ...). Ce n'est pas si simple, comme on s'en doute.
Quand on rencontre également ce genre de problème, il est bon d'avoir de tels documents sous la main pour nous donner des pistes.
Ah et la vérification se fait sur les premiers 1024 octets (cf. commentaires) !
TL;DR
Voilà donc comment Fraps fonctionne (programme pour afficher le nombre d'images par seconde d'une application sous Windows) : il crée un hook à l'échelle du système pour s'injecter dans CHAQUE processus, présent ou à venir.
Ensuite, il vérifie si le processus utilise OpenGL ou DirectX (appels à opengl32.dll, d3d8.dll, d3d9.dll, dxgi.dll ou ddraw.dll). Si c'est le cas, il installe son hook au sein du processus en détournant une fonction spécifique (Present). Le cas échéant, il ne fait rien et n'installe pas son hook.
Un sujet fort intéressant qui discute sur le fonctionnement de programmes tels que FRAPS et leurs implémentations. Le précédent lien provient de celui-ci.
Le rôle et le fonctionnement du PreFetcher de Windows, afin d'accélérer le chargement des programmes souvent lancés en optimisant les opérations I/0 au niveau du disque.
PS : Contrairement à certaines légendes, supprimer les fichiers du dossier PreFetch n'améliore en rien les performances, bien au contraire (voir : http://www.commentcamarche.net/faq/11620-vider-le-dossier-prefetch-pour-accelerer-windows) !
TL;DR
Fonctionnement du format d'exécutable PE (Portable Executable) sous Windows. Avec de beaux graphiques :p