Anti-Reversers et Contre Mesures
|
Avant Propos: Bien que ce ne soit pas très courant, vous avez sûrement déjà
rencontré des programmes équipés d'Anti SoftIce, d'Anti Wdasm, d'Anti FPLoader ou d'Anti ProcDump. Les Anti-SoftIce
Sources
Liens et/ou DownLoad
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Contributions Divers
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Les CheckSums et les CRC
Le premier va additioner le poids des bits qui composent le programme, et vérifier que la somme obtenue est bien égale à une valeur qu'il aura conservé quelque part en mémoire (et souvent HardCoded). Suivant les cas, il peut y avoir moyen de "réctifier" le décallage que pourrait avoir provoqué vos modifications en rééquilibrant la somme des octets à un autre endroit. Vous pouvez aussi trouver la routine de calcul et mettre la main sur la valeur d'origine du checksum (éventuellement modifiable par un hexéditeur) ainsi que sur la nouvelle somme qu'aura votre programme après le patchage. Une dernière solution, et de shunter le blocage lié au checksum au niveau du message "File Corrupted". Pour les Code de Redondance Cyclique , l'idée principale est de voir le fichier comme une grande série de bits divisées par un nombre, et qui vous laissera un Reste, le CRC! Utilisant un algorythme de calcul, le CRC est beaucoup plus délicat à contourner... Dans ce dossier, vous trouverez trois parties:
Ce rubrique a été créé à partir d'une compilation de textes du Groupe de Travail, et d'extraits de sites
CheckSum: Généralités
Certains programmes vérifient leur intégrité au démarrage
et refusent de se lancer s'ils ont été "corrompus". Souvent cette protection est facile
à retirer : bpx MessageBoxA si le soft affiche une messagebox pour signaler le problème ou tout simplement
en traçant et en repérant le branchement qui fait quitter le programme. Néanmoins, il peut
arriver que cette vérif soit bien faite et bien intégrée dans le programme (vérifs
multiples et fonction de hachage pas évidente à repérer). C'est le cas des récentes
versions de Windows Commander par exemple. Je me permets donc de vous fournir cette petite astuce : Il y a deux
types de vérifs : celle qui vérifie l'intégrité en mémoire et celle qui vérifie
l'intégrité du fichier exécutable. C'est pour cette dernière que l'astuce est utilisable
: - Repérer dans le soft où celui-ci ouvre le fichier exécutable (bpx CreateFileA le permet
très facilement). - Modifier le soft pour que celui-ci ouvre un autre fichier à la place (original.bak
par exemple). - Et évidemment faite une copie du fichier exécutable non modifié (nommé
original.bak dans l'exemple). Maintenant, le soft peut faire toutes les vérifs d'intégrité
possible, aussi complexe soit-elle, vous ne serez plus embêté... |