Git Product home page Git Product logo

hackrf-one-french's Introduction

Présentation SDR W/ HackRF-One

Table des matières :

SDR

Le Software Defined Radio (Radio Logiciel) est un récepteur ( et parfois émetteur ) radio remplacé logicielement et matériellement, donc capable de réaliser de manière logicielle des traitements numériques.
Avantage : la puissance du pc permet de traiter les signaux

Les radios logicielles permettent l'utilisation de multiples formes d'ondes, éventuellement dans différentes bandes spectrales, pour différents usages, voire même de façon simultanée. Depuis quelques années, la technologie des radios logiciels a fortement, entrainant la réduction des temps et des coûts de conception des produits radios.

HackRF One

Le HackRF est in émetteur-récepteur, crée par Great Scott Gadget en 2014
Scan
Prix : environ 300€ (Antenne comprise)
Réception / Emission : de 10Mhz à 6GHz

Commandes HackRF One :

Hackrf_info : lors du branchement du hackRF One, cette commande permet d'avoir des informations sur sa version

Hackrf_transfer : permet de capturer un transfère et de le restransmettre par la suite

hackrf_debug : Commande de debug du hackRF One

hackrf_sweep : Commande qui va balayer un champ de fréquences et l'analyser

hackrf_spiflash : Mettre à jour le firmware

hackrf_cpldjtag : Mettre à jour le cpld

PortaPack

Le PortaPack est une coque rigide avec un écran LCD et des touches de navigation lien github
Scan
Prix : 200 €
le portapack permet d'avoir une interface graphique, et d'effectuer des manipulation directement sur le hackRF One.

Note : il existe des versions non officiels des portapacks pour hackRF One pour l'avoir testé, celui-ci fonctionne tout aussi bien ! : Lien Amazon

Pour installer le firmware Havoc sur Windows, une vidéo youtube trés claire à été réalisée sur le sujet :
Lien Youtube

Lorsque le firmware de votre portapack sera installé il sera toujours possible de lancer le mode hackRF (sur pc) il suffit d'activer l'option "HackRF Mode" dans le menu.

Scan


Premier Branchement + Mise à jour du Firmware :

Lorsque vous aurez reçu le HackRF, il faut d'abord mettre à jour le firmware et installer le paquet HackRF sur un PC:
installer le paquet hackrf (Linux) :
apt install hackrf

Pour mettre à jour le firmware, se rendre sur le github de Michael Ossmann, l'un des menbres de Great Scott Gadget et le createur du Hackrf One.
Télecharger son Repo HackRF

  • Installer l'image standard du firmware :
hackrf_spiflash -w hackrf_one_usb.bin
  • Mettre à jour le CPLD (Complex Programmable Logic Device) :
hackrf_cpldjtag -x sgpio_if/default.xsvf
  • Vérifier si la mise à jour à été appliquée :
hackrf_info
hackrf_info version: unknown
libhackrf version: unknown (0.5)
Found HackRF
Index: 0
Serial number: 000000000000000057b068dc22451163
Board ID Number: 2 (HackRF One)
Firmware Version: 2018.01.1 (API:1.02)
Part ID Number: 0xa000cb3c 0x00724357

Petit rappel utile - Convertion MHz - Ghz :

Scan

Démonstration :

Passons maintenant à la pratique :
pour se faire je vous conseille quelques logiciels de SDR sous linux :

J'utilise gqrx que je trouve très pratique et simple d'utilisation.

Replay Attaque :

Portail :

Nous allons pour commencer, essayer d'intercepter un signal d'une télécommande de portail :
la première chose à faire est de trouver sur quelle fréquence la telecommande va communiquer avec le portail (en géneral au alentour de 433 Mhz), souvent indiquer soit sur la telecommande, soit sur le site du constructeur. Si ce n'est pas indiqué :

Internet est votre ami

Avec gqrx nous allons pouvoir vérifier et ajuster la fréquence d'écoute (Assurez vous que le logiciel se base sur votre hackRF dans les paramètres de gqrx)
Une fois sur la bonne fréquence, lorsque nous activons la télecommande nous appercevons bien le signal émis.

Scan

Nous avons donc maintenant une fréquence précise : 433.910000 Mhz

Passons ensuite à l'enregistrement :
hackrf_transfer -s 2 -f 433910000 -r open

Déclencher le signal pendant l'enregistrement :

hackrf_transfer -s 2 -f 433910000 -t open -a 1 -x 24

Puis, réinvoquer le signal devant le portail pour l'ouvrir. Options utilisées :

 -s : précise le taux d'echantillons en MHz
 -f : précise la fréquence exacte enregistrée ou diffusée
 -r : Nom du fichier ou sera stocké notre signal 
 -t : Nom du fichier ou sera lu notre signal (afin de le retransmettre)
 -a : Amplifie le signal
 -x : le gain entre 0 et 47 dB (en Décibel)

On peut créer un script pour plus de professionnalisme :

figlet Sesame, Ouvre toi ! 
hackrf_transfer -s 2 -f 433910000 -t open -a 1 -x 24
figlet C'est ouvert !  
HackRF.One.-.Portail.mp4

Talkie-Walkie :

Il s'agit du même procédé, nous trouvons la fréquence, capturons le signal, le stockons et le rediffusons à notre guise.

Dans mon cas, je capte le signal sur la fréquence 446 Mhz.

je capture une séquence d'apel par exemple :
hackrf_transfer -s 2 -f 446000000 -r HackyWalkie
et la rediffuse
hackrf_transfer -s 2 -f 446000000 -t HackyWalkie

HackRF.One.-.Talkie.Walkie.mp4

Car Key Replay Attack

La plupart de nos voitures aujourd'hui sont livrées avec un porte-clé de déverouillage à distance, ce qui est incroyablement pratique, pratique certe, mais vulnérable...

Pour ne pas que les voitures soit vulnérables à une attaque toute simple de Replay Attack, les constructeur ont équipé leurs (nouvelles) voitures d'un systeme de code roulant (rolling code system) chaque fois que vous appuyez sur le bouton de déverrouillage, la télécommande utilise un algorithme pour générer un nouveau code ce qui rend donc les ancien siganux inutilisables, une simple Replay Attack comme celle ci est donc impossible.

Je dois donc contourner ce problème si je veux effectuer mon attaque. Je vais donc émettre le signal de mon porte clé suffisamment loin de ma voiture pour pas que celle ci prenne en compte le signal.

Pour la capture et la rediffusion du signal, je vais utiliser le merveilleux outil URH

Car.Key.Replay.Attack.mp4

Etapes :

  • Connaitre la fréquence du signal de notre télécommande ( en Europe, la fréquence d'un signal de clé de voiture est autour de 433,9) je reglerais donc ma fréquence en conséquence
  • Record le signal ( enlever le surplus / Bruit parasite)
    Scan
  • Rejouer le signal sur la même fréquence
    Scan
  • Bonus 1 ) Avec URH, nous pouvons décoder le signal ( Manchester, Substitution, Morse Manchester I, Wireless Short Packet-WSP, ...) Scan
  • Bonus 2) Cet outil nous permet aussi d'analyser le signal et d'extraire les données binaires, pour ensuite, faire un reverse du signal afin de comprendre ce qu'il fait
    Scan

Radio Jamming :

Le jamming (Brouillage) est une technique (illégal bien sur) visant à perturber les fréquences comportant des informations, en submergant une fréquence avec du bruit.

Il existe des appareils servant spécifiquement à effectuer ce genre d'actions ( Yard Stick One, ... )

Le brouillage se distingue généralement des interférences qui peuvent survenir en raison de dysfonctionnements de l'appareil ou d'autres circonstances accidentelles.

Jamming Car Key

En émettant du bruit sur la fréquence d'une clés de voiture,le signal de la télécommande est 'noyé' parmis les fausses ondes émises :

Scan
Résultat de Sharp SDR pour la fréquence 433.9 MHz

Le module Jamming du Portapack Havoc nous permet d'emettre ce genre de bruit :
Scan

Jamming.Car.Key.W.HackRF.One.1.mp4

Youtube Vidéo

Cette attaque est certes très efficace, mais il est nécessaire de posséder la clé de voiture (tout du moins quelques instants afin de générer le signal). La plupart du temps nous avons aucune interaction avec la victime et donc aucun moyen de se procurer la clef de la voiture (à moins d’utiliser une attaque de social engineering...)

RollJam Attack

Il existe une méthode d’attaque qui ne nécessite en aucun cas la possession des clefs : Rolljam Attack
Cette attaque nécessite beaucoup de compétences et possède un très faible ratio de réussite, elle mélange brouillage (jamming) et replay Code Rolling.

Scan

Méthodologie de l’attaque :

  1. Un brouillage radio est lancé sur la fréquence 433.92 qui est la fréquence du déverrouillage de la voiture.
  2. La victime tente de deverouiller une première fois la voiture en appuyant sur la clef, et donc en émettant un signal.
  3. Le signal est capturé et enregistré.
  4. La victime tente donc une deuxième fois de déverrouiller la voiture, toujours sans réussite.
  5. Le brouillage s’arrete et le premier signal est lancé ce qui déverrouille la voiture.

Le 2eme signal ( Rolling Code) émis par la victime est enregistré.
Comme la voiture a reçu uniquement le premier signal, le rolling code du second signal est donc valide. (l'attaquant pourra donc déverouiller la voiture par la suite)

Jamming Wifi ( 2.4GHz)

Les fréquences du WiFi sont les bandes 2,4 GHz et 5 GHz.

Les principales différences entre les deux fréquences sont la portée (couverture) et la bande passante (vitesse) fournies par les bandes. La bande 2,4 GHz offre une couverture sur une plus longue portée mais transmet les données à des vitesses plus lentes. La bande 5 GHz offre une couverture moindre mais transmet les données à des vitesses plus rapides.

Sur la bande 2.4 Ghz Voici la liste des canaux (et fréquences associées) autorisés en Wi-Fi :

Scan

Une fois le canal déterminé, nous connaissons la fréquence exact sur laquelle un appareil communique avec le routeur. Nous pouvons ensuite construire un graph Gnuradio afin de génerer du bruit sur cette meme fréquence comme ceci :

Scan

pour réaliser ceci, je me suis fortement inspiré de Ce repo Github

Cette démonstration est en aucun cas à reproduire chez vous, elle nous sert uniquement à comprendre comment le jamming WIFI fonctionne :

Jamming.WIFI.2.4GHz.1.mp4

Youtube Vidéo

Manipulation - Portapack :

Avec le portapack, toutes les manipulations que nous avons effectuées précedemment, pourront desormais être réalisés directement sur le portapack.

Voici le menu d'Havoc :

Scan

Prenons par exemple, une lampe avec une télécommande Hertzienne, nous pouvons voir qu'elle communique avec celle-ci sur la fréquence 433.920 Mhz.
Scan

Sur le portapack, dans l'onglet "Capture" nous allons régler la fréquence sur 433.9 Mhz, écouter le signal puis l'enregistrer afin de le rediffuser :

Scan
Scan

Une fois le signal capturé : se rendre dans la partie "Replay", ouvrir le fichier contenant le sginal capturé. (éventuellement régler la fréquence de diffusion)

Scan

et hop le signal est rediffusé !!

Fonctionnalités Portapack :

Le Wiki du Github de furrtek explique très bien toutes les options que nous offre le Portapack: https://github.com/furrtek/portapack-havoc/wiki

L'onglet Play Dead est une sorte de barrière pour empecher les néophytes d'utiliser le portapack :
l'erreur Firmware suivante apparait lorsqu'on rentre dans l'onglet :

Scan

Pour sortir, il faut entrer la combinaison prédefinie dans l'onglet : Settings > Play dead
Par defaut cette combinaison est : Haut-Bas-Gauche-Droite (Le bouton Reset marche aussi ^^)

L'onglet "Search/CLose Call" permet d'identifier exactement la fréquence d'un signal, on précise un fenêtre, et on déclenche l'émetteur :
Scan

L'onglet Receivers permet de recevoir toutes sortes de fréquences :

  • AD-B: Plane : système de surveillance pour le contrôle du trafic aérien (connaitre la position des avions)
  • ACARS : système de communication/surveillance entre les aéronef et les sations au sol
  • AIS : système d’échanges automatisés de messages entre navires par radio
  • AFSk : audio frequency-shift keying, conçue pour véhiculer la voix ou de la musique, par exemple une liaison téléphone ou radio.
  • AUDIO : Recpteur Audio capable de recevoir different mode de fréquences (AM et FM) lien Github sharebrained
  • ERT : Paquet contenant les données d'un compteur éléctrique/Gaz pour faciliter la collecte de données.
  • POCSAG : Protocole de transmission radio utilisé pour les réseaux de radiomessagerie.
  • Radiosondes :
  • TPMS : Tyre Pressure Monitoring System en anglais, Système de surveillance de la pression des pneumatiques.
  • APRS : Automatic Packet Reporting System est un système de radiocommunication numérique utilisé par les radioamateurs, qui permet le partage d'informations d'intérêt local.
  • DMR framing : Digital Mobile Radio, norme de radio numérique mobile ouverte et utilisée dans des produits commerciaux à travers le monde.
  • SigFox : Sigfox est un opérateur de télécommunications français communiquant sur la fréquence 868 MHz.
  • LoRa : LoRaWAN est un protocole de télécommunication permettant la communication à bas débit, par radio, d'objets à faible consommation électrique communiquant selon la technologie LoRa
  • SSTV : Slow Scan Television, est une activité radioamateur qui vise à la transmission analogique d'images (J'y consacre quelques lignes juste ici )
  • TETRA framing : Terrestrial Trunked Radio, destinés aux équipes de sécurité : elle opére entre 380-400 MHz pour les services d’urgence et dans les bandes 410-430 MHz | 450-470 MHz | 870-880 MHz pour les applications civiles et privées.

L'onglet Transmitters permet de transmettre toutes ces fréquences.

Quelques sigles que l'on va retrouver lors de l'utilisation du hackRF One couplé du Portapack :

  • LNA : Amplificateur à faible bruit.
  • AMP : Amplificateur.
  • VGA : Gain.

Info sur les Leds :

Scan

Chaque led à une couleur differente :

  • 3V3, 1V8, RF : lorsque ces leds sont allumées, cela signifie que le Hackrf est allimenté (par une batterie externe par exemple)

  • USB : connexion USB à un ordinateur, la communication est donc possible via les commandes hackrf..

  • TX : le hackRF Transmet

  • RX : le hackRF Recoit

  • Le bouton Reset : permet une remise à zero du Microcontrôleur

  • Le bouton ISP / DFU : permet de modifier les données en cas de probleme sur le HackRF

SSTV (Slow Scan Television) :

SSTV est une activité qui merite d'être creusée tant elle est interressante, comme vu précedemment c'est un mode qui permet de recevoir / émettre des images

SSTV with HackRF ONE

Grace au HackRF One, nous pouvons également émettre des images via le mode SSTV :

Démonstration en vidéo :

Vidéo SSTV Transmission

Voici l'image de base : (l'image doit etre en format Bitmap (320x256)
Scan

Voici la photo une fois recue :
Scan

autre exemple : HackRF_SSTV

Logiciels permettant de decoder les images depuis un signal :

source : AMSAT

Il existe des exemples de signaux SSTV à cette adresse afin de s'entrainer : WIKI_SSTV

Fait interessant :
il existe un programme nommé ARISS SSTV (Amateur Radio on the International Space Station) precedemment SAREX crée en 2011, qui transmet des images depuis l'ISS (Station Spacial International) : Le mode utilisé pour recevoir les images SSTV de la station est le mode PD120. La reception d’une image prend environ 2 minutes sur la fréquence 145.800 Mhz
Nous pouvons aussi uplaoder les images que nous avons recus : spaceflightsoftwaret

*Comment faire : *
Dans un premier temps il est neccessaire de savoir où se situe la Station Spatial International :

Il faut que l'ISS se trouve a proximité de notre antenne, pour commencer à recevoir le signal SSTV :
et que bien sur, un programme de diffusion de signaux SSTV soit en cours, pour être au courant des programmes de diffusions, nous pouvons nous rendre sur : https://ariss-sstv.blogspot.com ou sur le twitter de ARISSFR

Vidéo youtube : ISS_SSTV_Receive

Tempest SDR [avec le HackRF ONE]

Tempest SDR est un outil open source de Martin Marinov qui permet, grace aux ondes émisent de façon non intentionelle, d'afficher le contenu d'un écran. Concretement : un cable HDMI émet des ondes 'garbage', celles ci peuvent être récuperées et grace à l'outil Tempest SDR, nous pouvons transformer ces ondes en affichage en temps réel. source

SDR

Il faut dans un premier temps connaître sur quelle fréquence radio notre port HDMI envoie son 'garbage' : nous pouvons la déterminer sur GQRX en faisant des tests de branchements / debranchements du cable. Je détermine donc que la 'fréquence d'émission' de mon cable est : 198 000 000 khz

GQRX

Je branche mon hackRF, je pointe l'antenne vers le port HDMI de mon écran, puis je lance l'outil en écoutant sur la bonne fréquence, je dois aussi connaitre la résolution et le taux de rafraichissement de l'écran cible, et voila :

TempestSDR
Vidéo demonstrative de l'outil et de ce qu'on peut faire avec cet outil :

125199892-9c330e80-e268-11eb-9fa8-df8dac52068b.mp4

GPS Spoofing via HackRF One

Le GPS Spoofing est une technique qui consiste à envoyer de fausses informations à un systeme GPS afin d'afficher la mauvaise position.

Fonctionnement d'un GPS : Un recepteur GPS fonctionne grace au calcul de la distance entre sont capteur et plusieurs satellites émeteurs (4) via des ondes, il determine et affiche sa position telle que nous la voyons sur un GPS classique.

Image

la fréquence de signal d'un GPS basique est de 1575,42MHz

GPS-SDR-SIM (Compatible Linux et Windows) est un outil (disponible sur ce repo) permettant de mener ce genre d'action.

Démonstration :

  • Dans un premier temps nous devons télécharger le fichier BRDC du jour (Broadcast Ephemeris Data) qui contient les posittions de chaque satelitte GPS.

Petit Script qui automatise le process :

#!/bin/bash

# Declaration des Variables 
day=$(date +%j)
year=$(date +%Y)
yr=$(date +%y)
RINEX_NAV_FILE="brdc${day}0.${yr}n"

# Téléchargement & extraction du fichier 
wget -q ftps://gdc.cddis.eosdis.nasa.gov/pub/gps/data/daily/$year/brdc/$RINEX_NAV_FILE.gz -O brdc_file`date +%d_%m_%y`.gz
gunzip brdc_file`date +%d_%m_%y`.gz

echo -e " le fichier \033[32m"brdc_file`date +%d_%m_%y` "\033[00mest extrait"
  • Trouver une position gps et avoir les infos suivantes : (Latitude,Longitude,hauteur)

  • Puis générer le fichier gpssim.bin executant cette commande en passant comme argument les positions GPS voulu :

$ ./gps-sdr-sim -e brdc_file -b 8 -l 48.859057,2.293276,30
Usage: gps-sdr-sim [options]
Options:
  -e <gps_nav>     RINEX navigation file for GPS ephemerides (required)
  -u <user_motion> User motion file (dynamic mode)
  -g <nmea_gga>    NMEA GGA stream (dynamic mode)
  -c <location>    ECEF X,Y,Z in meters (static mode) e.g. 3967283.15,1022538.18,4872414.48
  -l <location>    Lat,Lon,Hgt (static mode) e.g. 30.286502,120.032669,100
  -t <date,time>   Scenario start time YYYY/MM/DD,hh:mm:ss
  -T <date,time>   Overwrite TOC and TOE to scenario start time
  -d <duration>    Duration [sec] (dynamic mode max: 300 static mode max: 86400)
  -o <output>      I/Q sampling data file (default: gpssim.bin ; use - for stdout)
  -s <frequency>   Sampling frequency [Hz] (default: 2600000)
  -b <iq_bits>     I/Q data format [1/8/16] (default: 16)
  -i               Disable ionospheric delay for spacecraft scenario
  -v               Show details about simulated channels
  • Exécuter la commande suivante en branchant le HackRF
$ hackrf_transfer -t gpssim.bin -f 1575420000 -s 2600000 -a 1 -x 42
Usage: hackrf_transfer [OPTIONS] 
Options :
   -r <filename> # Receive data into file.
   -t <filename> # Transmit data from file.
   -w # Receive data into file with WAV header and automatic name.
   # This is for SDR# compatibility and may not work with other software.
   [-f set_freq_hz] # Set Freq in Hz
   [-a set_amp] # Set Amp 1=Enable, 0=Disable.
   [-l gain_db] # Set lna gain, 0-40dB, 8dB steps
   [-i gain_db] # Set vga(if) gain, 0-62dB, 2dB steps
   [-x gain_db] # Set TX vga gain, 0-47dB, 1dB steps
   [-s sample_rate_hz] # Set sample rate in Hz (8/10/12.5/16/20MHz)
   [-n num_samples] # Number of samples to transfer (default is unlimited).
   [-b baseband_filter_bw_hz] # Set baseband filter bandwidth in MHz.
       Possible values: 1.75/2.5/3.5/5/5.5/6/7/8/9/10/12/14/15/20/24/28MHz, default < sample_rate_hz.

Si nous exécutons un GQRX sur les fréquences GPS nous voyons bien les ondes que le HackRF envoie :

Image

Voici le résultat en vidéo :

128639352-11dc3526-e1a2-4cf4-ae4e-3d4ed705c560.mov

Cet outil possède une puissante de portée de plusieurs mètres.
Cela fonctionne aussi sur Iphone et son application intégrée : Plans :

Image

Attaque sur Drone (DJI Mavic Mini) :

Les drones possedent une sécurité GPS qui bloque les vols lorsque les utilisateurs se situent dans certaines Zones (Militaire, Aéroport, Centre Ville)

Image2

Image

Voici une map qui répertorie les endroits Autorisés / Interdits partout dans le monde : Drone-Spot

Cependant, il faut savoir que le drone se fie au GPS du téléphone, ce qui veut donc dire que nous pouvons spoofer la positions GPS du téléphone afin de faire décoler notre drone dans des endroits non legitime.

Exemple : 49.199544,5.470661,0

Mais qu'en est t'il d'un spoofing d'endroits 'NO FLY ZONE' lors d'un vol de drone dans un endoit autorisé : Dans ce cas, je vais simuler un vol au dessus d'un aéroport pendant un vol légitime :

la position va se changer et le message suivant apparait : (le pilote dispose de 90 secondes pour partir de la NON FLY ZONE) sinon le drone procedera à un aterissage automatique.

Image

Puis impossible de faire redecoller le drone par la suite :

Image

hackrf-one-french's People

Contributors

pierreadams avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

hackrf-one-french's Issues

decode GPS spoofed signal

Bonjour Pierre,
j'ai une capture (HackRF) d'un signal qui me semble être du spoofing de GPS et je dois décoder les coordonnées qui sont annoncées.
J'ai aussi l'impression qu'il y avait du jamming de signal au milieu de tout cela.
J'ai tout essayé avec gnss-sdr mais ne suis arrivé à rien pour le moment. Aurais-tu un conseil ?

Merci d'avance !

multimon-ng

savez vous si il est possible d'utiliser multimon-ng avec un hackrf. comme on le ferais avec une clé rtl-sdr.( rtl_fm)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.