IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

Quelques instructions dangereuses en Assembleur


Sujet :

Assembleur

  1. #21
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 38
    Points : 43
    Points
    43
    Par défaut
    moi et lui avons l'idée de créer un émulateur PC
    Bonne chance, je te conseille cependant de reprendre un projet existant genre Boch.

    nous ferons du reverse engenering pour avoir le code assembleur du programme à scanner
    Encore bonne chance.
    Pour avoir ecris un debut de dessambleur il y a un peu de temps, je peux te dire qu'avoir une base de donnees d'opcode n'est pas suffisant. En fait les plupart des opcodes agissent comme des fonctions, ils ont des parametres qui peuvent varier : taille et operandes.
    Rien que cette partie peut prendre du temps


    Ensuite, je ne pense pas que votre idee soit la bonne, il implique quelques suppositions :
    - Que les virus doivent agir automatiquement (si un virus ne se declenche que lorsque l'utilisateur clique sur un bouton, ton emulateur ne declenchera jamais le virus)
    - QUe le code soit deja "codé". CAD que le code est suppose non-modifiable, ce qui est faux et que beaucoup de virus font.
    En clair, je ne pense pas que ce soit la bonne solution

    De plus, l'emulation de chaque programme prend enormemement de temps. Combien d'utilisateur veulent attendre aussi longtemps pour le scan d'un programme ?
    Mais bon, l'idee est a creuser

  2. #22
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 225
    Points : 113
    Points
    113
    Par défaut
    Mais VirusKeeper ( ou un nom similaire ) a la technologie SandBox qui consiste à executer le programme à scanner dans une machine virtuelle et de vérifier son comportement , alors il intégre un émulateur PC integré , mais si vous avez une autre idée , donnez-la avant que nous nous lançons dans l'émulateur .

    Merci beaucoup d'avance pour toute réponse .

  3. #23
    Inactif
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Points : 160
    Points
    160
    Par défaut
    Une petite précision sur le reverse engenering :


    http://www.rosasm.org/ tu trouveras là l'outil idéal pour dé-assembler ré-assembler les bouts de codes à analyser mais aussi toutes les bases pour le tests des différents opcodes. (puisque RosAsm est OpenSource et auto-compilé...)


    De plus sur http://www.quanta-it.com/RosForum/ une discussion sur l'autoprotection du code est relativement avancée et devrait t'aider dans votre réflexion.
    Betov a proposé un système simple pour mettre en évidence une piste qui peut servir de base à une protection du code.


    voili voilo @+

  4. #24
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 70
    Points : 92
    Points
    92
    Par défaut
    Prendre des bouts de code me parait bien inutile, parce que déjà aller écrire dans la MBR, il existe des milliers de possiblilités, devenu compliquer avec Windows, et ça ne se fait plus en quelques lignes, (en NTFS elle est déjà backupée à un autre endroit du disque). Finallement ça reviendrait par exemple à chercher le chiffre 4, alors qu'on peut l'ecrire 2+2,3+1, ... tu vas faire comment analyser tout le fichier pour calculer les resultats des registres avant les appels, ce qui reviendrait à le débugger, à mon sens à ce jour aucun produit ne le fait, vu l'impossiblité de la chose.

    Si tu veux des signatures, regarde les bases des produits commerciaux, elles sont énormes (grossies surement au fur et à mesure des recherches mais aussi des rachats et des échanges) ce qui porte ce genre de produit hors de porté des particuliers.

    Et puis après comment faire les mises à jours (les gros ténors du marché ont des équipes entières d'ingénieurs qui débuggent tout les fichiers infectés pour en sortir une signature valable (cad dire qui ne signalera pas un fichier sain infecté), virus qu'un gamin de 16 ans aura modifié 6 mois plus tard (mais ça, ça les arranges plutot bien à mon avis)). A 3 vous allez pouvoir suivre le rythme, là où il y a plusieurs centaines de virus qui sorte par an ? (surtout qu'il faut encore se procurérer des fichiers infectés) Si vous mettez 1 mois pour trouver la signature d'1 virus quel intérêt ?

    Comme cela était déjà dit, un virus reste spécifique à un système, multi-platerforme ça représente quoi ? Mac / Window / Linux / Unix / FreeBSD, etc... (j'ai volontairement omis l'AS400 lol) ? je doute que vous puissiez rassembler toutes les compétences sur ces plateformes à 3.

    Enfin je voudrais pas vous démoraliser mais bon, concentrez vous déjà sur un OS, faites naître une communauté active autour de votre projet et ça aura une chance de marcher, mais ne visez pas trop haut pour commencer (parce que personne ne s'intéressera à votre projet et que vous finirez par vous démoraliser vous même) mais bon je donne juste mon opinion.

  5. #25
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Les bons vieux virus ça n'est plus vraiment d'actualité. Il est assez facile de détecter lorsqu'un executable est modifié, ce qui n'est pas une opération courante.

    Les fragments de code infectieux (Nom donné par l'acadmie pour Virus) n'en sont plus vraiment à cette idée qu'on avait : Un virus utilise les cellules pour se reproduire, les virus informatiques font de même avec les exécutables. Les attaques désormais utilisent très majoritairement des failles dans les systèmes, et sont donc spécifiques aux systèmes, voir spécifiques aux logiciels. La dernière fois que j'ai vu un virus du premier type, c'était un virus qui datait de 1992.

    Il y a une confusion, je crois, sur la notion de multi plateforme. Vous pouvez écrire un anti-virus multi plateforme, simplement parce que dans chaque version que vous créerez, vous n'êtes pas tenu d'y mettre les même choses. Une version windows qui s'attaque aux failles de windows, etc.

  6. #26
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 225
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par Blustuff
    Vous pouvez écrire un anti-virus multi plateforme, simplement parce que dans chaque version que vous créerez, vous n'êtes pas tenu d'y mettre les même choses. Une version windows qui s'attaque aux failles de windows, etc.
    +1
    La version Windows va utiliser l'API Hooking pour l'analyse comportementale , la version DOS va redéfinir les interruptions ( 21h nottament ) , et la version Linux va s'intaller comme module Kernel , si vous avez une autre idée pour espionner les diverses actions faites par des programmes , j'en suis preneur .

    A+

  7. #27
    Membre éclairé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Points : 763
    Points
    763
    Par défaut
    Je suis allé sur le site, j'ai fais le tour...
    Impossible d'avoir le moindre document, la moindre portion de code ?
    Je suis ensuite allé voir la team, et il me semble bien que vous êtes très jeunes.
    Je ne dis pas ça pour détruire le projet, ça me paraît complexe, mais bon...
    Par contre, sans plus d'expérience, vous n'y arriverez pas, les systèmes sont aujourd'hui très complexes, et même à patauger dedans tous les jours, on ne connaît jamais tout.
    Les créateurs d'AV sont en général très nombreux.

    Vouloir concurrencer ClamAV relève carrément de l'utopie .
    http://www.clamav.net/team.html#pagestart

    Juste pour voir .

    Par contre, ils ont une mailing list, vous pouvez toujours vous inscrire et en apprendre plus en leur posant des questions.
    Je n'ose pas le dire, mais en anglais, bien sûr .

  8. #28
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 177
    Points : 196
    Points
    196
    Par défaut
    Ce que tu veux faire se nome l'analyse heuristique(heuristic en anglais).

    Il y a 2 type d'analyse heuristique

    L'Heuristique Passive :
    Recherche par chaîne de caractères. Qui est assé limité

    L'Heuristique Avancée ou Proactive :
    C'est la simulation de certaines parties du code suspect, dans un environnement virtuel sécurisé en utilisant différentes méthodes (heuristique passive, signatures normales et génériques, exploitations d'algorithme)

    Pour t'aider, ouvrir un executable en ecriture c'est déja douteux sauf pour un compilateur ^^.

    J'espère que ca t'aidera dans tes recherches ^^.

  9. #29
    mat.M
    Invité(e)
    Par défaut
    Bouaazza92 il faut trouver des docs sur la recherche heuristique dont parle Heptaeon.
    C'est la méthodologie généralement utilisé par les anti-virus

    Citation Envoyé par Blustuff
    Les bons vieux virus ça n'est plus vraiment d'actualité. Il est assez facile de détecter lorsqu'un executable est modifié, ce qui n'est pas une opération courante.

    .
    Tout à fait et de rajouter qu'avec Vista ça va être encore plus dur.
    Sous windows un .com qui contient du code malveillant n'aura aucun effet...

  10. #30
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par bouazza92
    Bah oui je sais , il y'a de nombreuses possibilités , mais ce qui de NOP , on sait son opcode ( son code en héxadécimal ) donc notre antivirus va l'ignorer , mais le fait que mov ax,0102h par exemple est égale à mov ah,01h et mov al,02h me fait rire , car on peut intégrer toutes les maniéres de coder ça dans une base de codes dangereux, mais faire que le programme reconnaitra mov ah,01h et mov al,02h comme mov ax,0102h est difficile car là il faut lui ajouter un code d'un assembleur libre ( genre NASM ou FASM ) pour qu'il puisse gérer ça sans probléme .

    Mais maintenant donnez moi s'il vous plait des codes dangereux en assembleur , et je vais moi m'y pencher à trouver d'autres maniéres de les coder , mais s'il vous plait , au lieu de me donner int xxh , donnez pushf et call xxxxhxxxh .
    Si l'OS est Ms-Dos en effet il faut examiner le code et voir s'il n'est pas obscurci par des NOP.
    Des instructions comme out ( i86) peuvent être dangereuse

    Sous Windows du code ASM "malveillant" dans un .com ou .exe n'aura aucun effet je le répète même dans une fenêtre ms-dos parce que ms-dos est émulé virtuellement.
    Fais-l'essai avec des vieux jeux ms-dos "bidouillés" pour être performants : il y a de fortes chances qui ne tournent pas ou bien que tu aies un message: "operation non conforme"..sous Windows

    PAR CONTRE , il faut que l'anti-virus que tu développes scrute l'usage d'API Windows comme DeleteFile();
    ça c'est une API dangereuse oui !
    Parce que les programmes Windows font utilisation intensive des API win 32.

    Ne pas oublier aussi les scripts internets....fait en VBscript

  11. #31
    Membre confirmé Avatar de Haywire
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2006
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2006
    Messages : 462
    Points : 573
    Points
    573
    Par défaut
    Comme quelqu'un l'a déjà dit: pourquoi ne pas vous concentrer dabord sur un OS?

    Il faut bien vous mettre en tête que même si vous arrivez à faire ce que vous voulez, vous n'atteindrez jamais le niveau d'efficacité ou tout simplement de diffusion d'un antivirus commercial.
    Ce serait déjà énorme si rien que vos proches font confiance à votre AV pour la protection de leur PC.
    Donc le seul intêret d'essayer de créer un antivirus, c'est le défi intellectuel et personnel que ça représente.
    Et ce sera déjà suffisament difficile d'en créer un pour un seul OS.
    Après si vous y arrivez vous pourrez toujours l'adapter à un autre OS.

Discussions similaires

  1. Générer une instruction inexistante en assembleur
    Par sali2801 dans le forum x86 32-bits / 64-bits
    Réponses: 11
    Dernier message: 29/04/2013, 18h34
  2. [Débutant] Explications sur quelques instructions en Assembleur
    Par voodka2007 dans le forum x86 32-bits / 64-bits
    Réponses: 4
    Dernier message: 01/01/2009, 21h47
  3. Réponses: 6
    Dernier message: 12/01/2008, 20h56
  4. Etude de toutes les instructions de l'Assembleur
    Par kapac dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 10/09/2007, 12h42
  5. Question pour quelque instruction Windows
    Par ..::snake::.. dans le forum Windows
    Réponses: 4
    Dernier message: 11/06/2007, 14h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo