U-Lyss 2.0 : Bot-Irc open source

Je savais pas trop ou mettre le post, alors je le mets ici dans l’antre des coders.

Il y a 1 mois, je commence le developpement d’un bot IRC pour mes besoins personnels, car je n’arrivais pas a me servir de se satané eggdrop sous Windows™, alors que sous linux je n’avais aucun probleme. Du coup je me suis mis a developper mon propre bot dans un language qui m’est cher : le Visual Basic.net®
Apres plusieurs jours, les questions autour du bot affluent : -“il est bien ton bot, c’est quoi comme script eggdrop que tu utilise ?”  -“Nan c’est pas eggdrop, c’est bot que j’ai programmé pour gerer le chan.” -“Chouette ça,tu peux me le passer pour que je teste ?” “Ouais si tu veux fais gaffe c’est un nids a bugs et pour l’instant il est beta-continuelle”.
Puis une nuit je reve que le bot a un succes enorme comme le sus-dit eggdrop,avec son petit site sur source-forge. Que je suis heureux et celebre et que tout le monde est content. La grosse utopie que l’on ne peut voir que dans ces reves les plus fous.
Pourquoi je vous raconte ma vie comme ça ? Bah parceque j’ai recodé entierement le bot, que c’est plus un nid a bugs et qu’il est devenu reelement pratique pour moi, donc il a pas mal de chance de le devenir pour vous aussi, amis windoziens. (ça se dit ?)

La chose est developpée en VisualBasic.net, donc il necessite que le Framework.net soit installé sur votre machine pour executer la chose. Glop apreciera, d’autres moins.
Le bot est configuré grâce a un fichier ini, beaucoup aprecieront.
Donc je suis tres heureux de vous presenter U-Lyss 2.0 (qui a dit "nom tout pourri ? Moi j’aime et si sa vous plait pas, zavez qu’a pas l’utiliser, pouet ! ).
Evidement la chose est open-source sous license GPL (qui a dit “Gaz-De-Petrole-Liquide” ? - Nan j’arrete avec mes blagues toutes nazes.)

Sinon pourquoi je le post ici ? Car ici on est entre geeks et generalement on aime bien tester les petits softs programmés par ces petits copains et donner des avis objectifs sur le sujet (en tout cas moi j’aime).
Le projet etant open source, je cherche aussi de gentils coders avec des idées plein la tete pour de  belles fonctions toutes belles, pour m’aider dans la difficile tache qu’est devenue la mienne : faire un bot pratique pour vous et moi et facile a utiliser et a configurer. Et simple a comprendre dans son fontionnement global de façon a permettre a la plus grande masse de developpeurs (c’est pour ça que je ne l’ai pas developpé en C++, un language qui m’est pourtant cher aussi).

DONC, je suis ouvert a tous commentaires objectifs (ou non), a toutes vos idées de fonctions a rajouter sur ledit bot. A tout coder que mon petit projet motive. Et euh… Bon en fait je suis ouvert a tout, SAUF les tomates et tout autre fruit sur la tete.

mailto:le.k@laposte.net si vous avez besoin

Le framework.net 1.1 se telecharge ici : http://download.microsoft.com/download/e/d…21/dotnetfx.exe

Et U-Lyss se telecharge ici, avec son code source : Voir Dernier post

Ne soyez pas rebuté par le nom de l’archive, c’est juste que j’ai beaucoup eu de mal pour lui trouver un nom coherant, car, la version ici disponible n’est pas une vraie version beta, car elle est stable, mais disons qu’elle n’est pas dans sa version finale voila tout…
Merci a vous tous ! Desolé pour les “eventuelles” fautes d’ortografe qui anteraient cette page…

 

Ce message a été édité par Le_K le 05/01/2004

tu aurai pu appeller ca une RC (release candidat) alors

Ah cool, c’est bien vrai ça que eggdrop est un gros lourd sous windows !
M’en vais te le tester, j’éditerais plus tard (si j’oublie pas)
Honnêtement, la config’ est rapide et pratique (I_love_ini), le mode de communication classique mais assez simple, bref, que du bonheur… Continue de le faire évoluer, il a du potentiel le petit.
Ce message a été édité par Kawa_Master le 03/01/2004

Bah merci beaucoup pour tes compliments, et merci aux quelques uns qui ont testé le bot hier soir. Comme je vous l’ai dit, si il y a des coders interressés qu’il me fassent parvenir leurs idées. Ou leur code ici !
Ah ouais sinon, a chaque nouvelle build que je fais je met ça sur le forum.

Ce message a été édité par Le_K le 04/01/2004

Un autre truc que je voulais savoir… N’ayant aucune expérience en dev, 'voulais savoir si c’était possible de mettre un système de scripts assez simple à gérer, un peu comme pour les .tcl de l’eggdrop… Un peu comme dans mIRC, quoi, en fait. Voili voilou.
Bonne chance pour la suite du dev

J’en ai discutté justement avec Bishop ce matin, sa peut l’etre, si le framework integre directement une bliblioteque d’interpretation du Perl, ou sa peut etre tres tres dur (surout si je suis seul a developper), si cette biblioteque d’interpretation n’existe pas, car il faudrai deja que je la crée. Et vu le monstre qu’est Perl, je suis pas arrivé.
Et pour creer un syteme de scripts proprietaires il faut aussi etre plusieurs a dev sinon c’est mission impossible.

Ce message a été édité par Le_K le 05/01/2004

Coucou tout le monde, le petit soft deviendra grand ! Au menu du jour :

  • Correction DU bug majeur (en fait, le seul bug que j’ai trouvé  : le bot avait tendance a s’endormir, il fallait parfois repeter une deuxieme fois une commande pour qu’il reponde. C’est un present corrigé, le bug etait en fait du au fait que j’avais oublié de mettre le signal de fin de commande a chaque de reply ping.

  • Ajout des commandes !(de)op  /!(de)voice  /!(de)halfop  /!kick  

  • Ajout d’un autre truc aussi, mais je me souviens plus , faites un !help sur irc et voyez par vous meme, la j’ai un trou de memoire…

  • Correction de petits bugs mineurs (mais vous n’etiez pas concernés, je n’ai pas posté cette version).

Voila donc, je vous promet que tres bientot je vous taperai une doc complete, car comme eggdrop, le soft devient monstrueux et poscede deja pas mal de fonctions “cachées”.

La chose se telecharge ici, toujours avec son code source, mais c’est deja moins gros que la derniere fois, j’ai rajouté le Winsock.ocx qu’il manquait a certains aussi.

http://moonphad.free.fr/ulyss/U-Lyss%202.0%20RC0-1.rar

Prochainement a l’affiche :
- Le Botnet : possibilité d’echange de fichier de config entre les bots.

  • Meilleure reaction a la deconnection intenpestive du server (deco des 24H chez mamadoo).
  • Blacklist : liste de nicks ne pouvant se logger en tant qu’admin
  • Une option pour afficher ou non les message d’erreur sur le channel

Edit : Ortho - Precision -

Ce message a été édité par Le_K le 05/01/2004

Apparement, pas mal de monde avait des problemes pour executer le soft, a cause des dependances; je vous ai fait un programme d’installation integrant les sources, le programme et les fichiers de dependance, maitenant sa doit marcher chez tout le monde !

http://moonphad.free.fr/ulyss/Install%20U-…2.0%20RC0-1.rar

Testé et approuvé

Une bien belle beta pour l’instant, puisqu’il ne reste qu’un poil de documentation et quelques menus détails à peaufiner.

Passer du TCL au VB.net ne devrait pas être trop douloureux, et c’est sans aucun doute profitable à ceux qui n’ont pas connu les affres de la découverte d’eggdrop.

  1. L’installation est très propre : le développeur montre des prédispositions aussi bien pour le code que pour le graphisme.

  2. Une fois installé, ça respire le sérieux : une belle icône dans le tray pour accéder à une fort pratique fenêtre de Status, et une autre sur le butreau.

Bon un bot c’est pas fait pour être hébergé sur un poste d’utilisateur, mais c’est le genre de projet qui pourrait avoir du succès, c’est du GPL, le codeur est à la cool, aidons-le !

Y’a cette commande publique qui permet d’avoir l’IP du bot qui me gène un peu (hum).

Bonne continuation

[quote]Y’a cette commande publique qui permet d’avoir l’IP du bot qui me gène un peu (hum).[/quote]dtf sur IRC suffit de faire /dns pour avoir l’ip de qqun donc …

Bien, c’est noté, je vais ajouter une option pour qu’elle apparaisse seulement si dans le ini, c’est marqué qu’on peut.
Sinon Staz tu as raison, mais certains servers mettent un mode +x a l’utilisateur, qui fait que son adresse ip n’est pas affichée si on fait un dns. (Pour eviter le hack) C’est pour ces servers la que j’ai mis l’axx a l’ip, si les gens veulent se servir du bot uniquement pour faire une presence sur irc, avec un logitiel server kelkonque derriere (HTTP/FTP/and more…), si l’ip n’est pas fixe sa peut etre pratique.

Ce message a été édité par Le_K le 06/01/2004

[quote]J’en ai discutté justement avec Bishop ce matin, sa peut l’etre, si le framework integre directement une bliblioteque d’interpretation du Perl, ou sa peut etre tres tres dur (surout si je suis seul a developper), si cette biblioteque d’interpretation n’existe pas, car il faudrai deja que je la crée. Et vu le monstre qu’est Perl, je suis pas arrivé.
Et pour creer un syteme de scripts proprietaires il faut aussi etre plusieurs a dev sinon c’est mission impossible.

Ce message a été édité par Le_K le 05/01/2004[/quote]Bon, pour ce qui est des scripts, je sais pas trop…
Par contre, il est relativement simple de charger dynamiquement des objets depuis des librairies de classes, et créer ainsi un systeme de plugins.
Tu fournis un modèle, le compilo est livré avec le sdk… c’est un peu moins “ouvert”, qu’un scripting “a la mirc”, mais ca reste très puissant, et c’est plus efficace.

[quote][quote]Y’a cette commande publique qui permet d’avoir l’IP du bot qui me gène un peu (hum).[/quote]dtf sur IRC suffit de faire /dns pour avoir l’ip de qqun donc …[/quote]Paye ton Jedi …

Et sur un serveur avec des +x … on a pas forcément envie que les visiteurs sachent où est le bot.

Un bot généralement ça ne s’installe pas chez soi, plutôt chez des inconnus. Et on a pas envie que d’autres apprennent à les connaître.

Ce message a été édité par MoUeTToS le 06/01/2004

[quote]Bon, pour ce qui est des scripts, je sais pas trop…
Par contre, il est relativement simple de charger dynamiquement des objets depuis des librairies de classes, et créer ainsi un systeme de plugins.
Tu fournis un modèle, le compilo est livré avec le sdk… c’est un peu moins “ouvert”, qu’un scripting “a la mirc”, mais ca reste très puissant, et c’est plus efficace.

Vu comme ça ton systeme parrait relativement simple, mais a mon niveau deux problemes se posent, comment dire au prog, dynamiquement d'aller chercher ses librairies (si elles ne sont pas integrées directement au code principal), il faut bien qu'il aille les chercher quelque part, et d'autre part comment si ces fonction speciales necessitent une commande sur IRC, sont elles detectées, dans l'etat actuel du bot, a chaque nouvelle DLL, il faudrai ajouter les entrée/sorties directement dans le code du bot, a l'interrieur de la methode AnalyseReceive. En gros, je ne sais pas faire quoi... Perso, ce que j'avais prevu ( et c'est ce qui se passe actuellement), j'ai fait une classe, facile d'acces "ClsAddedFunctions", qui vous permette d'ajouter facilement vos ptits trucs, vous compilez le soft avec votre code et le tour est joué, c'est vrai que se systeme de plugin serait classieux, la joie, le SDK comme trillian. Mais je sais pas faire... En gros, si tu as vu du code VB.net (ou VB), de qqn qui utilise un systeme de plugin de ce type je prends tres volontiers, car c'est clair, que du point de vu de ce type de programmation, j'ai jamais fait. Ou si tu sais faire, bienvenue a toi !

Merci de ta suggestion

Ce message a été édité par Le_K le 06/01/2004

Petit soft deviendra grand !
Well, j’ai encore avancé dans le developpement du soft, il y a quelques nouveautes, que j’avais promises et qui mont ete suggérée sur le chan.
Modifications :

  • Ajout d'une fonction permettant d'affciher ou non, l'ip du bot sur un utilisateur la demande
  • Ajout du systeme de Blacklist au bot (liste des utilisateurs n'eyant pas le droit de se logger en tant q'administrateur sur le bot)
  • Modifiquations du prog d'installation (Lanceur de MSI)
J'aurais pu poster cette nouvelle version se soir, mais je voudrais la fournir avec une documentation, car le soft reste simple a l'utilisation mais il y a des trucs pratiques qui sont implementés (genre la gestion de la couleur, le perform buffer et la signification de certaines clés du ini au nom alambiqu&#233[img]style_emoticons/<#EMO_DIR#>/wink.gif[/img], dont on peut se servir mais si on ne sait pas comment... Donc une bonne doc est indispensable, et vous ne vous servirez du bot que mieux ! C'est pour ça que la Build du Jour ne sera pas posté sur Cafzone (qui est encore le seul endroit sur la toile ou vous pouvez obtenir des infos et telecharger le soft pour l'instant, petits veinards). La doc est en cours de redaction, par moi et le nouveau de la bande : MoUeTToS ). A present nous somme deux !

J’ai vu avec plaisir que le post avait ete lu 422 fois, sa fait plaisir, sa motive aussi. Mais pourquoi pas 422 replys, la sa motiverai encore plus. Pi j’aimerais bien savoir ce que vous pensez du soft et vos idées quoi . C’est pas long a ecrire, ne serais-ce qu’un petit mot gentil )

Alors donc, prochaine Build, demain ou apres demain, avec des nouveautés et une documentation pratique pour vous !

Nous cherchons (MoUeTToS et moi), toujours des developpeurs !

Ah oui, j’oubliais, comme a chaque fois. Et depuis le debut, je suis a votre disposition sur le chan #cafzone, pour tout probleme technique, renseignement ou autre.

Bon, bah ca progresse, ca progresse, saibon [img]style_emoticons/<#EMO_DIR#>/smile.gif[/img][/quote][i]Ce message a été édité par Kawa_Master le 09/01/2004[/i]

Bien je prend bonne note de se bug et je vais tacher de le regler .

EDIT : Voila c’est reglé, a present ça marche, j’ai recodé completement la partie ErreurServer.

Ce message a été édité par Le_K le 09/01/2004

Il est tres facile de charger des dlls a la volee. Le schema de base c’est le suivant:

  1. t’as une interface ou une classe de base dont les personne implementant le plug in doivent heriter/implementer. Attention c’est la que le design doit etre malin.
  2. la dll en question implemente/herite de la classe en question, tu utilise la reflection pour la charger, et hop tu appelles les methodes definies dans la classe de base ou dans l’interface

Pouf un systeme de plug in en 3 coups (2) de cuillere a pot…

Bonne initiative de faire un bot pour Windows, même si je reste partisan d’eggdrop (crossplatform, c’est toujours pratique pour un botnet).

Concernant les plugin, comme le dit GloP, ça se fait facilement, ce n’est qu’une histoire de quelques appels bien placés pour charger la DLL et instancier la classe contenue. Les détails se trouvent probablement dans un SDK et/ou documentation fournie avec le compilo.

Sinon je voulais en fait insister sur le fait de bien concevoir l’interface de ses plugins, parce que sinon il faudra la faire évoluer plus souvent que nécessaire, ce qui a tendance a casser la compatibilité des plugins, ce qui est somme toute très dommage.

L’idée générale est de garder un système le plus simple possible, et surtout le plus générique : éviter les méthodes genre “KickUnePersonne” suivie plus tard par la mise à jour, “KickUnePersonneBannie” et du fork “KickPleinDePersonnes”. Autant faire directement une méthode “Kick” qui prennent des arguments “intelligents”. Voire même mieux, faire juste un système de message entrant/sortant pour communiquer entre le plug-in et le bot. Comme ça les messages peuvent être ajoutés sans casser la compatibilité, il suffit alors de rajouter un “testeur” de message : ce message est-il supporté par le plug-in ?

C’est grosso modo la philosophie des plugin VST de Steinberg, qui sont devenus l’un des standards des plug-in pour application sonore (type Cubase, Renoise & co), parce que le système est simple et robuste. Voili voila.