Blog
Actualités et notes d'ingénierie
Annonces de versions, analyses détaillées du fonctionnement de nos outils et guides pratiques.
Anti-débogage en .NET : comment ça marche et où ça s'arrête
Un débogueur, c'est ainsi qu'un attaquant observe vos chaînes déchiffrées et pose un point d'arrêt sur votre vérification de licence. Voici les moyens managés, natifs et basés sur le temps par lesquels une app .NET peut en détecter un — avec du vrai code — et une explication honnête de pourquoi l'anti-débogage est un ralentisseur, pas un mur.
Lire l'article →Automatiser la livraison de licences avec des webhooks de fulfillment
Une commande payée devrait générer une licence sans intervention humaine. Voici comment fonctionnent les webhooks de fulfillment de bout en bout : vérifier la signature sur le corps brut, rendre la livraison idempotente par commande, et mapper les événements de paiement, remboursement et annulation vers émettre, révoquer et renouveler.
Lire →Ce que async/await donne à la décompilation : lire la machine à états générée
Décompilez une méthode async et vous ne voyez pas async/await — vous voyez une structure générée par le compilateur avec un switch dans MoveNext(). Voici comment le compilateur C# transforme async en machine à états, comment lire le type <Méthode>d__N que montre un décompilateur, et comment un bon décompilateur reconstruit l'original.
Lire →L'obfuscation au-delà du renommage : pourquoi un .NET renommé se lit encore comme du code source
Le renommage d'identifiants est la couche d'obfuscation la plus faible : un décompilateur sur du code seulement renommé montre encore votre logique, vos chaînes et vos constantes telles quelles. Voici ce que le renommage cache et ne cache pas, et les couches — chiffrement des chaînes, masquage des constantes, aplatissement du flux de contrôle et virtualisation — qui rendent vraiment le .NET difficile à lire.
Lire →Droits et feature flags, pilotés par la licence
Comment activer des fonctionnalités et imposer des limites numériques selon le niveau de licence : modèles de droits signés, lecture des flags et des limites hors ligne dans votre app, application à la frontière de chaque capacité, et modifier ce qu'un niveau débloque sans publier une nouvelle version.
Lire →