j'ai un petit probleme avec le mini debugger que je code. j'ai lu a peu
pres toute
la msdn sur le sujet mais je n'ai pas pu le resoudre.
ma boucle de debug est basee sur WaitForDebugEvent et ContinueDebugEvent
et ne
fait qu'imprimer les differents evenements ou exceptions. Ca marche tres
bien
lorsque je m'attache au process avec DebugActiveProcess mais avec certains
programmes (bizarrement pas tous...) lorsque je cree moi-meme le processus,
tout commence normalement mais apres quelques evenements je recois des
exceptions en continu, avec mon cpu a 100% et le programme en cours de
debug
est fige.
je pense que c'est la facon dont je cree le process etant donne que ca
marche
quand je m'y attache.
Je derive une classe de CWinThread, je la cree avec un constructeur public
redefini et j'appelle sa mathode CreateThread. Je cree le process (ou m'y
attache)
dans InitInstance et ma boucle de debug est dans la methode Run.
DEBUG_PROCESS c'est pour le cas ou ton processus veut gérer plusieurs plusieurs processus. Tu mets DEBUG_ONLY_THIS_PROCESS sinon. La doc dit (DEBUG_PROCESS) :
If this flag is set, the calling process is treated as a debugger, and the new process is debugged. The system notifies the debugger of all debug events that occur in the process being debugged. If you create a process with this flag set, only the calling thread (the thread that called CreateProcess) can call the WaitForDebugEvent function. Windows 95/98/Me: This flag is not valid if the new process is a 16-bit application.
Et (DEBUG_ONLY_THIS_PROCESS ) :
If this flag is not set and the calling process is being debugged, the new process becomes another process being debugged by the calling process's debugger. If the calling process is not a process being debugged, no debugging-related actions occur.
Enfin, si t'es en CUI, n'oublie pas CREATE_NEW_CONSOLE.
DEBUG_PROCESS c'est pour le cas ou ton processus veut gérer plusieurs
plusieurs processus. Tu mets DEBUG_ONLY_THIS_PROCESS sinon. La doc dit
(DEBUG_PROCESS) :
If this flag is set, the calling process is treated as a debugger, and the
new process is debugged. The system notifies the debugger of all debug
events that occur in the process being debugged.
If you create a process with this flag set, only the calling thread (the
thread that called CreateProcess) can call the WaitForDebugEvent function.
Windows 95/98/Me: This flag is not valid if the new process is a 16-bit
application.
Et (DEBUG_ONLY_THIS_PROCESS ) :
If this flag is not set and the calling process is being debugged, the new
process becomes another process being debugged by the calling process's
debugger. If the calling process is not a process being debugged, no
debugging-related actions occur.
Enfin, si t'es en CUI, n'oublie pas CREATE_NEW_CONSOLE.
DEBUG_PROCESS c'est pour le cas ou ton processus veut gérer plusieurs plusieurs processus. Tu mets DEBUG_ONLY_THIS_PROCESS sinon. La doc dit (DEBUG_PROCESS) :
If this flag is set, the calling process is treated as a debugger, and the new process is debugged. The system notifies the debugger of all debug events that occur in the process being debugged. If you create a process with this flag set, only the calling thread (the thread that called CreateProcess) can call the WaitForDebugEvent function. Windows 95/98/Me: This flag is not valid if the new process is a 16-bit application.
Et (DEBUG_ONLY_THIS_PROCESS ) :
If this flag is not set and the calling process is being debugged, the new process becomes another process being debugged by the calling process's debugger. If the calling process is not a process being debugged, no debugging-related actions occur.
Enfin, si t'es en CUI, n'oublie pas CREATE_NEW_CONSOLE.
DEBUG_PROCESS c'est pour le cas ou ton processus veut gérer plusieurs plusieurs processus. Tu mets DEBUG_ONLY_THIS_PROCESS sinon. La doc dit (DEBUG_PROCESS) :
If this flag is set, the calling process is treated as a debugger, and the new process is debugged. The system notifies the debugger of all debug events that occur in the process being debugged. If you create a process with this flag set, only the calling thread (the thread that called CreateProcess) can call the WaitForDebugEvent function. Windows 95/98/Me: This flag is not valid if the new process is a 16-bit application.
Et (DEBUG_ONLY_THIS_PROCESS ) :
If this flag is not set and the calling process is being debugged, the new process becomes another process being debugged by the calling process's debugger. If the calling process is not a process being debugged, no debugging-related actions occur.
Enfin, si t'es en CUI, n'oublie pas CREATE_NEW_CONSOLE.
merci mais ca n'a rien a voir. en fait ce qui est bizarre c'est que si je creer le process avec dwCreationFlag a 0, et que je m'attache ensuite au processus ca me fait la meme erreur. et comme en plus ca le fait qu'avec certain logiciels..
je trouve ca vraiment bizarre. c'est comme si certaines operations au debut du programme ne pouvaient pas etre executees en mode debug , mais l'attachement apres ces instruction est possible. je me demande quel genre d'operation peut produire ce resultat et pourquoi. surtout que je lance mon debugger en user qui a les privileges administrateur donc ca devrait pas etre ca..
merci quand meme,
-- lucas
Le Thu, 3 Mar 2005 13:36:22 +0100, AMcD® <arnold.mcdonald@free.fr> a écrit:
DEBUG_PROCESS c'est pour le cas ou ton processus veut gérer plusieurs
plusieurs processus. Tu mets DEBUG_ONLY_THIS_PROCESS sinon. La doc dit
(DEBUG_PROCESS) :
If this flag is set, the calling process is treated as a debugger, and
the
new process is debugged. The system notifies the debugger of all debug
events that occur in the process being debugged.
If you create a process with this flag set, only the calling thread (the
thread that called CreateProcess) can call the WaitForDebugEvent
function.
Windows 95/98/Me: This flag is not valid if the new process is a 16-bit
application.
Et (DEBUG_ONLY_THIS_PROCESS ) :
If this flag is not set and the calling process is being debugged, the
new
process becomes another process being debugged by the calling process's
debugger. If the calling process is not a process being debugged, no
debugging-related actions occur.
Enfin, si t'es en CUI, n'oublie pas CREATE_NEW_CONSOLE.
merci mais ca n'a rien a voir. en fait ce qui est bizarre c'est que si je
creer
le process avec dwCreationFlag a 0, et que je m'attache ensuite au
processus
ca me fait la meme erreur. et comme en plus ca le fait qu'avec certain
logiciels..
je trouve ca vraiment bizarre. c'est comme si certaines operations au
debut du programme
ne pouvaient pas etre executees en mode debug , mais l'attachement apres
ces instruction
est possible. je me demande quel genre d'operation peut produire ce
resultat et pourquoi.
surtout que je lance mon debugger en user qui a les privileges
administrateur donc ca devrait
pas etre ca..
DEBUG_PROCESS c'est pour le cas ou ton processus veut gérer plusieurs plusieurs processus. Tu mets DEBUG_ONLY_THIS_PROCESS sinon. La doc dit (DEBUG_PROCESS) :
If this flag is set, the calling process is treated as a debugger, and the new process is debugged. The system notifies the debugger of all debug events that occur in the process being debugged. If you create a process with this flag set, only the calling thread (the thread that called CreateProcess) can call the WaitForDebugEvent function. Windows 95/98/Me: This flag is not valid if the new process is a 16-bit application.
Et (DEBUG_ONLY_THIS_PROCESS ) :
If this flag is not set and the calling process is being debugged, the new process becomes another process being debugged by the calling process's debugger. If the calling process is not a process being debugged, no debugging-related actions occur.
Enfin, si t'es en CUI, n'oublie pas CREATE_NEW_CONSOLE.
merci mais ca n'a rien a voir. en fait ce qui est bizarre c'est que si je creer le process avec dwCreationFlag a 0, et que je m'attache ensuite au processus ca me fait la meme erreur. et comme en plus ca le fait qu'avec certain logiciels..
je trouve ca vraiment bizarre. c'est comme si certaines operations au debut du programme ne pouvaient pas etre executees en mode debug , mais l'attachement apres ces instruction est possible. je me demande quel genre d'operation peut produire ce resultat et pourquoi. surtout que je lance mon debugger en user qui a les privileges administrateur donc ca devrait pas etre ca..
merci quand meme,
-- lucas
AMcD®
ouech wrote:
merci mais ca n'a rien a voir.
J'en doute.
De toute façon, sans code, sans savoir l'OS, les patches, etc. ce sera quasi impossible de t'aider. T'as essayé avec des debugger comme Olly ou Windbg pour voir si ces problème apparaissent ? Sinon, essaye de regarder les sources de divers debugguers. T'as aussi pas mal de trucs à lire ici :
http://www.codeproject.com/debug/
-- AMcD®
http://arnold.mcdonald.free.fr/
ouech wrote:
merci mais ca n'a rien a voir.
J'en doute.
De toute façon, sans code, sans savoir l'OS, les patches, etc. ce sera quasi
impossible de t'aider. T'as essayé avec des debugger comme Olly ou Windbg
pour voir si ces problème apparaissent ? Sinon, essaye de regarder les
sources de divers debugguers. T'as aussi pas mal de trucs à lire ici :
De toute façon, sans code, sans savoir l'OS, les patches, etc. ce sera quasi impossible de t'aider. T'as essayé avec des debugger comme Olly ou Windbg pour voir si ces problème apparaissent ? Sinon, essaye de regarder les sources de divers debugguers. T'as aussi pas mal de trucs à lire ici :
http://www.codeproject.com/debug/
-- AMcD®
http://arnold.mcdonald.free.fr/
Vincent Burel
"ouech" wrote in message news:
Le Thu, 3 Mar 2005 13:36:22 +0100, AMcD® a
écrit:
merci mais ca n'a rien a voir. en fait ce qui est bizarre c'est que si je creer le process avec dwCreationFlag a 0, et que je m'attache ensuite au processus ca me fait la meme erreur. et comme en plus ca le fait qu'avec certain logiciels..
Rem : certains logiciels sont protégé contre le debugging et ne permettent pas que les outils/services usuels de debugging fonctionnent.
VB
"ouech" <loucs_93@nospamhotmail.com> wrote in message
news:opsm2eo2weozxxof@loucs...
Le Thu, 3 Mar 2005 13:36:22 +0100, AMcD® <arnold.mcdonald@free.fr> a
écrit:
merci mais ca n'a rien a voir. en fait ce qui est bizarre c'est que si je
creer
le process avec dwCreationFlag a 0, et que je m'attache ensuite au
processus
ca me fait la meme erreur. et comme en plus ca le fait qu'avec certain
logiciels..
Rem : certains logiciels sont protégé contre le debugging et ne permettent
pas que les outils/services usuels de debugging fonctionnent.
merci mais ca n'a rien a voir. en fait ce qui est bizarre c'est que si je creer le process avec dwCreationFlag a 0, et que je m'attache ensuite au processus ca me fait la meme erreur. et comme en plus ca le fait qu'avec certain logiciels..
Rem : certains logiciels sont protégé contre le debugging et ne permettent pas que les outils/services usuels de debugging fonctionnent.
VB
ouech
Le Fri, 4 Mar 2005 15:09:14 +0100, Vincent Burel a écrit:
"ouech" wrote in message news:
Le Thu, 3 Mar 2005 13:36:22 +0100, AMcD® a
écrit:
merci mais ca n'a rien a voir. en fait ce qui est bizarre c'est que si je creer le process avec dwCreationFlag a 0, et que je m'attache ensuite au processus ca me fait la meme erreur. et comme en plus ca le fait qu'avec certain logiciels..
Rem : certains logiciels sont protégé contre le debugging et ne permettent pas que les outils/services usuels de debugging fonctionnent.
VB
merci je men suis rendu compte en utilisant ollydbg qui fait plante les meme programmes que mon mini debugger, c'est a dire gspot et acrobatreader.
merci pour votre aide,
-- lucas
Le Fri, 4 Mar 2005 15:09:14 +0100, Vincent Burel
<vincent.burel@spam-wanadoo.fr> a écrit:
"ouech" <loucs_93@nospamhotmail.com> wrote in message
news:opsm2eo2weozxxof@loucs...
Le Thu, 3 Mar 2005 13:36:22 +0100, AMcD® <arnold.mcdonald@free.fr> a
écrit:
merci mais ca n'a rien a voir. en fait ce qui est bizarre c'est que si
je
creer
le process avec dwCreationFlag a 0, et que je m'attache ensuite au
processus
ca me fait la meme erreur. et comme en plus ca le fait qu'avec certain
logiciels..
Rem : certains logiciels sont protégé contre le debugging et ne
permettent
pas que les outils/services usuels de debugging fonctionnent.
VB
merci je men suis rendu compte en utilisant ollydbg qui fait plante les
meme programmes que mon mini debugger, c'est a dire gspot et acrobatreader.
Le Fri, 4 Mar 2005 15:09:14 +0100, Vincent Burel a écrit:
"ouech" wrote in message news:
Le Thu, 3 Mar 2005 13:36:22 +0100, AMcD® a
écrit:
merci mais ca n'a rien a voir. en fait ce qui est bizarre c'est que si je creer le process avec dwCreationFlag a 0, et que je m'attache ensuite au processus ca me fait la meme erreur. et comme en plus ca le fait qu'avec certain logiciels..
Rem : certains logiciels sont protégé contre le debugging et ne permettent pas que les outils/services usuels de debugging fonctionnent.
VB
merci je men suis rendu compte en utilisant ollydbg qui fait plante les meme programmes que mon mini debugger, c'est a dire gspot et acrobatreader.
merci pour votre aide,
-- lucas
Alexandre
> Rem : certains logiciels sont protégé contre le debugging et ne permettent pas que les outils/services usuels de debugging fonctionnent.
VB
ah ? Tu sais comment on fait ça, en pratique ? ça m'interesse !
> Rem : certains logiciels sont protégé contre le debugging et ne permettent
pas que les outils/services usuels de debugging fonctionnent.
VB
ah ? Tu sais comment on fait ça, en pratique ? ça m'interesse !
> Rem : certains logiciels sont protégé contre le debugging et ne permettent pas que les outils/services usuels de debugging fonctionnent.
VB
ah ? Tu sais comment on fait ça, en pratique ? ça m'interesse !
GG
bonjour,
Rem : certains logiciels sont protégé contre le debugging et ne permettent pas que les outils/services usuels de debugging fonctionnent. VB
ah ? Tu sais comment on fait ça, en pratique ? ça m'interesse !
On fait le tour du fonctionnement des debuggueurs les plus connus et si il démarrent dans le gestionnaire de taches on les en empeches.
Pour Winice ou Softice c'est plus simple encore vous détectez si le driver de softice est en memoire et vous ne démarrez pas votre process, mais je trouve cela assez ridicule, car si quelqu'un souhaite vraiment faire du reverse il prend un ICE physique avec la sonde du processeur et là il n'y a rien qui résiste. Vous n'êtes pas capable de le détecté puisque rien n'est installé sur la machine cible. -- Cordialement. GG.
bonjour,
Rem : certains logiciels sont protégé contre le debugging et ne
permettent pas que les outils/services usuels de debugging
fonctionnent. VB
ah ? Tu sais comment on fait ça, en pratique ? ça m'interesse !
On fait le tour du fonctionnement des debuggueurs les plus connus
et si il démarrent dans le gestionnaire de taches on les en empeches.
Pour Winice ou Softice c'est plus simple encore vous détectez si
le driver de softice est en memoire et vous ne démarrez pas votre
process, mais je trouve cela assez ridicule, car si quelqu'un souhaite
vraiment faire du reverse il prend un ICE physique avec la sonde
du processeur et là il n'y a rien qui résiste. Vous n'êtes pas capable
de le détecté puisque rien n'est installé sur la machine cible.
--
Cordialement.
GG.
Rem : certains logiciels sont protégé contre le debugging et ne permettent pas que les outils/services usuels de debugging fonctionnent. VB
ah ? Tu sais comment on fait ça, en pratique ? ça m'interesse !
On fait le tour du fonctionnement des debuggueurs les plus connus et si il démarrent dans le gestionnaire de taches on les en empeches.
Pour Winice ou Softice c'est plus simple encore vous détectez si le driver de softice est en memoire et vous ne démarrez pas votre process, mais je trouve cela assez ridicule, car si quelqu'un souhaite vraiment faire du reverse il prend un ICE physique avec la sonde du processeur et là il n'y a rien qui résiste. Vous n'êtes pas capable de le détecté puisque rien n'est installé sur la machine cible. -- Cordialement. GG.
Vincent Burel
"GG" wrote in message news:423ab066$0$28602$
bonjour,
>> Rem : certains logiciels sont protégé contre le debugging et ne >> permettent pas que les outils/services usuels de debugging >> fonctionnent. VB > > ah ? Tu sais comment on fait ça, en pratique ? ça m'interesse !
On fait le tour du fonctionnement des debuggueurs les plus connus et si il démarrent dans le gestionnaire de taches on les en empeches.
Pour Winice ou Softice c'est plus simple encore vous détectez si le driver de softice est en memoire et vous ne démarrez pas votre process, mais je trouve cela assez ridicule, car si quelqu'un souhaite vraiment faire du reverse il prend un ICE physique avec la sonde du processeur et là il n'y a rien qui résiste. Vous n'êtes pas capable de le détecté puisque rien n'est installé sur la machine cible.
oui, mais y'a d'autre moyen pour tromper le debugger (dont le moteur est une fonction, ou mode de fonctionnement du processeur). et faire en sorte qu'il se bloque ou qu'il ne fonctionne pas correctement... Pour les détail pratique faut voir peut-être avec AMcD, moi je paye pour avoir ce genre de protection, mais je n'y connais rien.
VB
"GG" <news@nospam.assysm.com> wrote in message
news:423ab066$0$28602$636a15ce@news.free.fr...
bonjour,
>> Rem : certains logiciels sont protégé contre le debugging et ne
>> permettent pas que les outils/services usuels de debugging
>> fonctionnent. VB
>
> ah ? Tu sais comment on fait ça, en pratique ? ça m'interesse !
On fait le tour du fonctionnement des debuggueurs les plus connus
et si il démarrent dans le gestionnaire de taches on les en empeches.
Pour Winice ou Softice c'est plus simple encore vous détectez si
le driver de softice est en memoire et vous ne démarrez pas votre
process, mais je trouve cela assez ridicule, car si quelqu'un souhaite
vraiment faire du reverse il prend un ICE physique avec la sonde
du processeur et là il n'y a rien qui résiste. Vous n'êtes pas capable
de le détecté puisque rien n'est installé sur la machine cible.
oui, mais y'a d'autre moyen pour tromper le debugger (dont le moteur est une
fonction, ou mode de fonctionnement du processeur). et faire en sorte qu'il
se bloque ou qu'il ne fonctionne pas correctement... Pour les détail
pratique faut voir peut-être avec AMcD, moi je paye pour avoir ce genre de
protection, mais je n'y connais rien.
>> Rem : certains logiciels sont protégé contre le debugging et ne >> permettent pas que les outils/services usuels de debugging >> fonctionnent. VB > > ah ? Tu sais comment on fait ça, en pratique ? ça m'interesse !
On fait le tour du fonctionnement des debuggueurs les plus connus et si il démarrent dans le gestionnaire de taches on les en empeches.
Pour Winice ou Softice c'est plus simple encore vous détectez si le driver de softice est en memoire et vous ne démarrez pas votre process, mais je trouve cela assez ridicule, car si quelqu'un souhaite vraiment faire du reverse il prend un ICE physique avec la sonde du processeur et là il n'y a rien qui résiste. Vous n'êtes pas capable de le détecté puisque rien n'est installé sur la machine cible.
oui, mais y'a d'autre moyen pour tromper le debugger (dont le moteur est une fonction, ou mode de fonctionnement du processeur). et faire en sorte qu'il se bloque ou qu'il ne fonctionne pas correctement... Pour les détail pratique faut voir peut-être avec AMcD, moi je paye pour avoir ce genre de protection, mais je n'y connais rien.
VB
AMcD®
Vincent Burel wrote:
oui, mais y'a d'autre moyen pour tromper le debugger (dont le moteur est une fonction, ou mode de fonctionnement du processeur). et faire en sorte qu'il se bloque ou qu'il ne fonctionne pas correctement...
Oui, tu peux même leur faire afficher n'importe quoi...
Pour les détail pratique faut voir peut-être avec AMcD, moi je paye pour avoir ce genre de protection, mais je n'y connais rien.
Chuis en grève !
-- AMcD®
http://arnold.mcdonald.free.fr/
Vincent Burel wrote:
oui, mais y'a d'autre moyen pour tromper le debugger (dont le moteur
est une fonction, ou mode de fonctionnement du processeur). et faire
en sorte qu'il se bloque ou qu'il ne fonctionne pas correctement...
Oui, tu peux même leur faire afficher n'importe quoi...
Pour les détail pratique faut voir peut-être avec AMcD, moi je paye
pour avoir ce genre de protection, mais je n'y connais rien.
oui, mais y'a d'autre moyen pour tromper le debugger (dont le moteur est une fonction, ou mode de fonctionnement du processeur). et faire en sorte qu'il se bloque ou qu'il ne fonctionne pas correctement...
Oui, tu peux même leur faire afficher n'importe quoi...
Pour les détail pratique faut voir peut-être avec AMcD, moi je paye pour avoir ce genre de protection, mais je n'y connais rien.