Un petit post rapide pour vous présenter une protection que j'ai rencontré il y a peu (dans un bar, il faisait chaud, nous étions seuls, on s'est rapproché, je lui ai payé un verre, tous ca quoi).

Visiblement son concepteur sans être un pro de sécu savait qu'il existait de méchants keygenners qui allaient lui voler son travail et donc plutôt que de vérifier son serial avec une bête fonction facilement reversable et plutôt que de s'embeter avec des grosses librairies de crypto, des packers trop chers, il a décidé de faire son propre systeme de protection.

Le serial est convertit en un DWORD % 0x10000 et est utilisé comme offset, il écris alors un 1 à l'emplacement et continue son exécution normalement (ou pas si le 1 a écrasé une variable importante ...). Il va ensuite au moment de la génération d'images (c'est un soft de manipulation vidéo) vérifier si une variable globale est égale à 1 (la fameuse variable censée être initialisée par le serial) si ce n'est pas le cas, il insère un watermark. Le code insérant le watermark étant difficile à retrouver (pas d'APIs, noyé au milieu d'autres fonctions) il est compliqué de retrouver la variable globale testée et donc de générer des serials valides.

Bien sur on y arrive quand même avec un peu de temps, de plus si un serial est volé / cardé il devient très simple de connaitre l'adresse. Néanmoins pour un petit soft peu distribué, et face à des crackers pas très motivé ça à l'air de suffire amplement ... (aucun crack depuis la sortie du soft il y a 2 ans)

Voila voila, bonne journée ;)