Amélioration de la connexion & création de module

Discutez de tout, de rien, du nAiO, de Dofus, de Wakfu, etc...

Amélioration de la connexion & création de module

Messagepar Phylonia » 02 Aoû 2017, 23:00

Bonjour à tous, voilà j'aimerais d'abord parler de la création de module, j'ai téléchargé les sources de "connexion" et je n'ai pas compris comment je suis sensé l'utilisé en guise de module ... >_>

Néanmoins, j'aimerais discuter ici des améliorations que je cherche à faire dans la connexion (afin d'accélérer les connexions):


1) Plus besoin de calculer la position de la fenêtre ! On fait juste un Send("{TAB}") au lieux de cliquer sur l'espace pour le pseudo (et plus besoin de Send("^a") vu que tout est sélectionner par défaut). En faite on focus le mot de passe en ouvrant la fenêtre et un tab permet de jouer entre pseudo et mot de passe.

2) Plus besoin de bouger la souris qui prend une éternité à bouger ! Pour changer du pseudo au mot de passe bah ... On Send("{TAB}")

3) On accélère à présent la frappe et sans aucune faute possible même si les ordinateurs lent !
Pour ça on utilise ClipPut(value) (On peut utiliser ClipGet aussi)

Il suffit de ClipPut($value) et Send("^v") et voilà ! Autant pour le pseudo et le mot de passe, n'importe quel longueur prendra autant de temps à faire et pas d'erreur de majuscule (personnellement à 5ms j'ai souvent un "_" au lieux d'un "8").

On peut donc ClipGet l'ancien copier coller dans une variable et le réinstorer après (pas sûr que ça marche pour les images et pour tout)

Ne SURTOUT PAS oublier d'au moins retirer le copier coller après, sait-on jamais. (ClipGet("") par exemple)
En plus les keyloggers mal foutu (comme ceux que font beaucoup de gamin de Dofus) ne pourront pas forcément détecté cela si ils ne prennent pas le copier coller, vu que vous ne tapez plus rien ! :D

Voilà, je me suis inscrit juste pour parler de ça et pour avoir vos idées même si le forum à l'air mort ^^'
Phylonia
 
Messages: 2

Re: Amélioration de la connexion & création de module

Messagepar ZDS » 03 Aoû 2017, 10:51

Bonjour Phylonia,

Le forum n'est pas mort du tout, je dirais qu'en moyenne les soucis remontés par les utilisateurs du nAiO reçoivent de l'aide directe en moins de 48h (plus souvent grâce à Abysse que moi, car en ce moment je suis pas mal pris par mon boulot) ! Je tiens aussi à dire tout de suite que "Le mieux est l'ennemi du bien" et "à vouloir aller trop vite, on se casse bien souvent la gueule". Ça semble hors contexte, mais ça prend tout son sens après mon laius ^^

Sinon, merci pour tes idées et tes retours, je vais essayer d'y répondre et expliquer certains choix qui ont été faits. Mais tout d'abord, je tiens à te signaler que le module Connexion ne fonctionne pas avec le nAiO 2 actuel. C'était un vieux module de la v1 qui n'a plus lieu d'être, la connexion à Dofus faisant partie intégrante du nAiO (c'est le connecteur par défaut). Si tu souhaites créer ton propre connecteur je te conseille plutot de jeter un oeil au code source de CoWakfu [Lien SourceForge] ou directement celui du nAiO à la ligne 6740 [Lien SourceForge]. Il y a aussi le topic sur la création de modules pour le nAiO v2 qui te serait utile [Lien]. Au moins tu partirais sur des bases compatibles avec le fonctionnement actuel.

Voila, maintenant je vais reprendre tes points dans l'ordre, ça sera plus simple :

  • Le fonctionnement que tu vois avec TAB est propre à beaucoup d'ordinateurs, mais pas à tous, notamment sur les ordinateurs fonctionnant encore sous Windows 7 ou sur ma vieille Surface par exemple; si une évolution doit être mise en place, tu comprendras donc qu'il faut qu'elle soit utilisable par tous ou presque, et n’entraîne pas de régression chez les gens pour qui cela marche très bien :)

    Il en est de même pour le Ctrl+A, car la sélection totale automatique dont tu parles en appuyant sur TAB ne s'effectue pas toujours (parfois à cause d'un matériel comme le Logitech G910, ou logiciel comme avec la langue de base de Windows) et pas toujours instantanément (j'ai entre un quart de seconde et une demi-seconde d'écart entre TAB et le full sélect sur ma Surface), ce qui efface le début du login qu'on avait commencé à taper.

  • Pour le TAB passant du champ login au champ password, son utilisation n'a pas été retenue car à moins d'un timeout complètement arbitraire, il arrive que la tabulation envoyée par AutoIt soit prise en compte avant la fin de l'envoi du login, ou plus rarement après le début de l'envoi du mot de passe. Ce qui donne des choses dans le client de jeu comme : login "MonEniri" / mot de passe "psaMonPassword". Ce problème intervient assez souvent sur les ordinateurs peu puissants et étaient assez fréquents pour que l'équipe nAiO décide que le comportement par défaut soit un passage de champ par clic et pas par tabulation, car en intercalant une action souris, on garantit que les deux actions clavier sont traitées de façon séparée.

  • Ce n'est pas un Send qui est utilisé mais un ControlSend. En spécifiant le handle de la fenêtre du client de jeu Dofus, on s'assure que la donnée sera envoyée entièrement à la fenêtre en question (pas d'interception possible dans le cas d'un clic malencontreux dans un bloc-notes). J'en veux pour preuve le script suivant :
    Code: Tout sélectionner
    Local $LOREMIPSUM = _
       "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed d" & _
       "o eiusmod tempor incididunt ut labore et dolore magna aliqua. " & _
       "Ut enim ad minim veniam, quis nostrud exercitation ullamco lab" & _
       "oris nisi ut aliquip ex ea commodo consequat. Duis aute irure " & _
       "dolor in reprehenderit in voluptate velit esse cillum dolore e" & _
       "u fugiat nulla pariatur. Excepteur sint occaecat cupidatat non" & _
       " proident, sunt in culpa qui officia deserunt mollit anim id e" & _
       "st laborum."                                            & @CRLF & _
       "Sed ut perspiciatis unde omnis iste natus error sit voluptatem" & _
       " accusantium doloremque laudantium, totam rem aperiam, eaque i" & _
       "psa quae ab illo inventore veritatis et quasi architecto beata" & _
       "e vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia " & _
       "voluptas sit aspernatur aut odit aut fugit, sed quia consequun" & _
       "tur magni dolores eos qui ratione voluptatem sequi nesciunt. N" & _
       "eque porro quisquam est, qui dolorem ipsum quia dolor sit amet" & _
       ", consectetur, adipisci velit, sed quia non numquam eius modi " & _
       "tempora incidunt ut labore et dolore magnam aliquam quaerat vo" & _
       "luptatem. Ut enim ad minima veniam, quis nostrum exercitatione" & _
       "m ullam corporis suscipit laboriosam, nisi ut aliquid ex ea co" & _
       "mmodi consequatur? Quis autem vel eum iure reprehenderit qui i" & _
       "n ea voluptate velit esse quam nihil molestiae consequatur, ve" & _
       "l illum qui dolorem eum fugiat quo voluptas nulla pariatur?"

    MsgBox(0, "", "Test 1 : Send")
    ; TEST : Ouvrir deux fenêtres bloc-notes, lancer le script.
    ; SUCCESS : Le texte est envoyé dans une fenêtre.
    ; TEST : Cliquer dans le texte de l'autre fenêtre pendant l'exécution.
    ; SUCESS : L'envoi de texte change de destination.
    Local $handle = WinWait("[CLASS:Notepad]", "", 10)
    WinActivate($handle)
    Send($LOREMIPSUM, 1)

    MsgBox(0, "", "Test 2 : ControlSend")
    ; TEST : Ouvrir deux fenêtres bloc-notes, lancer le script.
    ; SUCCESS : Le texte est envoyé dans une fenêtre.
    ; TEST : Cliquer dans le texte de l'autre fenêtre pendant l'exécution.
    ; SUCESS : Le texte reste en cours d'envoi dans la fenêtre de départ.
    Local $handle = WinWait("[CLASS:Notepad]", "", 10)
    ControlSend($handle, "", "Edit1", $LOREMIPSUM, 1)

    Le passage par le presse papier ne peut pas assurer que l'envoi sera effectué dans la fenêtre correspondante. Et même si tu dis que les KeyLoggers mal foutus codés par des gamins ne scrutent pas le copier/coller, il n'en est pas moins vrai que d'autres KL le font (étant ingé en dev et voulant rendre mon projet le plus safe possible, j'en vois pas mal passer). Et de ceux que j'ai pu tester pour éprouver la sécurité dans le projet nAiO, le ControlSend passant sans doute par un autre buffer que le classique du clavier, il n'a pour l'instant pas été intercepté (au grand dam du Send et du Clip).

  • Concernant la vitesse, il y a un paramètre directement accessible dans le nAiO qui permet de le faire, et il y a beaucoup de sujet qui traitent de ce "souci" de bug sur les chiffres dans le login ou le mot de passe. Cela dépend totalement de la machine sur laquelle est exécutée le nAiO et Dofus.
Bref, tu as souvent raison d'évoquer les points dont tu parles, et dans ton cas, cela t'irait sans doute parfaitement. Mais tu n'as pas 100% raison, en tout cas pas pour tout le monde... Moi non plus, mais j'essaye d'atteindre cette couverture maximale en prenant en compte tous les points sensibles que je peux voir. Je reprends donc ce que je disais plus haut, en voulant accélérer le nAiO, cela pourrait bien entraîner des régressions chez des gens pour qui ça fonctionnait nickel jusque là (tout ça pour gagner quelques millisecondes qui ne sont en aucun cas le but voulu du projet).

Par contre, rien ne t’empêche de prendre exemple sur le code source du nAiO, le modifier à ta convenance et le recompiler pour toi ! Tous les outils sont sur le site, et le projet en entier est sous license BY-NC-SA 4.0. N'hésite pas à poster un message dans le "Coin Des Développeurs" [Lien] si tu as besoin de plus d'informations.

Merci de ton retour en tout cas, et à bientôt !
Avatar de l’utilisateur
ZDS
Fondateur [Equipe nAiO]
 
Messages: 517

Re: Amélioration de la connexion & création de module

Messagepar Phylonia » 03 Aoû 2017, 12:52

Bonjour, d'abord merci pour les réponses. Je suis étonné que le tab ne marche pas partout, la fonction je l'utilise depuis windows XP où les sites et les jeux ont commencer à intégré ça, elle marche sur mon pc fixe, la tablette pro à ma copine ou encore le vieux pc portable qui traîne (w7 d'ailleurs) et mon script je ne suis pas seul à l'utilisé ^^'

M'enfin, après tu as l'air de t'y connaître plus que moi, je suis plus codeur pour les jeux (je parles pas de mods minecraft évidemment :lol: ) que les logiciels (même si je passe une formation prochainement pour avoir un niveau pro pour le codage de logiciel, histoire de s'étaler plus sur le domaine).

En tout cas bonne continuation, puis merci pour les sources mais j'ai déjà mon petit script, pas de soucis ! :)
J'irais voir aussi cette fonction magique que les keyloggers ne détectent pas :)
Phylonia
 
Messages: 2


Retourner vers Discussions / Blablazone

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité