Empêcher un arrêt de processus

Le
Arameya
Bonjour à toutes et à tous,

Je suis à la recherche d'une méthode me permettant de protéger un
processus d'un arrêt volontaire demandé par un utilisateur ayant des
droits d'administrateur.

Mon but n'est pas forcement d'empêcher catégoriquement l'arrêt mais
peut être de "cacher" le processus de la table windows (pouvoir le
voir avec tasks mais pas avec un Ctrl+alt+suppr?) ou de démotiver
l'utilisateur de le supprimer en mettant par exemple un message de
danger lors de l'arrêt du processus. Pour vous donner une petite idée
de ce que je veux faire mon logiciel est en faite un programme en C++
réseau dialoguant entre un pc serveur (windows serveur 2003) et le pc
client (windows vista et compte administrateur). Mais je doit empecher
l'arret de celui-ci par le client sauriez vous m'aider?
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
marc
Le #20350911
On 14 oct, 17:13, Arameya
Bonjour à toutes et à tous,

Je suis à la recherche d'une méthode me permettant de protéger un
processus d'un arrêt volontaire demandé par un utilisateur ayant des
droits d'administrateur.

Mon but n'est pas forcement d'empêcher catégoriquement l'arrêt mais
peut être de "cacher" le processus de la table windows (pouvoir le
voir avec tasks mais pas avec un Ctrl+alt+suppr?)



Ca ne suffirait pas de bloquer Ctrl-alt-Suppr pour empecher
l'utilisateur lambda de le tuer par le gestionnaire de taches ?
Arameya
Le #20352881
Si bien sur qu'il suffirait. Il suffirait d'enlever le mode admin du
poste, il suffirait aussi de prendre son pc et de bloquer toute les
fonctionnalités de suppression/modification de programme. Mais du coup
il suffirait aussi d'utiliser le mode parentale de microsoft.

Pour avoir été un bidouilleur pendant près de 10 ans avec un père q ui
cherchais toujours a bloquer mon pc, je commence a connaître les
failles de ses logiciels et encore plus celle de microsoft. Le but
n'est pas de bloquer windows pour que la personne n'est pas accès au
fonctionnalité de windows, il souhaite faire des études de
communication et d'informatique, autant le laisser vagabonder dans
windows, mais de "raisonner" son temps de jeu. C'est pourquoi je
cherche une solution pour bloquer la possibilité de suppression d'une
tache.

J'ai découvert que l'on pouvais cacher un processus mais je ne me sens
pas prêt encore pour coder ça, il faut écrire très très près du
processeur et je n'ai pas de pc de test. Je me sentirai mal si je
casse mon pc au lancement d'un drivers perso.

Je sais qu'il est possible de détourner un signal avec la fonction
raise() pour faire apparaitre SIGSEGV a l'arrêt du processus, mais la
encore je bloque et msdn n'arrive pas a m'aider. De plus je ne suis
pas sur que ce soit ce qu'il me faut.

Voila, si vous ne pouvez pas m'aider, je chercherai par moi même, ca
doit faire 3 mois que je bloque dessus mais je le continuerai (ça me
fait une expérience de la prog), je viens au moins de découvrir cette
méthode on verra si c'est efficace, mais si quelqu'un pouvais me
donner un exemple ou la façon la plus simple d'utilisation, je suis
encore étudiant dans le domaine et j'avoue avoir encore pas mal a
apprendre pour coder un programme qui vaux le coup.
Arameya
Le #20352871
Si bien sur qu'il suffirait. Il suffirait d'enlever le mode admin du
poste, il suffirait aussi de prendre son pc et de bloquer toute les
fonctionnalités de suppression/modification de programme. Mais du coup
il suffirait aussi d'utiliser le mode parentale de microsoft.

Pour avoir été un bidouilleur pendant près de 10 ans avec un père q ui
cherchais toujours a bloquer mon pc, je commence a connaître les
failles de ses logiciels et encore plus celle de microsoft. Le but
n'est pas de bloquer windows pour que la personne n'est pas accès au
fonctionnalité de windows, il souhaite faire des études de
communication et d'informatique, autant le laisser vagabonder dans
windows, mais de "raisonner" son temps de jeu. C'est pourquoi je
cherche une solution pour bloquer la possibilité de suppression d'une
tache.

J'ai découvert que l'on pouvais cacher un processus mais je ne me sens
pas prêt encore pour coder ça, il faut écrire très très près du
processeur et je n'ai pas de pc de test. Je me sentirai mal si je
casse mon pc au lancement d'un drivers perso.

Je sais qu'il est possible de détourner un signal avec la fonction
raise() pour faire apparaitre SIGSEGV a l'arrêt du processus, mais la
encore je bloque et msdn n'arrive pas a m'aider. De plus je ne suis
pas sur que ce soit ce qu'il me faut.

Voila, si vous ne pouvez pas m'aider, je chercherai par moi même, ca
doit faire 3 mois que je bloque dessus mais je le continuerai (ça me
fait une expérience de la prog), je viens au moins de découvrir cette
méthode on verra si c'est efficace, mais si quelqu'un pouvais me
donner un exemple ou la façon la plus simple d'utilisation, je suis
encore étudiant dans le domaine et j'avoue avoir encore pas mal a
apprendre pour coder un programme qui vaux le coup.
nico
Le #20353161
Arameya wrote:
Si bien sur qu'il suffirait. Il suffirait d'enlever le mode admin du
poste, il suffirait aussi de prendre son pc et de bloquer toute les
fonctionnalités de suppression/modification de programme. Mais du coup
il suffirait aussi d'utiliser le mode parentale de microsoft.




Ca n'a rien à voir, il te dit de juste bloquer le TaskManager, par la
BDR ou autre.
Cacher un process, on sait le faire, mais c'est du code pour les rootkits..
Christian ASTOR
Le #20353151
On 14 oct, 17:13, Arameya
Mon but n'est pas forcement d'empêcher catégoriquement l'arrêt mais
peut être de "cacher" le processus de la table windows (pouvoir le
voir avec tasks mais pas avec un Ctrl+alt+suppr?) ou de démotiver
l'utilisateur de le supprimer en mettant par exemple un message de
danger lors de l'arrêt du processus.



La méthode la plus connue est avec NtSystemDebugControl(), du moins
jusqu'à XP (le cacher de la liste chaînée EPROCESS ou empêcher le
kill)
Mais c'est de la bidouille...
Loïc
Le #20353281
"Arameya"
<Bonjour à toutes et à tous,
<
<Je suis à la recherche d'une méthode me permettant de protéger un
<processus d'un arrêt volontaire demandé par un utilisateur ayant des
<droits d'administrateur.
< ...
< Mais je doit empecherl'arret de celui-ci par le client... sauriez vous
m'aider?

Tu pourrais faire un hook api sur TerminateProcess(), ça bloquera au moins
le gestionnaire de taches..
Arameya
Le #20354181
Ca reste du bidouillage tout ça comme dit christian. Bon je vais voir
pour créer un drivers qui me permettrai de cacher le process un peu
comme NtSystemDebugControl() mais j'ai l'impression que bien codé ça
reste plus sur que cette méthode et ça m'apprendra a en faire un.


Juste pour savoir, est ce que vous savez ce que fait l'OS quand on
kill un processus? il vide simplement la mémoire correspondante?
Christian ASTOR
Le #20357201
On 15 oct, 12:26, Arameya
Juste pour savoir, est ce que vous savez ce que fait l'OS quand on
kill un processus? il vide simplement la mémoire correspondante?



Du Richter :
"
When a process terminates, the following actions are set in motion:

- Any remaining threads in the process are terminated.
- All the User and GDI objects allocated by the process are freed, and
all the kernel objects are closed. (These kernel objects are destroyed
if no other process has open handles to them. However, the kernel
objects are not destroyed if other processes do have open handles to
them.)
- The process's exit code changes from STILL_ACTIVE to the code passed
to ExitProcess or TerminateProcess.
- The process kernel object's status becomes signaled. (See Chapter 9
for more information about signaling.) Other threads in the system can
suspend themselves until the process is terminated.
- The process kernel object's usage count is decremented by 1.
"
Publicité
Poster une réponse
Anonyme