begin process at 2010 02 09 22:54:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Sécurité

 > 

comment creer un anti spam ou anti virus avec delphi


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comment creer un anti spam ou anti virus avec delphi

mardi 14 mars 2006 à 20:39:11 | comment creer un anti spam ou anti virus avec delphi

yasoft1

voila je voudrai faire un anti virus pourcela:
-il faudra avoir l'emplacement de  l'executable du virus sur le disque dur (le supprimer)
-avoir la cle de registre du virus (la supprimmer)
voila c'est asser simple pour les virus existant mais un peut long pour entrer tout les caracteritiques des 19 000 virus ressencer par sophos.
voila ex:

if FileExists('c:/bla/blabla.exe') then
label1:='virus blabla trouver';
DeleteFile(c:/bla/blabla.exe');

et sa 19 000 fois
bon mon vraix probleme c'est la recherche de virus camicaze par example un .bat
qui contient:
    
format c:

peut paretre tres dangereux  et doit etre supprimmer  et non pas executer je cherche a empecher cela
lorsque l'utilusateur ouvre un fichier .bat mon programme s'executera et verifira son contenu si il n'est pas dangereus il s'ouvrira
s'il est dangereux il s'ouvrira pas et l'utilisateur sera averti du danger.
 Je sais que il existe une cle de registre qui permet l'orsque l'on ouvre un .bat de ouvrir un autre programme a la place c'est interessent apart que le probleme c'est que le .bat lui meme s'ouvre plus et c'est mon programme qui s'ouvre tout le temps
faudrai trouver une sollution pour que le programme une fois analyser mon programme donne le feux vert et que le bat soit executer.
merci d'avance
mercredi 15 mars 2006 à 06:38:37 | Re : comment creer un anti spam ou anti virus avec delphi

f0xi

Membre Club Administrateur CodeS-SourceS

abandonne!

créer un programme de protection (anti-virus, anti-spy, ect...) requiere de trés nombreuse competences en matiere de systeme et egalement de securitée.

et il y a une grosse difference entre effacer un fichier et kicker un malware.

voici le principe de fonctionement d'un tel programme :

surveillance => detection/analyse => reponse : suppression, blocage, mises en quarantaine => reparation/prevention

voici le niveau de difficultée de chaque partie :

surveillance > expert
detection > expert
analyse > avertis/expert
reponse > avertis/expert
blocage > avertis/expert
suppression > expert
quarantaine > expert
prevention > avertis/expert
reparation > expert

et je ne te parle que du fonctionnement. pas du developpement qui requiere une niveau general expert.

voici maintenant une table de niveau/difficultée ou tu devras te situer pour savoir si oui ou non tu vas pouvoir elaborer un tel programme :


Moi je suis quelque entre ici et la ----------------------+-----+      * comme beaucoup sur delphifr...
                                                         /       \
                                                        V         V
+----------+-------------+------------+-----------+-----------+--------------+-------+--------+-------------+
| neophite |  courageux  |  debutant  |  padawan  |  amateur  |   semi-pro   |  pro  |  jedi  | maitre jedi |
|----------+------+------+------------+-----------+-------+---+--------------+---+---+--------+-------------+
|trés facile->    |facile ->          |intermediaire ->   |difficile/avertis ->  |veteran/expert ->         |
+-----------------+-------------------+-------------------+----------------------+--------------------------+


en toute objectivitée, et sans moquerie aucune, loin de moi cette idée, je pense que, au vus de ta question tu te situe entre Courageux et Debutant (tu moins c'est ce que ta question me laisse penser).
mais c'est deja bien, etre debutant en delphi c'est deja faire preuve de quelque connaissance premiere.
l'evolution est trés trés longue pour atteindre le niveau padawan/amateur ou la tu peu vraiment commencer a faire des programmes concret.




La theorie c'est quand on sait tout, mais que rien ne fonctionne.
La pratique c'est quand tout fonctionne, mais que personne ne sait pourquoi.

mercredi 15 mars 2006 à 09:55:23 | Re : comment creer un anti spam ou anti virus avec delphi

Francky23012301

Membre Club
Salut à toi fOxi a totalement raison : c'est un travail énorme qui necessite une véritable équipe et une connaissance professionnelle en programmation. Meme si tu arrives à faire un tel programme pour qu'il reste efficace tu devras le remettre constamment à jour vu le nombre de nouveaux virus qui arrivent tout les jours. Il existe différentes techniques pour reconnaitre un virus deja connu. Une des technique les plus utilisés est l'analyse de la signature. Je ne sais pas si tu as deja regardé cela de plus pres : le faire manuellement avec un editeur hexadecimal c'est deja tout un art qui ne peut etre realisé que par des gens qui ont deja un sacré niveau. Alors imagine mettre au point un programme capable d'analyser automatiquement une signature : aie aie aie. un site ou on te donne des signatures de virus connus : pas sur que tu en trouves. Bon imagine que tu arrives à faire tout cela. Ensuite il te faut faire un programme connecté 24h sur 24 sur internet pour scruter le web à la recherche de nouveaux virus (il suffit plus de le détecter mais de vérifier qu'il s'agit d'un virus) et ensuite faire une base de données par exemple. Bon je pense que tu as compris la quasi impossibilité pour une personne seule de faire un tel programme meme si tu es un pro. Par contre tu peux faire un firewall : c'est bcp bcp plus simple aussi bien du point de vue du principe que de la programmation.
mercredi 15 mars 2006 à 18:14:07 | Re : comment creer un anti spam ou anti virus avec delphi

rt15

Membre Club Administrateur CodeS-SourceS
J'adore le graphe de fOxi. Je dis pas que faire un vrai antivirus soit facile, mais si la recherche de signature se contente de faire une comparaison octet par octet (Le courageux que je suis irrait voir du côté de TFileStream ou quequechose comme ça), c'est pas insurmontable. Y a moyen de s'amuser un peu. surveillance > un bouton analyse detection > comparaison octet par octet des fichiers et signatures Et pour le reste, un ShowMessage avec le nom du virus et le fichier, y a pas de quoi tuer un padawan. Bon après, si tu commences à entrer dans les virus polymorphes, ceux qui font mumuse dans la base de registre, les macros... T'en a pour jusqu'à la fin de tes jours: ça se développe tout le temps. Pour le lancement du .bat après analyse, peut être qu'un simple ShellExecute avec 'cmd "Chemin.bat"' suffirait. Mais je dis ça avec réserve...
mercredi 15 mars 2006 à 19:57:20 | Re : comment creer un anti spam ou anti virus avec delphi

shining

bon je vois que effectivement yasoft1 est courageux, et c'est une bonne chose car un programmeur fénéant est un mauvais programmeur... maintenant toute la difficulté réside sur plusieurs choses 1 - Avoir une bonne connaissance dans les techniques de lecture/écriture depuis un flux(Stream) TMemoryStream étant le meilleur vu qu'il faut travaillé rapidement. 2 - Savoir également créé sa propre base de données avec le travail en Stream, tout en utilisant un cryptage puisssant, pour d'une part protéger son travail mais également afin d'éviter qu'un software malveillant puisse modifié ta base de données afin de la rendre inutilisable !!!, une bonne connaissance en cryptologie est donc de rigueur !!, notamment pour la signature des virus, soit MD5 maus plus fiable encore le SHA-1.(pour le SHA-1 il existe sur le net une version écrite en asm et donc assez rapide). 3 - Bon là inutile de dire qu'il faille avoir une bonne connaissance de la programmation orienté objet(et je ne parle même pas de polymorphisme voir http://www.commentcamarche.net/poo/polymorp.php3 où pour java mais bon exemple quand même http://mess.genezys.net/polymorphisme), et aussi un multi-threads car il va y en avoir des threads !!! ;) 4 - Maintenant un Anti-Virus, Spyware ne s'arrête pas à scanner les répertoires windows afin de voir si ya un virus ça serait trop facile !!!, la plupart des virus vont modifié la base de registre windows(ah tiens ..), et vont ajouter de nouveaux services, enfin tout les trucs imaginable que peu offrire la base de registre et vu que le noyau de l'OS réside en partie dans cette base de registre bah ma foi il existe beaucoup de manip pour ces virus, sachant que bien souvent il vont s'attaquer au webbrowser(ici on parle de BHO Browser Helper Object pour plus d'info voir http://assiste.free.fr/p/internet_attaques/bho.php), mais le plus dangereux est tout ce qui ce rapporte aux ActiveX. 5 - très bien jusque là on est censé avoir franchit tous ces obstacles avec succès encore faut-il avoir une base de données pour effectué la recherche, et là ya problème car il ya près de 36149 malware au moment que j'écris cette ce post, comment faire ?, bah c'est le grand problème car a moins d'avoir soit une équipe pour bosser que sur la base de données, soit avoir de bon rapport avec un labo anti-virus et leur demander un accès à celle-ci afin de la convertir(bon là faut pas rêver car généralement ce genre de données c'est payant vu qu'ils passent des heures ....) Enfin bref si on est vraiment motivé ya possibilité de le faire(avec un peu d'aide par-ci par-là, avec bien entendu toutes les compétances décrites plus haut. Donc bon courage !!! :) pour info supplémentaire : - http://assiste.free.fr/p/ <== ya une explication sur qu'est-ce qu'un trojan, spyware ect... - http://www3.ca.com/securityadvisor/pest/ <=== un des meilleurs site sur les virus mis à jour régulierment - http://www3.ca.com/securityadvisor/pest/browse.aspx?cat=Hijacker <=== toujours le même site avec cette fois-ci pratiquement tous les malwares connus dans le monde avec en prime les clés de la base de registre windows + liste des fichiers contenus dans le repertoire windows :) en réalité le plus dure c'est la base de données il ya beaucoup trop de données.. et tout en sachant que presque chaque semaine c'est près de 20 malwares à rajouter à la liste tout en prenant en compte que chaque virus peut avoir plus de 10 fichiers et clés de la base de registre, et là je ne parle même pas des ver qui on la possibilité de se multiplié à l'infini avec une auto génération des clés(aléatoire). voilà ça sera tout, en tout cas ne te laisse pas décourager c'est comme ça qu'on progresse dans la vie après tout, toujours se lancé des défis ;) où sinon ya TSpywareScanner chez http://www.qwertystudios.com/index.php?name=product&product=tspyware-scanner qui fait : Spyware; Adware; BHOs (Browser Helper Objects); Trojans; Trackware; Dialers; Keyloggers. mais c'est payant(évidemment puisque le domaine de la sécurité a toujours été un bon profit pour les developpeurs et je m'abstient de lancer une paul & Myck sur ce sujet qu'au moins 35% des virus proviennent de chez des sociétés anti-virus, d'ailleur qui n'a jamais eu l'écran qui se fige pendant un court instant puis une icone sur la barre de tache avec le message(ironique) "salut je suis ton super sauveur je vais effacer tous les virus présent sur ton ordis, oulala il ya un sacré paquet disdonc(normal puisque sans le savoir je viens de te télécharger quelques centaine de virus à l'insu de ton plein gré) Shining Freeeman.
mercredi 15 mars 2006 à 20:31:42 | Re : comment creer un anti spam ou anti virus avec delphi

Francky23012301

Membre Club
Sincèrement tu es mal barré dans ton projet : Tu veux juste comparer les bits ?. Bien tu vois moi je vais sur CS et je peux trouver l'open source d'un virus tres connu. Je le compile : tu l'analyses ok. tu mets tous les octets dans une base de données (qui va donc en plus etre énorme ok). *Dans 15 jours je recompile le meme virus : ton antivirus ne le detectera pas. Pk ?rien qu'un changement de date au niveau de la compilation va changer une partie des octets et donc ca collera plus avec ta base de données. *Encore plus fort : je dissimile mon virus dans une photo par un binder. TOn antivirus vera que dalle : pk ? car il connait pas la photo n'est pas dans ta base de données. Je parle meme pas du fait qu'il va falloir que tu es une idée de limpacte de la photo sur le virus au niveau des octets. Tu reves trop mais bon essaye toujours.
jeudi 16 mars 2006 à 02:12:57 | Re : comment creer un anti spam ou anti virus avec delphi

f0xi

Membre Club Administrateur CodeS-SourceS


Moi je dirais, essaye tout de meme, au moins pour la technique cela peut etre trés enrichissant et a le merite d'etre trés original.

mais ne part pas du principe que tu reussiras tout tout de suite... y'a de grande chance pour que les 50 premieres heures de developpement soit un veritable enfer ...

Pour detecter un virus, on ne cherche pas quelques bits ou bytes comme cela ... y'a une methode a respectée, en sachant qu'une analyse de virus est entourée de multiple controls et tout cela doit aller trés trés trés vite (- de 2 secondes).

Et il ne sagit pas que de tester un exe, mais bel et bien tout les appels transmis par l'executable (autres executables, dll, driver, ressources, fichiers ect...)

selon le virus ensuite, il va y avoir plusieur methode de suppression, de bloquage. On ne vois pas tout cela quand on regarde ce que fait un anti-virus (avast, nod32, ect...) mais il y a bien a chaque cas une methode appropriée.
on ne peu pas supprimer un virus de boot comme un virus de bios ou un process chargé en critical.

il faut pour cela bien connaitre le systeme Windows, le systeme de fichier NTFS/FAT et bien entendus intercepter les flux d'execution du systeme pour donner une aprobation de lancement du fichier ou non.
bien sur, il faut l'intercepter bien avant que le gestionnaire de fichier du systeme ne l'intercepte.

de plus il faudrat aussi prevoir le coup de l'attaque multiple, il faudrat savoir aussi proteger en prioritée le noyau systeme (et ses fichiers) et verifier leurs integritée aprés une attaque (registre, config, pilotes).

cela vas demander de trés bonne notion en processus, thread, stream, messages et bien entendus, assembleur ...
car ne crois pas qu'on developpe un anti-virus en pur Delphi (c'est trop lourd) et tout les systemes d'analyse, de reponse et critique devront etre developper en assembleur (tout ou en partis).

si on prend l'exemple d'avast, tu doit faire un logiciel capable de bloquer 5..20 attaques en moins d'une seconde sans que les performances du systeme en sois degradée a plus de 50% (en gros le systeme doit toujours repondre de maniere fluide ou presque).

maintenant, coté base de signature, un AV ne se base pas que sur cela. Il sctrute egalement l'activitée des process. Beaucoup de virus se connecte a des DLL bien precise (netbios, reseaux, protocol tcpip, mail), lance d'autre process precis (ftp, telnet, commandes registre) et se connecte a des ports precis (21,25,80,8080,125,135,136,137,138,139,445,5000,666 ect...), le process tante de lancer des processus en mode critique, ou tante de se cacher en se relancant en tant que service ou pilote systeme.

Selon cette activité, une probabilitée definit un niveau de danger du processus qui vas donc definir la prioritée de surveillance de ce process.
Et a partir d'un seuil critique selon le degré d'analyse (bas..haut) de l'anti-virus, il vas pouvoir repondre seul ou demander a l'utilisateur (ou au moins le previnir) de cette douteuse activitée en lui demandant que faire : bloquer, mettre en quarantaine, supprimer, soumettre au service d'analyse de virus des concepteurs du logiciel, ne rien faire, mettre en liste blanche, mettre en liste noire (ne bloque pas mais surveille en permanance et reprevient l'utilisateur a chaque fois que l'activitée redeviens douteuse).

Il y a des virus trés simple a identifier, sans meme analyser la signature, voici tout ce que j'ai pus constater a peu prés sur tout les virus que j'ai pus tester depuis le temps (+ de 100), a chaque fois j'ai pus verifier plusieurs point comuns decrit ici:

-connection HTTP existante, navigateur ouvert et activitée de navigation sur le web en cours.
-installation automatique d'un executable (merci s*l*perie de IE, utilisez FireFox!)
-lancement de l'executable installé
-lancement de Telnet.exe ou Ftp.exe ou Ftpx.exe
-connection/activitée sur port 20, 21, 23, 25, 69, 80, 107, 109, 110, 119, 123, 135, 137, 138, 139, 443, 445, 555.... et pour ne citer que les plus courrants.
-telechargement de fichier dans c:\windows, c:\windows\system32, c:\windows\system32\drivers
-chargement de processus en mode critique, service, pilotes
-modification du fichier c:\windows\system32\drivers\etc\Hosts.
-envois massif de mails, requette netbios massive, chargement de page html, lancement de script JS et WS ect..
-blocage de processus et commande/executable systeme (cmd, taskmgr, msconfig, regedit, explorer, fichier MMC, CPL)


voila bon courage!





lundi 26 mai 2008 à 13:11:28 | Re : comment creer un anti spam ou anti virus avec delphi

SniXa

Courage Man tout est possible.. et on est toujour les gagnants
jeudi 29 janvier 2009 à 21:23:57 | Re : comment creer un anti spam ou anti virus avec delphi

amrouche015

voila c'est vrai que programmer un antivirus est un collosale et requiert beaucoups de competences et de maitrise. mais j'aimerais quand méme vous voir repondre a la question posée par notre ami yasoft1. comment bloquer l'execution d'un fichier .bat et ensuite l'autoriser a s'executer sur certaines condition?

je souhaite avoir une reponse a cette question

merci d'avance

vendredi 30 janvier 2009 à 09:19:03 | Re : comment creer un anti spam ou anti virus avec delphi

rt15

Membre Club Administrateur CodeS-SourceS
J'imagine que faire un hook d'API de CreateProcess, ShellExecute, ou encore un hook du service système NtCreateProcess devrait convenir. Hook d'API en user mode.

Pour hooker NtCreateProces, le mieux est de faire un driver j'imagine.

1 2

Cette discussion est classée dans : ouvre, programme, bat, virus, anti


Répondre à ce message

Sujets en rapport avec ce message

URGENT !!! : Attendre l'achèvement d'un programme avant de lancer d'autres instructions [ par ni69 ] Le plus simple écolier sait maintenant des vérités pour lesquelles Archimède eut sacrifié sa vie... <br mini-programme virus [ par jiluce ] je veut faire un sinple programme virs sous delphi 5Expemle: ue fenêtre avec un boutton quand l'utilisateur veut clicker sur le le boutton la fanêtre Lancer un programme et l'arréter [ par NetCyrille ] Bonjour,Je cherche à savoir comment faire pour lancer un programme(ca c'est plus ou moins Ok) mais surtout l'arréter à un moment précis (date & heure Savoir si une appli est entrain de fonctionner. [ par jmp77 ] Hello à tous et toutes,Voila je voudrais savoir par exemple si le programme essai.exe est entrain de tourner sur mon pc. Je voudrais reproduire un esp encore moi (traduction) [ par thone08 ] excuser moi encore,..je voulais juste savoir comment je pouvais faire pour cacher la fenetre que j'ouvre par la commandeShellExecute(GetDesktopWindow, Instance d'un programme en mémoire [ par hdursefa ] Bonjour,Je cherche un bout de code permettant de savoir en 16 bits si un programme est lancé sous windows Création d'une GUI [ par manu00 ] Salut tout le monde,je suis debutant et j'ai une question a poser.J'aimerai créer une interface pour un programme DOS (en mode console).Le probleme c' pb d'execution du programme [ par drew00 ] je travaille actuellement sur une version d'evaluation de delphi.j'ai essayé d'executer mon programme depuis une machine ou le logiciel n'est pas inst edition de fichier .bat [ par alaintroll ] Voila le prob.Je boss sous flash et j essaye avec un bouton d'éxécuter un ficher autocad (qu'il m'ouvre autocad et le fichier corrspondant automatique terminer l'exécution d'un programme [ par manudel ] Comment déclencher une exception dans une procédure, pour terminer l'exécution d'un programme ?


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,777 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales