begin process at 2008 08 20 17:25:21
1 228 964 membres
325 nouveaux aujourd'hui
14 259 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : securite [ Archives / Fichier / Disque ] (xarier)

securite le 08/03/2004 21:07:15

xarier
voila j'ai fusioner deux exe le premier c le mien et le 2eme c un autre[n'importe le quel ] voila je veut dire a mon prog quand il finira son execution il lancera l'autre sans qu'il le copier sur mon disk dur puis il execute
merci
Xarier@hotmail.com
http://www.membres.lycos.fr/dev3d/

Re : securite le 08/03/2004 22:03:02

LordBob
Membre Club
je pense que tu seras obligé de le copier sur le disque dur !!!
Bob...

"La chance accorde ses faveur aux esprits avertis..."

Re : securite le 08/03/2004 23:35:19

jockos
Je cherche à faire la même chose que toi dans le principe, c'est à dire lancer un exécutable qui est déjà en mémoire vive sans le redescendre sur le disque-dur...

ça à l'air très difficile à faire, mais c'est dorcément réalisble...
Il faut en gros aller chercher ce qui se cache derrière l'API CreateProcess...

C'est difficile à faire car si se serait facile, se serait ultra simple de faire un virus vite fait...
;)

WriteProcessMemory permet d'écrire dans la zone mémoire (espace d'adressage virtuelle) d'un process.

Ce qui est chiant, c'est qu'il faut balancer juste le code machine de l'exécutable (en commençant par le point d'entrée de l'exe) dans le process et ensuite faire exécuter le thread par le processeur.

Bref, c'est très très chaud... mais je veux y arriver...

Je continue mes recherches... Cherche aussi de ton coté et tiens moi au courant...

A+

Jock

Re : securite le 09/03/2004 12:03:01

xarier
Ok c ta des new please dit le moi :)
Xarier@hotmail.com
http://www.membres.lycos.fr/dev3d/

Re : securite le 09/03/2004 21:41:15

MetalDwarf

C est vrai que ce serais tres interessant comme technique, mais le probleme de mettre le code direct en memoire c est que du coup les adresses risquent de ne plus etre valables!! Le format PE (format des executables windows) est tres complexe et un certains nombre de choses sont faites avant l execution de main() par le noyau. A mon avis c est tres loins d etre gagne...

Re : securite le 09/03/2004 22:12:25

jockos
A mon avis, il est essentiel de bien maitriser 3 choses :

- Comme tu le dis MetalDwarf, le format des exécutable PE (Win32), c'est à dire, bien comprendre sa structure (en-tête et les différentes sections : code, data, pile, ...)

- La mémoire virtuelle (cependant, il n'y a pas à s'inquiéter au niveau des adressages, car c'est le VMM Virutal Memory Manadger de Windows qui gère la résolution d'adressage entre l'espace d'adressage virtuel du processus et la mémoire physique, c'est à dire la RAM ou le fichier de SWAP).
Il faut juste se baser sur l'adresse ImageBase contenue dans l'en-tête de l'exécutable.

- Les processus Windows (pour lancer l'exécutable en fournissant l'entry point) afin que le processeur puisse exécuter le code.

Il faut faire ce que fait l'API CreateProcess (elle crée un process à partir d'un fichier exécutable).
C'est pas de la tarte, mais c'est tout à fait réalisable...

C'est excellent pour apprendre pleins de choses sur Windows, à un nivreau proche du noyau, car on va faire ce que les API ne nous permettent pas de faire...
Il faudra peut être faire un peu d'assembleur au moment de passer l'entry point au processus actif Windows. :(

Jock



Re : securite le 10/03/2004 12:47:18

xarier
je crois que j'ai trouvé comment faire mais j'ai pas encore essayer pas manque de temps
il faut mettre un code asm
le jmp et puis l'adresse de l'entete de l'exe je crois que ca va marché testé svp est repondé moi
Xarier@hotmail.com
http://www.membres.lycos.fr/dev3d/

Re : securite le 10/03/2004 13:32:48

jockos
Quand tu auras le temps, tu essayeras...

C'est très très loin d'être aussi simple que cela...
Le processeur fonctionne avec des adresses de la mémoire vive (RAM) via le bus de données et le bus d'adresse.

Les adresses qu'il y a dans un exe PE (format de des exe Win32) sont des adresses virtuelles. C'est Windows via le VMM (Virutal Memory Manager) qui s'occupe du mécanisme de pagination à la demande et surtout du mapping (c'est à dire qui fait correspondre une adresse virtuelle avec une adresse physique de la RAM ou du fichier d'échange SWAP).

Les adresses présentent dans l'exe sont, je le répète une dernière fois, des adresses virtuelles qui font parties de l'espace d'adressage du processus (l'exe une fois lançé).
Chaque processus a un espace de 2Go de mémoire (il y a 2 Go reservé pour le Kernel Windows et des zones de 64Ko reservé pour les pointeurs NULL et les pointeurs invalides).

Le VMM s'occupe de charger l'exécutable dans des PAGES (1 page virutelle = 4Ko). Ces pages sont ensuite chargé en mémoire vive (ou dans le SWAP) dans des PAGES PHYSIQUES DE 4KO en fonction des besoins du processus.

Donc dire qu'il suffit de faire un jump sur l'entry point de l'exe
est un peu trop facile...

Jock

Re : securite le 11/03/2004 11:47:27

xarier
c un proguer en asm qui ma dit que lui il lui a suffi de faire un jmp est voila !!!!!
Xarier@hotmail.com
http://www.membres.lycos.fr/dev3d/


Classé sous : securite

Participer à cet échange

Livres en rapport

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
campagne Adwords
Budget : 5 000€
Boite echanges securis...
Budget : 500€

Snippets en rapport

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS