Code Source d'un virus en JAVA....

Code Source d'un virus en JAVA.... - Programmation

Marsh Posté le 06-03-2002 à 22:40:48    

Salut tt le monde !
 
je suis en panique !
je dois développer un virus et un anti-virus en JAVA sous Linux pour une démo...
 
Biensûr je suis une guiche en dev...
 
Est-ce que quelqu'un pourrait m'aider s'il vous plait...c'est assez urgent en plus...
 
Merci bcq.
Doudou.

Reply

Marsh Posté le 06-03-2002 à 22:40:48   

Reply

Marsh Posté le 06-03-2002 à 22:43:17    

C'est n'importe quoi ton truc.

Reply

Marsh Posté le 06-03-2002 à 22:45:37    

c'est po moi qui est choisi de faire çà....

Reply

Marsh Posté le 07-03-2002 à 09:05:37    

Salut doudou. Ton virus doit nécessairement infecter qqch. As-tu des contraintes, ou es-tu libre de faire ce que tu veux ?

Reply

Marsh Posté le 07-03-2002 à 09:48:22    

Pour le virus, je sais pas trop (faut voir) mais pour l'antivirus, Il y a simple: tu vires la VM et il ne viendra plus te faire chier  :lol: .
Non, mais à part ça, c'est pourquoi ?
Tu peux donner plus de détails ?


---------------
"Si ça peut déconner, ça va déconner..."
Reply

Marsh Posté le 07-03-2002 à 10:09:51    

Deepcore a écrit a écrit :

Pour le virus, je sais pas trop (faut voir) mais pour l'antivirus, Il y a simple: tu vires la VM et il ne viendra plus te faire chier  :lol: .
Non, mais à part ça, c'est pourquoi ?
Tu peux donner plus de détails ?  




y a pas a dire c securisé java  :D

Reply

Marsh Posté le 07-03-2002 à 10:18:22    

:D

Reply

Marsh Posté le 07-03-2002 à 11:47:14    

bah j'ai pas trop de contrainte...le virus peut par exemple modifier le nom d'un fichier sans pour autant devoir l'infecter...
 
Le but de la manoeuvre est de réaliser celà dans le cadre de mes études...je sais çà peut paraitre bizarre....
 
Merci Bcq.

Reply

Marsh Posté le 07-03-2002 à 11:49:28    

Ben je serais toi, la première chose à faire serait de savoir ce que va faire ton virus; parceque là, c'est vague.


---------------
"Si ça peut déconner, ça va déconner..."
Reply

Marsh Posté le 07-03-2002 à 11:50:50    

Bon, un truc qui pète bien et qu'est pas trop dur à faire en java, c'est d'infecter les *.java du répertoire courant en injectant par exemple une ligne du genre :

Code :
  1. System.out.println("Bâh pourquoi !" ); //-virus-


 
Ton code ajoute une instruction d'affichage et le commentaire t'assures de retrouver facilement une ligne infectée avec ton antivirus maison.

Reply

Marsh Posté le 07-03-2002 à 11:50:50   

Reply

Marsh Posté le 07-03-2002 à 12:44:11    

ok Cherrytree, çà me parait pas mal comme truc...
 
mais comment faire ?
 
:-(

Reply

Marsh Posté le 07-03-2002 à 12:47:17    

doudou007 a écrit a écrit :

ok Cherrytree, çà me parait pas mal comme truc...
 
mais comment faire ?
 
:-(  




 
y vient de te donner le code !!!


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 07-03-2002 à 13:16:33    

doudou007 a écrit a écrit :

ok Cherrytree, çà me parait pas mal comme truc...
 
mais comment faire ?
 
:-(  




 
En gros tu voudrais que quelqu'un le fasse à ta place, faut pas pousser non plus

Reply

Marsh Posté le 07-03-2002 à 14:05:22    

Bon, je suis sympa, j'en rajoute une couche. Tu dois dans un premier temps te débrouiller pour récupérer un fichier java. Tu peux les récupérer tous et les stocker dans un Vector si ça te chante.
 
Ensuite pour chaque fichier que tu as, tu localises la méthode main. C'est facile, car la signature de la méthode est :

Code :
  1. public static void main(String[] args)


 
Cela dit, j'ai vu des gens écrire :

Code :
  1. public static void main(String args[])


 
Bon, pour localiser le main, tu choisis. Tu peux y aller comme un barbare ou finasser un peu. De toutes manières, c'est pas très important.
 
Ensuite tu insères la ligne infectante. Le mieux étant de copier le fichier ligne à ligne dans un autre fichier, insérer au bon endroit, puis écraser. Voilà.
 
Pour le code, cherche un peu tout seul.

 

[jfdsdjhfuetppo]--Message édité par Cherrytree--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 07-03-2002 à 14:16:30    

Et puis je vois pas trop dans quel cadre d'etude on peux avoir a faire ça  :??:

Reply

Marsh Posté le 07-03-2002 à 14:23:04    

Algorithmique et tripotage de langage :D

Reply

Marsh Posté le 07-03-2002 à 14:27:56    

ok cherrytree....
je vais essayer...
 
pour répondre à la question dans quel cadre d'étude on me demande çà...bah en fait je devais faire un mémoire technique sur les Virus...avec démo d'un virus en java sous linux...
sachant qu'on a eu 3 cours de Java...de quoi écrire un hello.java...
Donc j'estime ne pas avoir vraiment le niveau pour developper un virus et antivirus...
 
Merci.

Reply

Marsh Posté le 07-03-2002 à 14:36:21    

Dans ce cas, il va falloir y mettre beaucoup de bonne volonté. C'est un mémoire pour quelle classe/étude/école ?
 
Pour la lecture des fichiers, cherche dans l'API Java (http://java.sun.com/ ou http://www.google.com/) les classes PrintWriter, BufferedReader, File, StreamTokenizer, pour l'algo proprement dit, tes 3 cours devront suffire.

Reply

Marsh Posté le 07-03-2002 à 14:41:17    

Cherrytree a écrit a écrit :

Bon, un truc qui pète bien et qu'est pas trop dur à faire en java, c'est d'infecter les *.java du répertoire courant en injectant par exemple une ligne du genre :

Code :
  1. System.out.println("Bâh pourquoi !" ); //-virus-


 
Ton code ajoute une instruction d'affichage et le commentaire t'assures de retrouver facilement une ligne infectée avec ton antivirus maison.  




 
C'est pas "Bâh pourquoi !" qui faut afficher, c'est plutôt "Veuillez recompiler ce source afin d'activer le virus. Merci"  :D  
 
 
 
OK, je sors  :(


---------------
Chết rồi ! ✍ ⌥⌘ http://github.com/gwenhael-le-moine/slackbuilds/
Reply

Marsh Posté le 07-03-2002 à 14:43:54    

doudou007 a écrit a écrit :

bah j'ai pas trop de contrainte...le virus peut par exemple modifier le nom d'un fichier sans pour autant devoir l'infecter...
 
Le but de la manoeuvre est de réaliser celà dans le cadre de mes études...je sais çà peut paraitre bizarre....
 
Merci Bcq.  




Tu connais les virus .bat ? :D :D :D

Reply

Marsh Posté le 07-03-2002 à 14:43:58    

cycojesus a écrit a écrit :

 
C'est pas "Bâh pourquoi !" qui faut afficher, c'est plutôt "Veuillez recompiler ce source afin d'activer le virus. Merci"  :D  




 
:D

Reply

Marsh Posté le 07-03-2002 à 14:48:48    

cycojesus a écrit a écrit :

 
 
C'est pas "Bâh pourquoi !" qui faut afficher, c'est plutôt "Veuillez recompiler ce source afin d'activer le virus. Merci"  :D  
 
 
 
OK, je sors  :(  




mettez a jour votre classpath et redemarré votre machine  :D

Reply

Marsh Posté le 07-03-2002 à 17:46:22    

veryfree a écrit a écrit :

 
mettez a jour votre classpath et redemarré votre machine  :D  




 
Bon, j'ai pas trop le temps, mais il peut aussi directement injecter le bytecode dans le .class  
Mais c'est sur que tu fais pas ca avec 3 cours de Java.
 
Renaud

Reply

Marsh Posté le 07-03-2002 à 19:04:54    

- Renaud - a écrit a écrit :

 
 
Bon, j'ai pas trop le temps, mais il peut aussi directement injecter le bytecode dans le .class  
Mais c'est sur que tu fais pas ca avec 3 cours de Java.
 
Renaud  




a mon avis il suffis de changer ne serait ce qu une lettre ds le byte code pour que le fichier soit inexploitable

Reply

Marsh Posté le 07-03-2002 à 19:35:05    

Ouais, pourquoi pas. Ça c'est du point de vue altération de données.
Moi je vois aussi un virus comme propagation: infecter du code pour que s'il est lancé que le programme correspondant tente d'en infecter d'autres pour qu'ils fassent de même.


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 07-03-2002 à 20:25:52    

veryfree a écrit a écrit :

 
a mon avis il suffis de changer ne serait ce qu une lettre ds le byte code pour que le fichier soit inexploitable  




 
Non, tu peux injecter du bytecode qui correspond a System.out.prinln("virus" ); dans le main
Et ca marchera encore.

Reply

Marsh Posté le 07-03-2002 à 21:02:56    

- Renaud - a écrit a écrit :

 
 
Non, tu peux injecter du bytecode qui correspond a System.out.prinln("virus" ); dans le main
Et ca marchera encore.  




et ca correspond a quoi System.out.prinln("virus" ); en bytecode?
et je doute  serieusement que ce soit aussi simple

Reply

Marsh Posté le 07-03-2002 à 23:44:14    

veryfree a écrit a écrit :

 
et ca correspond a quoi System.out.prinln("virus" ); en bytecode?
et je doute  serieusement que ce soit aussi simple  




 
Pour avoir décompilé un .class, je peux t'assurer qu'après compilation, tout est gardé en dur dans le fichier, y compris les noms de variables. En fait le fichier compilé n'est pas (trop) altéré. Mais il est vrai que je ne suis pas rentré dans les détails. Je dis juste qu'en décompilant on retrouve le source intact !

Reply

Marsh Posté le 08-03-2002 à 00:49:28    

Cherrytree a écrit a écrit :

 
 
Pour avoir décompilé un .class, je peux t'assurer qu'après compilation, tout est gardé en dur dans le fichier, y compris les noms de variables. En fait le fichier compilé n'est pas (trop) altéré. Mais il est vrai que je ne suis pas rentré dans les détails. Je dis juste qu'en décompilant on retrouve le source intact !  




 
oui ca je le sait deja puisque j ai un decompilateur ce que je voulait dire c est qu ecrire dans un fichier .class( sans le deocmpilé donc) ne peu qu alteré celui ci et le rendre inutilisable...

Reply

Marsh Posté le 08-03-2002 à 09:16:40    

Heu mais le bytecode c'est pas comme un sorte d'assembleur pour la JVM? Il suffirait donc d'ajouter les bonnes instructions au bon endroit, non?


---------------
"Colère et intolérance sont les ennemis d'une bonne compréhension." Gandhi
Reply

Marsh Posté le 08-03-2002 à 09:24:18    

bin le but est de le rendre inutilisable. Donc tant mieux si il se crashe entièrement. Mais bon pour l'antivuirus après :)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 08-03-2002 à 11:30:40    

Krueger a écrit a écrit :

Heu mais le bytecode c'est pas comme un sorte d'assembleur pour la JVM? Il suffirait donc d'ajouter les bonnes instructions au bon endroit, non?  




fait un test tu vera que j'ai raison

Reply

Marsh Posté le 08-03-2002 à 20:40:01    

veryfree a écrit a écrit :

 
fait un test tu vera que j'ai raison  




 
Euh j'avais pas lance ca en l'air.
 
J'ai travaille' sur un patcheur de bytecode.
J'injectais du code en debut et fin de methode. et rajouter un System.out.println, c'est vraiment plus simple que ce que je faisais (marquage des attributs prives modifies pour une persistence par attachement transparente dans une base de donnees)
 
Renaud

Reply

Marsh Posté le 08-03-2002 à 21:39:19    

Et doudou, il s'est barré où ?


---------------
Le site de ma maman
Reply

Marsh Posté le 08-03-2002 à 22:52:33    

- Renaud - a écrit a écrit :

 
 
Euh j'avais pas lance ca en l'air.
 
J'ai travaille' sur un patcheur de bytecode.
J'injectais du code en debut et fin de methode. et rajouter un System.out.println, c'est vraiment plus simple que ce que je faisais (marquage des attributs prives modifies pour une persistence par attachement transparente dans une base de donnees)
 
Renaud  




Mais si je t ecoute tu peux permettre a une applet de lire sur le fichier d un client vu que si j ai bien compris en java c'est a la compilation que la securité des applet est géré
jme trompe?

Reply

Marsh Posté le 08-03-2002 à 23:15:12    

veryfree a écrit a écrit :

 
Mais si je t ecoute tu peux permettre a une applet de lire sur le fichier d un client vu que si j ai bien compris en java c'est a la compilation que la securité des applet est géré
jme trompe?  




La je suis septique...
Je n'ai jamais etudie' le probleme, mais si la secu des applet est gere'e a la compil, il suffit de faire de la reflexion pour passer outre ce qui me parait un peu simple..., pas besoin de patcher le bytecode.

Reply

Marsh Posté le 08-03-2002 à 23:34:06    

- Renaud - a écrit a écrit :

 
La je suis septique...
Je n'ai jamais etudie' le probleme, mais si la secu des applet est gere'e a la compil, il suffit de faire de la reflexion pour passer outre ce qui me parait un peu simple..., pas besoin de patcher le bytecode.  




faut que tu en dise plus parce que la t en a pas assez dit

Reply

Marsh Posté le 09-03-2002 à 19:06:58    

J'suis mal là....
 
malgrès mes recherches et mes lectures, je n'arrive à rien...
Genial j'arrive à copier un fichier, à dire hello, et c'est à peu près tout...
 
On me parle de flux d'entré / sortie, de inputstream, de filereader,....de tableaux de byte...mais j'arrive pas à mettre en pratique...
On devient pas developpeur comme çà...
 
 
Personnes n'aurait le code source pour écrire dans un fichier ?
 
Merci de votre aide.
Doudou.

Reply

Marsh Posté le 09-03-2002 à 19:11:13    

veryfree a écrit a écrit :

 
faut que tu en dise plus parce que la t en a pas assez dit  




 
Ce que je veux dire, c'est que je ne pense pas que la securite' des applets soit geree a la compilation. En effet il serait trop facile d'utiliser la reflexion pour executer du code qui n'aura pas ete "directement" compile' mais execute' a la volee.
Et si tu peux passer outre la secu via la reflexion alors tu peux aussi le faire avec injection de bytecode.
 
A mon avis la verification est double:
    - la passe compil permet de verifier que l'utilisateur ne fait pas d'acces disque.
    - a l'execution, la JVM interdit les acces disque pour les applets.
 
en tout cas ca se passe comme ca pour les attributs prives:
    - a la compil une autre classe ne peut y acceder, donc tu ne peut pas compiler
    - a l'execution, si tu as reussi a passer outre la phase de compil (reflexion / ancienne classe pour laquelle l'attibut n'etait pas alors prive), la JVM te jette quand meme.
 
Ai je ete assez clair?
 
Renaud

Reply

Marsh Posté le 10-03-2002 à 01:14:16    

- Renaud - a écrit a écrit :

 
 
Ce que je veux dire, c'est que je ne pense pas que la securite' des applets soit geree a la compilation. En effet il serait trop facile d'utiliser la reflexion pour executer du code qui n'aura pas ete "directement" compile' mais execute' a la volee.
Et si tu peux passer outre la secu via la reflexion alors tu peux aussi le faire avec injection de bytecode.
 
A mon avis la verification est double:
    - la passe compil permet de verifier que l'utilisateur ne fait pas d'acces disque.
    - a l'execution, la JVM interdit les acces disque pour les applets.
 
en tout cas ca se passe comme ca pour les attributs prives:
    - a la compil une autre classe ne peut y acceder, donc tu ne peut pas compiler
    - a l'execution, si tu as reussi a passer outre la phase de compil (reflexion / ancienne classe pour laquelle l'attibut n'etait pas alors prive), la JVM te jette quand meme.
 
Ai je ete assez clair?
 
Renaud  




yes thanx

 

[jfdsdjhfuetppo]--Message édité par veryfree--[/jfdsdjhfuetppo]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed