Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1292 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Modifier un .class ???

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Modifier un .class ???

n°290183
Blackangel
Merde
Posté le 20-01-2003 à 18:45:57  profilanswer
 

Avec kel logiciel peut on modifier un .class ?? (si C possible)
 
                                      Merci :jap:

mood
Publicité
Posté le 20-01-2003 à 18:45:57  profilanswer
 

n°290184
darklord
You're welcome
Posté le 20-01-2003 à 18:51:52  profilanswer
 

Blackangel a écrit :

Avec kel logiciel peut on modifier un .class ?? (si C possible)
 
                                      Merci :jap:


 
pq tu ne modifies pas la source? ... Et si tu ne l'as pas, ban :o


---------------
Just because you feel good does not make you right
n°290263
Blackangel
Merde
Posté le 20-01-2003 à 20:43:07  profilanswer
 

:sweat:  :cry:  :sweat:

n°290295
Cherrytree
cn=?
Posté le 20-01-2003 à 21:33:41  profilanswer
 

C'est assez difficile, parait-il, mais bon, comme le suggère DarkLord, vois plutôt avec les sources.


---------------
Le site de ma maman
n°290303
Blackangel
Merde
Posté le 20-01-2003 à 21:50:14  profilanswer
 

Mai sinon C possible ?????

n°290311
Cherrytree
cn=?
Posté le 20-01-2003 à 21:56:36  profilanswer
 

Blackangel a écrit :

Mai sinon C possible ?????

Lorsque je faisais de la recherche, j'ai lu des papiers similaires faisant état de ce genre de pratiques... Mais très franchement, tente la décompilation du class en cherchant un freeware sur google, si ça marche pas, lâche l'affaire.
 
En revanche, je t'avertis que tu n'as pas le droit de décompiler à la sauvage. C'est interdit.


---------------
Le site de ma maman
n°290319
--greg--
Posté le 20-01-2003 à 22:09:00  profilanswer
 

Cherrytree a écrit :

Lorsque je faisais de la recherche, j'ai lu des papiers similaires faisant état de ce genre de pratiques... Mais très franchement, tente la décompilation du class en cherchant un freeware sur google, si ça marche pas, lâche l'affaire.
 
En revanche, je t'avertis que tu n'as pas le droit de décompiler à la sauvage. C'est interdit.

:sarcastic:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°290537
tomlameche
Et pourquoi pas ?
Posté le 21-01-2003 à 10:09:45  profilanswer
 

Blackangel a écrit :

Avec kel logiciel peut on modifier un .class ?? (si C possible)
 
                                      Merci :jap:


 
Je recherche aussi une solution et il existe un package completely gratos qui s'appelle BCEL. tu tapes BCEL dans google et le tour est joué (BCEL.JAR)
 
Par contre pour l'utiliser c'est assez hard, je suis dessus depuis 3 heures et j'ai juste réussi à inclure une nouvelle méthode ds une classe. Bon courage

n°290541
lorill
Posté le 21-01-2003 à 10:12:03  profilanswer
 

tomlameche a écrit :


Par contre pour l'utiliser c'est assez hard, je suis dessus depuis 3 heures et j'ai juste réussi à inclure une nouvelle méthode ds une classe. Bon courage


Mmh ca peut m'interesser ca... Depuis le temps que je veux ajouter des méthodes a l'execution... Ca se passe comment ? ca modifie le .class, ou ca rajoute la méthode a l'exécution ?

n°290553
tomlameche
Et pourquoi pas ?
Posté le 21-01-2003 à 10:17:21  profilanswer
 

lorill a écrit :


Mmh ca peut m'interesser ca... Depuis le temps que je veux ajouter des méthodes a l'execution... Ca se passe comment ? ca modifie le .class, ou ca rajoute la méthode a l'exécution ?  


 
Ca rajoute les méthodes à l'éxécution.
 
Il existe aussi 2 autres sources de ce type SERP et (je ne me souviens plus)

mood
Publicité
Posté le 21-01-2003 à 10:17:21  profilanswer
 

n°290804
tomlameche
Et pourquoi pas ?
Posté le 21-01-2003 à 13:50:10  profilanswer
 

lorill a écrit :


Mmh ca peut m'interesser ca... Depuis le temps que je veux ajouter des méthodes a l'execution... Ca se passe comment ? ca modifie le .class, ou ca rajoute la méthode a l'exécution ?  


 
Tu peux aussi réécrire la classe. Je viens de tester et ca marche à merveille.

n°290813
western
AJMM
Posté le 21-01-2003 à 14:00:37  profilanswer
 

jode
j'ai déjà eu l'occasion d'utiliser (un malheureux 'rm -fr * ' au lieu de 'rm -fr *~' et voilà que ...
De plus, une interface graphique c'est cool

n°290866
lorill
Posté le 21-01-2003 à 14:59:09  profilanswer
 

tomlameche a écrit :


Tu peux aussi réécrire la classe. Je viens de tester et ca marche à merveille.


oui mais ca je veux pas faire... Pour rajouter une méthode a String par exemple, je préfère le faire au chargement de l'appli que de modifier une classe du jdk

n°290883
western
AJMM
Posté le 21-01-2003 à 15:06:47  profilanswer
 

Attention, c'est différent et la meilleure solution est écrire une class myString qui hérite de la String de jdk Et donc dans tous tes prog. tu utilise ta classe ... sinon, impossible (mais en plus stupide, très limitée et inutile)

n°290894
lorill
Posté le 21-01-2003 à 15:15:33  profilanswer
 

western a écrit :

Attention, c'est différent et la meilleure solution est écrire une class myString qui hérite de la String de jdk Et donc dans tous tes prog. tu utilise ta classe ... sinon, impossible (mais en plus stupide, très limitée et inutile)


je sais tout ca, merci  :sarcastic:  
 
Mais ce que je veux c'est rajouter des trucs aux types de base. Ce qui est faisable sans problème dans pas mal de langages (ruby, python, smalltalk pour ne citer qu'eux).  
 
L'interet est surement discutable, mais avant le jdk1.4 y'avait pas de split dans String par exemple. Si je veux en faire un, j'ai deux solutions : une méthode de classe qui prends une String en parametre, ou un MyString. Les deux sont moches d'un point de vue objet.
 
C'est justement pour cela qu'ajouter des méthodes au runtime peut m'interesser, mais si ca marche pas tant pis, je me débrouille sans.

n°290946
darklord
You're welcome
Posté le 21-01-2003 à 15:42:30  profilanswer
 

western a écrit :

Attention, c'est différent et la meilleure solution est écrire une class myString qui hérite de la String de jdk


 
String est final pour ton info ...  :sarcastic:


Message édité par darklord le 21-01-2003 à 15:43:42

---------------
Just because you feel good does not make you right
n°290951
lorill
Posté le 21-01-2003 à 15:45:14  profilanswer
 

DarkLord a écrit :


String est final pour ton info ...  :sarcastic:


jamais compris pourquoi non plus... on est obligé d'encapsuler tout ca :/

n°290953
kadreg
profil: Utilisateur
Posté le 21-01-2003 à 15:46:23  profilanswer
 

western a écrit :

Attention, c'est différent et la meilleure solution est écrire une class myString qui hérite de la String de jdk  


 
Ca va être dur, String est finale
 
[:grillaid]


Message édité par kadreg le 21-01-2003 à 15:46:43

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°291011
western
AJMM
Posté le 21-01-2003 à 16:16:49  profilanswer
 

Effectivement, avec final c'est plus dur mais pas on peut ne pas hériter ...

n°291012
kadreg
profil: Utilisateur
Posté le 21-01-2003 à 16:19:19  profilanswer
 

western a écrit :

Effectivement, avec final c'est plus dur mais pas on peut ne pas hériter ...


 
 :heink:


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°291016
lorill
Posté le 21-01-2003 à 16:22:32  profilanswer
 


lorill a écrit :


jamais compris pourquoi non plus... on est obligé d'encapsuler tout ca :/

n°291017
western
AJMM
Posté le 21-01-2003 à 16:25:16  profilanswer
 

un truk bourrin:
 

Code :
  1. public class MyString
  2. {
  3. private String str = new String();
  4. //recopie de tout les fonctions de String ...
  5. public byte [] getBytes(){return str.getBytes();}
  6. public ta_fonction(){}
  7. }


Message édité par western le 21-01-2003 à 16:25:47
n°291019
kadreg
profil: Utilisateur
Posté le 21-01-2003 à 16:27:27  profilanswer
 


 
Oui, je sais ;)
 
Le problème, c'est que dans ce cas, une myString, n'est pas une string. C'est un peu pénible de la passer en paramètre à  
 
File.File(String pathname)  
 
par exemple (oui, toString, je sais).
 
Et ça l'est encore plus d'affecter le résultat de File.getName à une MyString (sauf une static MyString.fromString).  
 
Mais je trouve ça un poil lourd à écrire, j'aimerais éviter de "caster" continuellement ;)


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°291023
lorill
Posté le 21-01-2003 à 16:31:54  profilanswer
 


tout a fait d'accord, c'est bien pour ca que je préfère rajouter réellement la méthode a la classe  [:sinclaire]  
 
 
<pub>d'ailleurs en Lucane ca se fait (presque) sans probleme</pub>

n°291026
western
AJMM
Posté le 21-01-2003 à 16:33:41  profilanswer
 

bah oui c'est penible avec MyString ...
Le problème d'ajouter des fonctions aux sources de JDK est que l'appli n'est plus portable ...

n°291027
kadreg
profil: Utilisateur
Posté le 21-01-2003 à 16:35:22  profilanswer
 

L'avenir est aux langages ayant des structures de données modifiables dynamiquement à l'éxécution. \o/


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°291280
--greg--
Posté le 21-01-2003 à 21:43:13  profilanswer
 

kadreg a écrit :

L'avenir est aux langages ayant des structures de données modifiables dynamiquement à l'éxécution. \o/

python \o/
 
 
(euh en fait jsuis meme pas sur de ce que je dis  :ange: )


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°292585
phenixl
Posté le 23-01-2003 à 15:33:54  profilanswer
 

tomlameche a écrit :


 
Ca rajoute les méthodes à l'éxécution.
 


 
N'importe quoi...  
 
Je m'explique :
 
Hotswap est actuellement une des rares solutions pour modifier des classes a la volee a l'execution (et la seule integree a la VM depuis la JDK 1.4)... Et il se limite au remplacement du bytecode des corps de methodes (donc pas de modifications de signatures, ajouts de methodes)
 
Pour la JDK 1.5 ils prevoient plus mais d'apres ma derniere discussion l'ete dernier avec le responsable de Hotswap, ils n'etaient meme pas sur de continuer a bosser dessus faute de financement (ca a peut etre change depuis).
 
De toute facon le hotswap pose enormement de problemes (c.f. recherche sur le USE.)
 
Sinon BCEL, Javacc, SOOT sont des outils permettant le bytecode rewriting. Apres reecriture tu peux reloader une classe, mais il te faudra enlever toute reference a celle-ci du cache de la VM : c-a-d faire un GC sur le classloader qui a loade la classe. Ca n'a rien d'une modification a l'execution (a chaud).

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Modifier un .class ???

 

Sujets relatifs
Modifier une ligne sur une table MySQL[ASP]Modifier un fichier Word
Modifier la forme curseur....regexp perl, character class
Class de connection MySqlmodifier un text a partir d'un JS (php inside aussi)
y'a t'il moyen de voir le contenu d'un bios et de le modifier?[VC++6]Problème de surdéf de pow avec une class BigInt
Access 97 modifier le contenu d'un champ ...Modifier et sauvegarder un document word ouvert dans un browser
Plus de sujets relatifs à : Modifier un .class ???


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR