Anti-debug

Sur tout ce qui concerne la sécurité des réseaux et systèmes avec leur protection et comment les contourner.

Anti-debug

Messagepar styck007 » 13 Mars 2017, 17:44

Bonjour,
me revoilà avec une question un peu à l'inverse , j'ai un logiciel conçu sur windev21 qui doit passer le cap du 01/2018 :?
oui c'est un bug , le bug d'un ministre qui à décréter que l'auteur (l'éditeur ,ou le programmeur) d'un logiciel de caisse ou de gestion doit certifier son logiciel comme satisfaisant au condition d'inaltérabilité ,de sécurisation, d'archivage etc.....
Le risque est relativement important donc .
j'aurais quelques besoin donc de protection (une protection interne fait par mes soins et non externe sans avoir la source) , il faut juste empêcher un minimum le reverse pour satisfaire la justice .
que pouvez-vous me conseiller de simple comme api ou contrôle divers pour empêcher le niveau 3-4/10 de désassembler la bête ?
merci de vos réponses.
styck007
Elève
Elève
 
Messages: 44
Inscription: 15 Juin 2015, 11:44

Re: Anti-debug

Messagepar styck007 » 13 Mars 2017, 18:53

j'ai trouver ceci qui est apparement intégrer , si vous avez un peu plus :
https://wind.developpez.com/tutoriels/w ... ugging/#L0
styck007
Elève
Elève
 
Messages: 44
Inscription: 15 Juin 2015, 11:44

Re: Anti-debug

Messagepar dionosis » 14 Mars 2017, 01:54

Salut,

Ra j'arrive pas à le poster ce message, dernière tentative.


stick007 a écrit:un ministre qui à décréter [...] pour satisfaire la justice

Si je comprends bien, à toi on te demande juste de mettre un contrôle ?
Personne ne te demande de le rendre solide (et personne de compétent ne te le demandera sur un soft codé en windev).

stick007 a écrit:Le risque est relativement important donc

Tu parles du risques pour l'utilisateur final ?
Parce que si oui, à partir du momet où il a désassemblé ton soft pour le bidouiller, ta responsabilité n'est plus engagée.

stick007 a écrit:empêcher le niveau 3-4/10 de désassembler la bête

Un niveau 3-4/10 ne se risquera probablement pas à désassembler du windev.

stick007 a écrit:j'ai trouver ceci qui est apparement intégrer

Ca peut le faire oui, c'est toujours mieux que rien, d'autant plus que la vm windev 'obfusquera' tout ça.
Par contre ça risque de te gêner pour debugger via l'ide, et ça ne tiendra pas contre un anti-anti.
A la limite les reg checks exotiques ça aurait pu, mais ils ne sont même plus d'actualité.

[FAUX] --> C'est bien +0x02 (j'avais confondu BOOL et BOOLEAN).
Quant à :
Code: Tout sélectionner
AdrPEB est un entier sans signe sur 4 octets = :GET_Adresse_PEB ()
adrRet est un entier sans signe sur 1 octet = 0x0
Transfert (&adrRet,AdrPEB+0x2,1)
RENVOYER adrRet

Ca serait plutôt :
Code: Tout sélectionner
...
Transfert (&adrRet,AdrPEB+0x8,1)
...
[/FAUX]

Bref, te prends pas la tête si tu veux mon avis. :)

++
Dernière édition par dionosis le 19 Mars 2017, 00:14, édité 1 fois.
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: Anti-debug

Messagepar styck007 » 15 Mars 2017, 12:44

dionosis a écrit:Salut,
Ra j'arrive pas à le poster ce message, dernière tentative.[/i][/size]

merci d'avoir pris le temps de me répondre , c'est sympa
dionosis a écrit:A la limite les reg checks exotiques ça aurait pu, mais ils ne sont même plus d'actualité.

si tu as des reg checks sur les logiciel de debug , je suis preneur , le but étant de ralentir l'opération
dionosis a écrit:Quant à :
Code: Tout sélectionner
AdrPEB est un entier sans signe sur 4 octets = :GET_Adresse_PEB ()
adrRet est un entier sans signe sur 1 octet = 0x0
Transfert (&adrRet,AdrPEB+0x2,1)
RENVOYER adrRet

Ca serait plutôt :
Code: Tout sélectionner
...
Transfert (&adrRet,AdrPEB+0x8,1)
...


le problème ,c 'est que pour tester ,il faut déjà avoir bidouiller l'exécutable qui est déjà protéger par l'anti-debug intégrer à windev ...lol
je vais m'arreter la dans l'anti debug .... windev à l'air galère d'origine à désassembler par rapport à d'autre .
styck007
Elève
Elève
 
Messages: 44
Inscription: 15 Juin 2015, 11:44

Re: Anti-debug

Messagepar dionosis » 16 Mars 2017, 01:27

Salut,

styck007 a écrit:si tu as des reg checks sur les logiciel de debug , je suis preneur , le but étant de ralentir l'opération

Il te suffit d'installer les softs que tu veux cibler et d'aller jeter un oeil dans la base de registre.
Ensuite tu reprends l'exemple et tu adaptes. :)

styck007 a écrit:le problème ,c 'est que pour tester ,il faut déjà avoir bidouiller l'exécutable qui est déjà protéger par l'anti-debug intégrer à windev ...lol

Ouais lol :
http://www.forumcrack.com/viewtopic.php?f=6&t=13194&p=120572#p120572

styck007 a écrit:je vais m'arreter la dans l'anti debug .... windev à l'air galère d'origine à désassembler par rapport à d'autre .

Ca suffira amplement je pense. :)

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: Anti-debug

Messagepar styck007 » 18 Mars 2017, 12:32


Salut
je me demande de nouveau comment tu a pu remonter jusqu'au call qui va bien :idea: :aie: :aie:
çà me stress à chaque fois de ne pas trouver une logique à suivre dans tout çà
j'ai vu des chargements de dll mais dur dur , je suppose que le call va dans un procédure de contrôle ? le faites de ne pas y aller règle le soucis ?
styck007
Elève
Elève
 
Messages: 44
Inscription: 15 Juin 2015, 11:44

Re: Anti-debug

Messagepar styck007 » 18 Mars 2017, 14:56

en traçant un executable en v21 et non 19 , on retrouve à peu près les mêmes fin avec l'échec du chargement de la vm mais impossible à remonter sur ton call ou une comparaison claire, j'aimerais bien connaitre ta façon de remonter le fleuve :mrgreen:
styck007
Elève
Elève
 
Messages: 44
Inscription: 15 Juin 2015, 11:44

Re: Anti-debug

Messagepar styck007 » 18 Mars 2017, 19:45

j'ai bien trouver sur une version 18 ou était le 'by-pass" du contrôle grâce à dionosis ,il y a bien un call qui sert à ça à un endroit différent bien sûr mais sur la 21 , c'est apparement bien different ,si quelqu'un à le temps de jeter un oeil , je pense que c'est facile pour un pro , çà m'aiderais à tester mes propre anti-debug .
merci d'avance .
styck007
Elève
Elève
 
Messages: 44
Inscription: 15 Juin 2015, 11:44

Re: Anti-debug

Messagepar dionosis » 19 Mars 2017, 00:31

Salut,

je me demande de nouveau comment tu a pu remonter jusqu'au call qui va bien

Désolé mais je n'en ai plus aucun souvenir.

mais sur la 21 , c'est apparement bien different

Hm, vu comment c'était fait (ça avait été pensé d'un point de vue codeur et non pas reverser) ça m'étonnerait que ça ait beaucoup évolué (surtout si tu dis que ça fonctionne aussi sur la v18).

A mon avis d'après les pauvres trois notes qu'il me reste tu as une bonne chance de t'en sortir.
Cherche avec un editeur hexa la séquence 00 65 72 50 00 et remplace là par 00 65 72 70 00 (il n'y en aura très probablement qu'une seule occurence).
Ensuite ça devrait runner dans un debugger.

Si ça fonctionne alors tu pourras tester tes anti-debug mais probablement pas les comprendre puisque ça signifiera que la technique n'a pas changé et que, malgré les infos que je donne sur le contournement dans l'autre post, tu n'as pas les bases qui t'auraient permis d'extrapoler un tout petit peu.
Si en revanche ça ne fonctionne pas alors il faudra que tu fasses voir un hello world.

Nb: J'ai édité un de mes posts précédent, en relisant je viens de voir que je t'avais dit une bêtise.

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: Anti-debug

Messagepar styck007 » 19 Mars 2017, 09:58

salut,
c'est bon j'ai trouver le call ,c'est cool :D ,je vais pouvoir tester mes anti-debug (alors que j'ai surement encore des bug lol :lol: ) , je vais regarder la concurrence pour voir si il en on rajouté et de quel manière .
A+ pour la suite de l'aventure ou pour une nouvelle
styck007
Elève
Elève
 
Messages: 44
Inscription: 15 Juin 2015, 11:44

Re: Anti-debug

Messagepar dionosis » 19 Mars 2017, 17:00

Salut,

Hm, pas très sympa de ne pas partager la solution. Ca n'est pas l'esprit du forum. :roll:

Pourrais tu stp nous confirmer que le patch générique que je donne ci-dessus fonctionne avec la v21 ?

Edit:
En extrapolant le nom des dll puis grâce à g00gle j'ai trouvé un utilitaire en v21 et le patch fonctionne.


++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: Anti-debug

Messagepar styck007 » 19 Mars 2017, 21:44

Désolé , j'ai oublie de donner la solution , le call à noper est en 3D6C , par contre , je viens d'essayer ta solution est elle fonctionne aussi , est celle-ci pas besoin de la chercher ....
styck007
Elève
Elève
 
Messages: 44
Inscription: 15 Juin 2015, 11:44

Re: Anti-debug

Messagepar styck007 » 19 Mars 2017, 21:57

sans oublier qu'avec phantOm sur olly , il y a rien besoin de faire , çà passe à l'as , le but étant je le rappelle de tester mes propres anti-debug et de les disséminer à plusieurs endroits.
merci de ton aide dionosis
a ce propos on peut mettre des breakpoints dans l'exécutable sans que çà pete ou on travaille dans la vm ?
styck007
Elève
Elève
 
Messages: 44
Inscription: 15 Juin 2015, 11:44

Re: Anti-debug

Messagepar dionosis » 20 Mars 2017, 00:54

Salut,

styck007 a écrit:le call à noper est en 3D6C

Dac, apparemment c'est un stub fixe.

Donc effectivement non pas nopper le call en 403d6a mais mettre son retour en 0x403D6C à zéro fonctionne.
Pour le faire prorement comme dans l'autre il faudrait nopper le call en 402f2b (offset 0x2f2b, 5x 0x90).

styck007 a écrit:sans oublier qu'avec phantOm sur olly , il y a rien besoin de faire , çà passe à l'as , le but étant je le rappelle de tester mes propres anti-debug et de les disséminer à plusieurs endroits.

Et oui justement, mais pour tester les tiens il faut tourner sans phantom.
J'aime cette approche inverse du reverse (l'anti), donc c'est important aussi de laisser ça propre pour la postérité.

styck007 a écrit:merci de ton aide dionosis

De rien.

styck007 a écrit:a ce propos on peut mettre des breakpoints dans l'exécutable sans que çà pete ou on travaille dans la vm ?

Dans la section code tu peux y aller, pour le reste ça devient plus délicat : dans les handlers de la vm tu peux, mais je ne saurais pas te dire s'il sont en dur dans la section code, ou bien écrits à la volée dans de la mémoire allouée pour l'occasion. Au feeling je dirais qu'ils se trouvent simplement dans les dll loadées (principalement WDxxxVM.dll par exemple) parce que les exports sont on ne peut plus explicites... ;)

Comme ton code est du pseudo code, il faudra soit que tu places des BPs sur celles-ci, soit tout simplement que tu fasses des tests en affichant le résultat dans ton programme (dans un champ texte ou bien suite à la pression d'un bouton par exemple).

++
Avatar de l’utilisateur
dionosis
Maître des ténèbres
Maître des ténèbres
 
Messages: 507
Inscription: 09 Octobre 2009, 21:43

Re: Anti-debug

Messagepar styck007 » 21 Mars 2017, 09:56

merci dionosis pour tes explications
par ailleurs ,j'ai une petit soucis quand je veux tracer le parcours d'une de mes dll dans olly (ou passe des infos confidentielle) , je reste quasi dans la VM en permanence (je vois bien passer les info en ESI ) mais je ne rentre jamais dans ma dll et je ne la vois pas dans les 'view' (ni dans les thread) ; sais-tu comment faire pour debugger ou rentrer dans cette dll ?
styck007
Elève
Elève
 
Messages: 44
Inscription: 15 Juin 2015, 11:44

Suivante

Retourner vers Sécurité informatique

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité