Page 1 sur 1

[R] Utilisation de l'api "IsDebuggerPresent"

Posté : sam. 07 sept. 2013 11:45
par hardfloor
Bonjour les amis,
Alors aujourd"hui je me penche sur une api interessante et apperement facile à utiliser..... :)
Il s'agit de l'api "IsDebuggerPresent" qui, comme son nom l'indique, empeche un débugg dans ollydbg par exemple.
(cette api empeche seulement les noobs du débugging........ :D , mais cela est un bon commencement)
Même si on est pas bill gates, tout petit inventeur de log que nous sommes, nous n'avons pas forcément envie que notre script soit découvert du jour au lendemain.......
J'ai donc cherché son utilisation avec autoit et je suis tombé sur un post du forum us:
http://www.autoitscript.com/forum/topic ... call-work/

Alors voilà, je voulais savoir si vous aviez un code anti debugg fonctionnel!
Si vous voulez le partager ici, ca me va!
Si vous ne désirez pas qu'il soit à la vue de tous, je peux comprendre et j'accepte les réponses par messages privés aussi!

Re: [..] utilisation de l'api "IsDebuggerPresent"

Posté : sam. 07 sept. 2013 12:20
par jchd
hardfloor a écrit : nous n'avons pas forcément envie que notre script soit découvert du jour au lendemain
Aucun rapport avec un debogueur quelconque.
Me semble parfaitement inutile tout ça.

Re: [..] utilisation de l'api "IsDebuggerPresent"

Posté : sam. 07 sept. 2013 12:25
par Sea
Lors de la compilation Autoit rajoute de base cette API dans le code ;)

Et puis vla la gueule de la protection ^^

Re: [..] utilisation de l'api "IsDebuggerPresent"

Posté : sam. 07 sept. 2013 13:34
par hardfloor
@ sea ==> Oui j'allais le rajouter, j'ai vu que ollydbg s'arretait. Je me doutais bien que c'etait cette api! Je voulais confirmation.
Et comme je l'ai précisé plus haut, c'est une protection de base.......Je n'ai pas dit que c'était le top....
Merci pour ta confirmation Sea

Re: [..] utilisation de l'api "IsDebuggerPresent"

Posté : sam. 07 sept. 2013 13:56
par jchd
Houlà, du calme. Va falloir une distribution de Lexomil maintenant ?

J'ai simplement dit que détecter un débogueur dans l'espace "user" ne sert aucunement à protéger un script de la rétro-ingénierie.
En ajoutant que celà ne me semblait pas utile d'une quelconque façon (comme l'a précisé Sea juste après, la détection est déjà incluse au démarrage de l'interpréteur et dans un autre but), je ne vois pas en quoi mon post te "crache à la figure" ni te dénigre.

Tu montes vite dans les tours toi, et pour rien. Evite les attaques ad hominem, ça n'avance à rien.

Maintenant si tu penses que ce que tu proposes offre un plus, je ne serai pas le seul à apprécier de bénéficier de ton exposé.

Re: [..] utilisation de l'api "IsDebuggerPresent"

Posté : sam. 07 sept. 2013 14:23
par hardfloor
Oupss... Je m'excuse Jhcd :oops: , si tu avais expliqué de cette facon dans ton premier post , je ne me serais pas senti "attaqué".
Tu m'excuseras mais tes 2 petites phrases n'étaient pas très explicites et surtout tout le monde peut, mal les interpréter..La preuve!

Moi malheureusement, je n'ai rien à proposer, justement je cherche de l'aide sur une méthode un peu efficace et complète que l'api utilisée......
Ne me dites pas " aucun programme est inviolable, je le sais......"
Je ne demande pas non plus un code du niveau de aspack ou armadillo :D , mais si il y a des malins ici qui ont trouvé une solution pour protéger plus efficacement leur script que l'api de base, je suis preneur.

Re: [..] utilisation de l'api "IsDebuggerPresent"

Posté : sam. 07 sept. 2013 16:13
par jchd

Code : Tout sélectionner

je cherche de l'aide sur une méthode un peu efficace et complète
La question est là : une méthode, d'accord, mais dans quel but ?

S'il s'agit de protéger un exécutable AutoIt contre la rétro-ingénierie, rien n'est réaliste à court ou [très] moyen terme. La prochaine release va inaugurer des changements significatifs dans la structure des exécutables produits, mais il ne va pas s'écouler des siècles avant qu'un utilitaire fûté ne s'adapte et permette de récupérer l'intégralité du source.

Dans tous les cas un débogueur ne sert qu'à suivre ou influer sur l'exécution d'un programme compilé, ce que les scripts AutoIt ne sont pas contrairement aux termes utilisés. Le script est en texte dans le .exe, sous une forme ou sous une autre, car l'interpréteur ne sait s'alimenter qu'vec ça. Si Jon bloque l'emploi d'un débogueur, c'est pour être cohérent avec les conditions d'emploi d'AutoIt qu'il a lui-même édicté : la protection (illusoire, certes) de l'interpréteur lui-même et non du script.

L'obfuscation ne sert à rien en pratique car qu'une variable se nomme $password ou $875fae5890bc46 ne change pas grand chose, soyons honêtes. C'est de la protection contre la petite soeur.

Re: [..] utilisation de l'api "IsDebuggerPresent"

Posté : sam. 07 sept. 2013 18:27
par hardfloor
Oui Je suis d'accord avec tout ca, ya pas à tortiller......
Je sais tres bien que rien est sûr à 100% mais il faut etre honnete aussi:
Les mecs qui sont capables de comprendre le processus d'un déboggueur, d'utiliser les divers progz et de retrouver un code source ne sont pas si nombreux que ca!
Il y en a c'est certain, mais ce n'est pas la majorité et heureusement.
En général, la plupart des bidouilleurs (et dieu sait qu'il y en a ....) abandonnent dès les premières difficultés, c'est pour ca que je me dis qu'une "protection" un peu plus evoluée que l'api serait déjà pas mal.
Maintenant si tu me dis qu'il y une MAJ qui se prépare, c'est très bien.
En tout les cas ,merci pour tes explications :wink:

Re: [..] utilisation de l'api "IsDebuggerPresent"

Posté : sam. 07 sept. 2013 18:48
par Sea
Perso pour protéger mes script don je ne veux pas rendre publique la source,j'utilise une méthode perso que j'ai déjà décrite plusieurs fois ;)

http://autoitscript.fr/forum/viewtopic. ... 088#p77088 (et regarde aussi mon post suivant)
http://autoitscript.fr/forum/viewtopic. ... 512#p74512

Mais bon ce n'est pas incrackable il faudra juste plus de temps pour la personne... Car que tu le veuilles ou non si tu écris un moment un mot de passe il ce retrouvera forcement à un moment en mémoire et il sera donc logiquement possible de le récupérer.

Re: [..] utilisation de l'api "IsDebuggerPresent"

Posté : sam. 07 sept. 2013 18:58
par Tlem
Bonsoir.
Je vais me permettre de rajouter certaines chose à ce que Jean Christophe a dit :

Nous ne connaissons pas la teneur exacte de votre script, mais dites vous bien une chose, c'est que si votre code a un quelconque intérêt "majeur" pour certains, même "les petits malin" y passerons le temps qu'il faut pour avoir ce qu'ils cherches.

Ensuite, comme l'a précisé Jean Christophe, la protection actuelle d'un code AutoIt est relativement illusoire. Même la future version ne permettra qu'une protection temporaire car Google est l'ami de tout le monde, même des vilains pirates de code. Et généralement quand un pirate trouve la parade d'une protection, il se fait un malin plaisir de partager sa solution en prenant bien soin de mettre en avant son pseudo afin de montrer que c'est lui le meilleur ... :mrgreen:

Concernant AutoIt, la meilleure protection que vous pouvez avoir est celle que les autres ne connaissent pas. Il vous faut donc analyser et éventuellement combiner plusieurs méthodes et les adapter pour les rendre totalement personnelles. Maintenant, cela demande un investissement de temps important pour une protection sans aucune garantie sur la durée. Donc si votre code mérite tout ce labeur, peut être devriez-vous envisager un langage plus adapté à votre demande. ^^


Pour finir, bien que vous vous soyez excusé auprès de Jean Christophe, j'ai trouvé votre réaction vraiment violente par rapport a sa réponse.
jchd a écrit :Aucun rapport avec un debogueur quelconque.
Me semble parfaitement inutile tout ça.
Je ne voit là aucune agression quelconque. C'était juste une constatation et une conclusion par rapport à vos propos, puisqu'un debogueur ne permet absolument pas de connaitre le code source d'un programme. Au mieux il vous donnera le code machine, mais là, "les petits malin" passeront leur chemin tout comme la plupart des autres.
J'espère simplement que vos réactions virulentes s’arrêteront là même si quelqu'un ne vous répond pas en finesse, car l'agression gratuite n'a pas de raison d'être dans notre communauté.

Re: [..] utilisation de l'api "IsDebuggerPresent"

Posté : sam. 07 sept. 2013 20:21
par hardfloor
Merci à tous pour vos réponses. :wink: