Tuesday, July 3, 2012

Emulating USB Devices with Python

by Travis Goodspeed <travis at radiantmachines.com>
as presented with Sergey Bratus at Recon 2012
with thanks to Sergio Alverez and the Dartmouth Scooby Gang.

Not long ago, I was giving a lecture to Sergey Bratus's class at Dartmouth, where he asked me to teach the students about SPI, I2C, and the other bus protocols that are commonly found in embedded systems. When a student made the inevitable joke about Sergey's Magic School Bus, my good neighbor's eyes lit up and he exclaimed, "It's not a bus; it's a network!"

The Magic School Bus is a Network!

A bottle of Laphroaig 18 later, we came to the conclusion that while libusb and python-usb make it easy to prototype USB host-side applications, there wasn't really anything handy for prototyping device-side applications. So the next afternoon, we wired a MAX3421 EVK into the GoodFET41. This allows us to write USB devices entirely in host-side Python, fuzzing for device-driver vulnerabilities wherever we like.

Unlike the Teensy and similar hardware, this tool is not designed to run standalone. All of the complicated software is in Python on one workstation, while the emulated USB device appears on a second workstation. This makes fuzz testing and exploit debugging a hell of a lot more efficient, while the resulting exploit can be ported to run as C firmware for deployment.

GoodFET Does USB

Introducing the Facedancer Board

Our rough prototype was refined into a single board, which is documented as the Facedancer10 as part of the GoodFET project. The board consists of a GoodFET41 with the MAX3420 target onboard. One USB Mini plug runs to the workstation emulating a USB device, and the other USB Mini plug runs to a second host which sees only the emulated device.

Facedancer10 Prototype

The C firmware running on the MSP430 is intentionally kept as minimal as possible, with complexity pushed to the Python client in order to speed development and prevent the need for reflashing during development. This is perfectly fine for emulating USB devices, as kernels seem very tolerant of delays in responses. Additionally, the MAX3420 handles all fast-reaction timings itself, so our round-trip overheads don't create any serious problems.

To learn how the chip functions, read the MAX3420E Programming Guide and similar documents from the MAX3420E Page of Maxim's website.

Maxim MAX3420E

Learning USB

As a networking protocol, USB is quite different from the IP protocols that you are likely familiar with. It is not more difficult, but it is designed along different lines, with a different philosophy and different concepts. To learn the language, I recommend a mixture of reverse engineering devices, writing drivers, and writing emulators. Sniff some traffic with Wireshark, VMWare, or a Total Phase Beagle, then read it and try to write your own client in PyUSB. A good tutorial on that can be found in Adafruit's page on Hacking the Kinect.

In all of this, remember that USB is a network, not a bus. You can be just as 1990's stack-evil as you like, and a lot of the 90's tricks still work in USB. Every device driver included in the operating system is the equivalent of an open port!

Clear code examples for USB protocols can generally be found either in other microcontroller implementations or in the relevant BSD or Linux drivers. In general, you need to know just enough of the SETUP endpoint (EP0) to get the driver to select and initialize the device, then the packets will begin flowing over the other endpoints. There are exceptions, but generally this traffic flows through a device-specific protocol on two more endpoints, one of which is bulk-in and the other bulk-out.

HID Keyboard Emulation

As an example, I've included in the GoodFET repository a script which emulates a simple keyboard through the USB HID protocol. It's run with 'goodfet.maxusbhid', but the bulk of the code is found as the GoodFETMAXUSBHID class in GoodFETMAXUSB.py. The important thing to keep in mind when working from this code is that you are speaking a real protocol, USB HID. You are speaking it over a real chip, the MAX3420. Look up the documentation for both of those if anything is confusing, and look for code examples if things are still unclear.

The HID emulator is a more or less literal translation to Python of Maxim's example code, with much of the code devoted to handling device configuration and descriptor passing. Just like the original, some array boundaries aren't checked, so you can expect a crash or two if the host says things it oughtn't. Exploiting this code in a real product is left as an exercise for the reader.

The first descriptor is the Device Descriptor, which is defined like so. Notice that everything is in Little Endian notation. The maximum packet length is defined as 64 bytes, which is a common maximum and the one supported by the MAX3420.

DD=[0x12,           # bLength = 18d
    0x01,           # bDescriptorType = Device (1)
    0x00,0x01,      # bcdUSB(L/H) USB spec rev (BCD)
    0x00,0x00,0x00, # bDeviceClass, SubClass, Protocol
    0x40,     # bMaxPacketSize0 EP0 is 64 bytes
    0x6A,0x0B,      # idVendor(L/H)--Maxim is 0B6A
    0x46,0x53,      # idProduct(L/H)--5346
    0x34,0x12,      # bcdDevice--1234
    1,2,3,          # iMfg, iProduct, iSerialNumber
    1];

After the Device Descriptor comes the much longer Configuration Descriptor, which defines this device as being a Human Interface Device. For all vendor-proprietary protocols, the idVendor and idProduct fields of the Device Descriptor define the driver to be used. For standard devices, and HID devices in particular, it's the Configuration Descriptor that tells the operating system to treat the device as a keyboard in addition to whatever else it might be.

The Configuration Descriptor also describes endpoints used by the device. Our HID example has just one IN endpoint on EP3. EP3 was used instead of EP1 or EP2 because in the MAX3420, endpoint directions are hardwired. EP0 is implicitly the endpoint used for configuration; it's the one that the descriptors are transmitted across. EP1 and EP1 are hardwired as OUT endpoints.

Finally, you will see a set of String Descriptors used to describe the product. Roughly speaking, these are Pascal strings beginning with a length and a type, followed by UTF16 bytes. The iMfg, iProduct, and iSerialNumber entries in the Device Descriptor are indexes to this table. In C firmware, it is rather common to find a memory leak when string table entries are requested out of range. More on this bug in a later post.

FTDI Emulation

While HID is a favorite first example for USB, it's not very closely related to the devices you'll see in the field. For one thing, it only uses a single IN endpoint and no OUT endpoints. For another, there are dozens of open source firmware implementations already available. As such, I've also included an emulator for the FTDI chip, which I based upon the documentation in OpenBSD's uftdireg.h and a few quick peeks at the Linux equivalent.

To get up to speed quickly on this emulator, which is found in goodfet.maxusbftdi, compare its class GoodFETMAXUSBFTDI to that of GoodFETMAXUSBHID. In order to load the FTDI driver, it was necessary to change the idVendor and idProduct values to any of those in the FTDI driver's massive list. The strings are for the user's convenience only, so they could have been left unchanged.

Also worth noting is that the FTDI chip requires both IN and OUT endpoints to function, and that the exact endpoints must be specified in the Device Descriptor.

FTDI Emulator

The screenshot above shows goodfet.maxusbftdi emulating an FTDI chip, which a Linux workstation has enumerated as /dev/ttyUSB1. Catting that device returns text through the virtual serial port of a virtual USB chip.

Bugs Abound!

The bug below has already been fixed, but it's worth mentioning that I accidentally got heap corruption in libusb before I got to Hello World with my keyboard emulator. Intentional fuzzing ought to provide all sorts of neighborly results.

lsusbcoredump

Another fun one was found by a Chrome OS developer, and it involves a format string vulnerability in X11's logs. Any devices with a few %n's in its device or manufacturer string will crash X11. You can find example code for doing this on AVR at Kees Cook's Blog. While this probably isn't exploitable on a modern machine due to hardening, there are plenty of embedded ARM devices that could suffer code execution from it.

Finally, be sure to look for consumer apps that crash from USB devices. I've no idea why the hell Skype is watching USB devices, but I do know that it falls over when HID descriptors are fuzzed.

Facedancer in Action

Scapy Integration

Ryan Speers, one of the neighbors with whom I invented the Packet-in-Packet attack, has already begun to write Scapy models for USB. Not only that, but he managed to document it before I got around to publishing this, so you can find his description on his blog. As I write this, it's in the contrib section of the GoodFET repository, but I expect him to integrate it into scapy-com as soon as stability allows.

Host Mode

While the Facedancer10 does not contain hardware for USB Host mode, software support is included for it in GoodFETMAXUSB.py. The hardware, shown below, consists of a MAX3421 development kit wired into a GoodFET41. Generally, pyusb in a real workstation can do everything that you'd need in attacking or proxying a USB device, but there are a few select cases in which you would want host mode from a GoodFET. In particular, it's handy when actions crash the victim device repeatedly, as the GoodFET has no operating system to make re-enumeration slow.

GoodFET as a USB Host

Conclusions

The Facedancer hardware extends the GoodFET framework to allow for fast prototyping and fuzzing of USB device drivers. Software connect/disconnect allows the enumeration process to be repeated, and Ryan's fork allows for clean coding of the various data structures with Scapy.

You can order Facedancer and GoodFET boards by following the instructions on the GoodFET Ordering Page. We're happy to send them out for free to the funemployed, but please properly format your shipping address.

Soon enough, I'll be publishing scripts for "portscanning" a host to see which devices are supported, a USB Mass Storage emulator for attacking filesystem drivers, and a whole host of other nifty tools. Feel free to implement them first, and send a neighborly email to the goodfet-devel mailing list when you do.

80 comments:

manoj singh said...

There are a variety of USB Microcontrollers available in the MSP430 portfolio, which are ideal for applications including analog and digital sensor systems, data loggers, and other solutions that require connectivity to various USB hosts.usb microcontroller tutorial

Unknown said...

I didn't see the periodic transmit of the 0x0160 packet every 40 ms on EP1 in your code. Can this be skipped?

tahir sumar said...

Most Popular and Famous Vehicles, Latest Speed Cars, Sports Cars Info and Pictures.
worldlatestvehicles.blogspot.com

John Lee said...

We are glad to see this informative blog post.
The removal of information generally directs a user to a a feeling of discouragement.
A range of data recovery software programs are already designed a by the professionals, making sure that an end user might quickly recover his deleted info.
User have to be well aware of possible files recovery methods with the intention that the guy can deal the info damage situation in a much correct way.
recover deleted outlook contacts

Mark Bintuu said...

I am typically to running a blog and I actually appreciate your information. The content has actually peaks my curiosity.

Automotive Patent

Mike said...

I must say that it is great information on SPI, I2C, and the other bus protocols that are commonly found in embedded systems. Indeed, You have great knowledge and described everything in detail. I am sure that students will be surprised & impressed by your lecture.
www.scanshell-store.com/hardware_ss2000n.htm

BlueMatt said...

Hi Travis, its not nearly as fun as doing some real USB hacking, but the idea of a hello-kitteh edition of an antiforensics drive piqued my interest, and since Im lazy I went ahead and bought the overpriced (but very tiny, and comes with a USB Mass Storage-style case) USB Rubber Ducky. Its a standard Atmel UC32 so its fairly hackable. Anyway, I went ahead and implemented firmware-level encryption of the SD card (you can lock the firmware so theoretically you have some reasonable, though probably not, assumption that the keys stored in firmware are safe) and antiforensics stuff on it. That plus a custom modification of TRESOR (linux aes in processor registers to beat coldboot attacks) to use a keydevice and you have a drive encryption setup for the truly paranoid :)

I have a pseudo-writeup at http://forums.hak5.org/index.php?/topic/28816-howto-anti-forensics-mass-storage-device-as-a-key-device-for-fde/ (with other links to the associated projects on github)

rva said...

About Skype and USB. Maybe about USB Phones and webcams

Steve S said...

sale vaigra

T Barnaby said...

genetic cavities

Asim Shaikh said...

Glorious Live design philosophy is based on versatility and glamour with a clear focus on creating outfits to make each woman feel beautiful in whatever she wears. We also provide custom made design as per your requirement.
GloriousLive.Net

Asim Shaikh said...

Online learning place TafseereUsmani.Com

Regional College Of Pharmacy said...

Your blog is very informative and gracefully
your guideline is very good.Thank you
Engineering college
Best engineering college in india
Private engineering college
pharmacy college
pharmacy college in india
top pharmacy college
Polytechnic college
Top polytechnic college
Top private polytechnic college
Top polytechnic colleges in India
Techanical colleges
Polytechnic college in india
Leading call center
Outbound call center india
Cheap Seo services india

SuperSuperGenius said...

Neighbor Travis,
I bought the facedancer21 from int3.cc

Easy and fast service. Problem is, I can't seem to download the source using: svn co https://goodfet.svn.sourceforge.net/svnroot/goodfet. The error I get is:
The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: *.svn.sourceforge.net
- Valid: from Mon, 11 Mar 2013 10:24:41 GMT until Tue, 13 May 2014 16:12:16 GMT
- Issuer: GeoTrust, Inc., US
- Fingerprint: 7c:89:9c:5a:bf:ad:ec:70:8b:17:a4:6b:4d:80:fa:6c:d5:81:b8:f3
(R)eject, accept (t)emporarily or accept (p)ermanently? p
svn: E175011: Repository moved permanently to 'https://svn.code.sf.net/p/goodfet/code/!svn/vcc/default'; please relocate. I then tried svn co with that address...no luck. Any thoughts beyond me being an idiot?

liena rose said...

Hey, thanks for the post.Really thank you! Will read on...
Keylogger

Yaron Shani said...

Great post, thanks! But you can actually emulate usb device in python without additional hardware as I did it in my post:
http://breaking-the-system.blogspot.co.il/2014/08/no-need-for-ccdebugger-you-got.html

Shiya Priya said...

Nice Website...
Hey JOIN now fblikesbot.com and Increase Facebook Likes your profile and websites.
Increase Facebook Likes and check your website worth worth my websites
FB Likes and check your website worth Website Value Calculator
Hot Wallpapers
its may be very beneficial for you also really

Seo Newtool said...

nice information.It is one of those nifty tool, that checks whether the same tool range is hosting two or more domains or not.class c ip checker

Lucas said...

telasmosquiteira-sp.com.br

telas mosquiteira
telas mosquiteiro

As telas mosquiteira sp , telas mosquiteiro sp garantem ar puro por toda casa livrando-a completamente dos mosquitos e insetos indesejáveis. As telas mosquiteira garantem um sono tranquilo a toda família, livrando e protegendo-nas dos mais diversos insetos. Muitos destes insetos são transmissores de doenças e a tela mosquiteira é indispensável no combate a mosquitos transmissores de doenças.

A dengue, por exemplo, já matou centenas de pessoas só na capital de São Paulo e um pequeno investimento em nossas telas mosquiteiras podem salvar vidas. As telas mosquiteiras também impedem a entrada de insetos peçonhentos como as aranhas e os escorpiões, estes insetos também oferecem risco, pois seu veneno em poucos minutos podem levar uma criança a morte.
telas mosquiteira jundiai
telas mosquiteiro jundiai
telas mosquiteira aplhaville
telas mosquiteiro alphaville
telas mosquiteira granja viana
telas mosquiteiro granja vinana
telas mosquiteira cotia
telas mosquiteiro cotia
telas mosquiteira tambore
telas mosquiteiro tambore

A chegada da temporada Primavera/Verão traz consigo a elevação da temperatura e a maior ocorrência de chuvas. Mas não é só isso. As estações mais quentes do ano causam muita dor de cabeça e muitos zumbidos indesejáveis em função das pragas urbanas – pernilongos, baratas, cupins e outros insetos -, que afetam todas as regiões brasileiras.

Nossa missão é oferecer telas mosquiteiras de qualidade a um preço acessível, fazendo com que as telas mosquiteiras sejam uma opção viável para muitas pessoas.

telas mosquiteiras Jundiaí
telas mosquiteiro Jundiai
telas mosquiteiras jundiai
telas mosquiteiro industria
telas mosquiteira restaurante
telas mosquiteiro restaurante
telas mosquiteira empresa
telas mosquiteiro empresa

Blogger said...

TeethNightGuard is offering precise fitting and high quality customized teeth guards.

Blogger said...

If you want your ex-girlfriend or ex-boyfriend to come crawling back to you on their knees (even if they're dating somebody else now) you must watch this video
right away...

(VIDEO) Why your ex will NEVER come back...

minnie said...

I also find this very intriguing, all along i thought that this was a magic bus only to find out that its a network. Its a very interesting post, a page that i would revisit to get more information about the said network. Do you know that you can use a Resin Tabletop Cat to decorate your house. This is a very effective way of giving your sitting room a change,and a look of beauty.

SFCable said...

Nice blog provides many informative and helpful articles. Thanks for sharing the information. Looking for more updates in future. USB Devices

Dylan Eales said...

Online assignment help services by Sample Assignment has been trusted by many students worldwide for over a decade. SA providing assignment help to students struggling with their assignment tasks given by Universities. Whether it is an essay, dissertation, case study, accounting assignment help or any other form of assessment, you can trust us for 100% original and plagiarism free content by which get HD Grades. An assignmenthelp provider such as Sample Assignment, is well-known for its 24-hour online assistance on the WhatsApp platform. Students can reach out to us with their queries at any point of the day or night and get the most effective solutions for them. Our best online assignment help experts talk about how to select and evaluate the right academic sources, which will help you clear all your assignment-related doubts at best and affordable price. Whenever need to search for macroeconomics assignment help, our experts will be assist you.

The Travelius said...

Best travel holiday packages
Hong Kong Holiday Packages
Hong Kong Tour Package
Hong Kong City Tour
Hong Kong Disneyland Package
Hong Kong Package from India
Hong Kong Trip Package
Hong Kong Package Deals
Hong Kong Tour Package from Delhi

The Travelius, Best Holiday Packages.

Nicole said...

It is very easy to lose your focus, when you are under pressure and your deadline is approaching. But you should know that you are not alone. I'm a real procrastinator and if I have such situations, I ask for help this website. They are professionals and always are ready to help.

المتألقون للصيانة والتشطيب وكشف تسريبات المياه said...

شركة تنظيف بالاحساء
شركة تنظيف براس تنوره
شركة تسليك مجارى بالخبر
شركة تسليك مجاري بالقطيف
شركة مكافحة حشرات بالخبر

writersworldessay said...

Nice one. I am happy by reading this blog. really mind catching and informative post.Thank you for posting.. Here are some ways you can create your research papers with best research paper writing service

Unknown said...

Hi, the post which you have provided is fantastic, I really enjoyed reading your post, and hope to read more. Thank you so much for sharing this post, I appreciate your work. best essay writing service

edubirdie said...

This is extremely helpful info!! Very good work. Everything is very interesting to learn and easy to understand. Thank you for giving information. coursework writing service

Service Center Panasonic said...

Pelatihan Kursus Teknisi Service HP Bandar Lampung
Kursus Teknisi Service HP Bandar Lampung
Kursus Teknisi Service HP Bandar LampungServis HP Metro
Kursus Teknisi Service HP Bandar Lampung
Kursus Teknisi Service HP Bandar Lampung

Ciana Langham said...

Hi! If you need help with writing papers like compare and contrast a sound of thunder and nethergrave you'd better apply to the essay writing service for professional help. There you can find the best writers with big experience of writing a different kind of papers. I think it's the best option for people who have got writing problems.

Stefan Carl said...

If you have fear of failure and your ideas are not coming in your dissertation writing then you can remove out your stress of dissertation writing with the students assignment help that has no. dissertation helpers USA in the USA for the students who are facing problem in dissertation writing.

Service Center Panasonic said...

https://servicecenterlglampung.wordpress.com/
https://jasakursusservicehp.blogspot.com/
https://servicecentervivo.wordpress.com/
https://servicecentersamsungbandarlampung.blogspot.com/https://youtubelampung.blogspot.com/
https://serviceiphonelampung.blogspot.com/
https://servicecenteriphone.blogspot.com/
https://servicecentervivo.blogspot.com/
https://makalahbiz.blogspot.com/ http://lampungservice.com

spot said...

Thanks for your interesting ideas.the information's in this blog is very much useful for me to improve my knowledge.
Transcription in USA
Transcription in USA
Transcriptions in US
Medical Transcription in USA
Medical Transcription Companies in USA
best Medical Transcription Companies in USA
Medical Transcription Services USA
Transcription companies in USA
Transcription services in USA
transcription companies in us
Transcription USA
General Transcription companies in US
Medical Transcriptionist in us

lampungservice.com said...

iphoneiphone vivoaxiooiphonebimbelbateraiServiceyoutubeService

Buy Meds Online said...

viagra online
buy cialis online
buy cenforce online
order cialis online
order viagra online
buy soma online
buy viagra online
buy kamagra online in usa
buy tadalafil online
buy levitra pills online

Sharon Wood said...

HP Printer Customer Care Number
Brother Printer Support Phone Number
Lifelock Customer Service Phone Number
Canon Printer Customer Service Phone Number

Malaivel Siddha Hospital said...

Wow, what an awesome spot to spend hours and hours! It's beautiful and I'm also surprised that you had it all to yourselves!
Kindly visit us @
Donate blood - Malaivel Trust
HIV/AIDS Complete cure for siddha in Tamilnadu
HIV/AIDS Complete cure test result in Tamilnadu
AIDS cure 100% for siddha in Tamilnadu
Cure best blood cancer treatment in Tamilnadu
Best HIV Treatment in India
Top HIV Hospital in India
HIV AIDS Treatment in Mumbai

ethanivys00@gmail.com said...

Wonderful blog! I found it while browsing on Yahoo News

Regards= office.com/setup

Kaylee Smith said...

To get started Office 2019, 2016 and office 365 download or installation you must need valid 25 character product key & visit-

office.com/setup |
www.office.com/setup |
office.com/setup

Rob Martin said...

Get the Case Study Help in Australia and writing services from AssignmentTask.com in Australia, UK and USA. Gets a Professional Custom Assignment writing from the best specialists of this subject in Australia?

Unknown said...

I have read your article, it is very informative and helpful for me. I admire the valuable information in your articles. Thanks for posting it. In case you searching for the best SEO service in Dubai.click on my profile
https://uaewebsitedevelopment.com/seo-services-dubai/

Unknown said...

The nice blog provides many informative and helpful articles. Thanks for sharing the information. If you are looking for the best kitchen cleaning services Dubai. they can connect with us
https://uaetechnician.ae/kitchen-cleaning-services-dubai

Aixonne said...

Do you want to visit girly iphone xr cases? Go to Aixonne online store to see And not just for XR but iphone xs max protective case and girly iPhone X cases are available too.
There you can see a list of girly iphone 8 plus case , girly iphone 7 plus cases and iphone 6s plus case for girl .
In clothing category of their products you will be offered a collection of silver necklace for women .
iPhone Tempered Glass

brotherprintersupport said...

https://www.brotherprintersupport.co.uk

https://www.brotherprintersupport.co.uk/brother-printer-support/

Brother Printer Support or Call : +44-121-286-4615

How to Solve Installation Problem with my Brother printer using a USB/local connection

https://www.brotherprintersupport.co.uk/2019/06/27/how-to-solve-installation-problem-with-my-brother-printer-using-a-usblocal-connection/

How to Setup Brother Wireless Printer Call +44-121-286-4615
https://www.brotherprintersupport.co.uk/2019/06/28/how-to-setup-brother-wireless-printer-call-44-121-286-4615/
Brother Wireless Support or Call : +44-121-286-4615

Brother Printer Support or Call : +44-121-286-4615

Brother Printer Drivers Call: +44-121-286-4615

https://www.brotherprintersupport.co.uk/2019/06/27/brother-printer-drivers-call-44-121-286-4615/


Brother Printer Support Drivers or Call : +44-121-286-4615


brother printer helpline
brother printer support number
brother printer technical support

Unknown said...

Very well Blog...

If a person's computer data is lost, then contact us Hard drive data recovery services

smith warner said...

norton.com/setup to Secure your All Windows, Mac & Android devices. Get norton setup and Run to Install Norton Anti Virus. for more information about norton antivirus, just visit www.norton.com/setup.

mcafee.com/activate - Get the comprehensive internet security on your device with mcafee activate Antivirus. Get your McAfee installed and activated with easy steps. for more information just visit www.mcafee.com/activate.

office.com/setup - To get started with Microsoft Office download & install office setup. Find the product key for activation at www.office.com/setup.

Patricia Onorato said...

norton product key
mcafee com activate
avg activation key
webroot activation

jacklinemelda said...

Every student has the chance of enjoying our affordable research papers. The writers hired at the company are professionals with significant experience. You can also buy pre written essays today!

Lukesharcr said...

I am really happy to read this blog post,you have many information put it on this article,
am really suggest to my all dear friend to visit this blog post and collect this useful and valuable information.

www.office.com/setup

Nino Nurmadi said...

ninonurmadi.com
ninonurmadi.com
ninonurmadi.com
ninonurmadi.com
ninonurmadi.com
ninonurmadi.com
ninonurmadi.com
ninonurmadi.com

Deam jones said...

Especially if you work on online Microsoft Office, you can only gain access to your account and other benefits if you have a registered account subscription. norton.com/setup | office.com/setup

Deam jones said...

norton.com/setup provides world class security solution. office.com/setup Every Norton antivirus system is designed with the latest technology and updated regularly to bring in new virus definitions that help in detecting the viruses. Norton.com/setup antivirus system is one such program that has numerous all-round protection antivirus. norton.com/setup This antivirus works on every device including PCs, Macs, tablets, and smart phones and every operating system such as android and IOS.

Shaimaa Elsadek said...

شركة مكافحة النحل بالرياض
شركة طارد الحمام بالرياض
شركة تركيب طارد الحمام بالرياض
شركة مكافحة الحشرات شرق الرياض
شركة مكافحة الحشرات غرب الرياض
شركة مكافحة الحشرات شمال الرياض
شركة مكافحة الجرذان بالرياض
شركة مكافحة الافاعي بالرياض

Shaimaa Elsadek said...

شركة مكافحة الوزغ بالرياض
شركة رش دفان بالرياض
شركة مكافحة فئران بالرياض
شركة مكافحة صراصير بالرياض

شركة مكافحة الفئران بالرياض
شركة رش مبيدات بالرياض
شركة مكافحة حشرات بالرياض
شركة مكافحة النمل الابيض بالرياض
شركة رش مبيدات حشرية بالرياض

Shaimaa Elsadek said...

شركة رش مبيدات بالرياض
شركة غسيل خزانات بالرياض
شركة مكافحة بق الفراش بالرياض
شركة مكافحة صراصير بالرياض
شركة مكافحة العقارب بالرياض
شركة صيد قطط بالرياض
شركات مكافحة الحشرات بالرياض
شركة مكافحة الحمام بالرياض
شركة مكافحة قوارض بالرياض
شركة رش مبيدات حشرية بالرياض

Kaylee Smith said...

office 365 setup will help the users in activating, downloading and installing Microsoft Office on their PC . It will provide you the Step-by-Step guide for Microsoft office. If the subscription has expired, learn how to renew it. Get the complete guide to download, install and activate MS office setup.
office.com/setup |
Office.com/myaccount |
Office 365 Setup

jos butler said...

mcafee.com/activate – Facing problems with mcafee products? Get the best instant solution for downloading, installing and activating McAfee Antivirus via mcafee activate and www.mcafee.com/activate.

norton.com/setup - Learn how to manage, download, install, and activate norton. Visit www.norton.com/setup, Enter norton product key and Install norton setup.

meldaresearch said...

Our Company prides itself as the best providers of Buy Non-Plagiarized Research Papers in the industry due to the numerous years we have provided our clients with reliable and quality services.We ensure that the experts offering the client with writing services have the skills and qualifications in the specific subject area requested by the client thus ensuring they get the best Write My Research Paper services.

SkyNaijaMusic said...

Excellent blog & I love your
latest foreign Music you have a good work here... It's hard to find good quality writing like yours nowadays..
Naija Entertainment
Excellent blog & I love your
latest naija Music

Pankaj Singh said...

Nice blog, thank you so much for sharing such amazing content with us. Get the latest Website Designing and Development services in Delhi at Ogen Infosystem.
Ecommerce Website Designing Company in Delhi

Kaylee Smith said...

Office com myaccount will help the users in activating, downloading and installing Microsoft Office 365, Office 2016, Office 2013, Office 2010 and Office 2007 on their PC . It will provide you the Step-by-Step guide for Microsoft office 365. If the subscription has expired, learn how to renew it. Get the complete guide to download, install and activate MS office setup.
office.com/setup |
Office.com/myaccount |
Office 365 Setup

Puremelda said...

Our hire Custom Research Paper Service writers understand the characteristics of proper writing needed in Research Paper Writer Services.

meldaresearch said...

We are the best writing company providing Research Paper Writing Service and our Write My Research Paper are 100% authentic as we do not offer pre-written articles regardless of the likeness of topic or research project.

mathewanderson202 said...


What a superb post! I have no words to describe this post because everthing is clear with your wonderfull words. I really feel out for world reading your post, it is full of fresh and usefull. I really appreciate, keep the work continue.

norton.com/setup ! www.norton.com/setup ! office.com/setup ! office.com/setup ! mcafee.com/activate ! mcafee.com/activate





Mobile app development company in Mumbai said...

Mobile app development company in mumbai

king said...

Excellent blog & I love your
Download nigerian songs
you have a good work here... It's hard to find good quality writing like yours nowadays..

Neha Sharma said...

Rice Bags Manufacturers
Pouch Manufacturers
wall putty bag manufacturers
fertilizer bag manufacturers
Lyrics with music

Neha Sharma said...

we have provide the best ppc service.
ppc company in gurgaon
website designing company in Gurgaon
PPC company in Noida
seo company in gurgaon
PPC company in Mumbai
PPC company in Chandigarh

Neha Sharma said...

we have provide the best fridge repair service.
fridge repair in faridabad
Videocon Fridge Repair in Faridabad
Whirlpool Fridge Repair in Faridabad
Hitachi Fridge Repair In Faridabad
Washing Machine Repair in Noida
godrej washing machine repair in noida
whirlpool Washing Machine Repair in Noida
IFB washing Machine Repair in Noida
LG Washing Machine Repair in Noida

Neha Sharma said...

iso certification in noida
iso certification in delhi
ce certification in delhi
iso 14001 certification in delhi
iso 22000 certification in delhi
ISO Consultant in Delhi
iso certification services in delhi
iso certification in faridabad
ISO 9001 Certification in Noida
website designing services
SEO Service Consultant

Digital marketing Company in Dubai said...

Damaged, formatted files can recover by the best Data Recovery Dubai. Providing you the best solution recovery. In our Team, we have experienced and Well-talented professionals if these teachers are not able to recover your data then you are not charged. Our main focus is to secure your data and files https://uaedatarecovery.com//

Unknown said...

Download Latest Naija Music & Video

boss said...

helpful Article

Get Latest Business News


Football news


Get Latest Entertainment update

boss said...
This comment has been removed by the author.
Dale Morris said...

Norton customer service australia
McAfee Phone Number
Microsoft Edge Contact Number
Malwarebytes tech support
Avast customer service
Comcast email support phone number
Microsoft outlook support
Mozilla firefox toll free number

Schooldiary said...

you have a good work here...


Download Hip-hop Music 2019

Scholarships 2019

Download Movie Mp4

Download Mp3

Mark Steven said...

HP PRINTER TECHNICAL SUPPORT NUMBER
HP TECHNICAL HELP NUMBER
HP PRINTER SUPPORT NUMBER
HP PRINTER CUSTOMER SUPPORT NUMBER
HP PRINTER SUPPORT PHONE NUMBER
HP PRINTER TECH SUPPORT
HP PRINTER TECH SUPPORT NUMBER
HP PRINTER TECH SUPPORT PHONE NUMBER
HP PRINTER TECHNICAL SUPPORT PHONE NUMBER
HP TECH SUPPORT FOR PRINTERS
hp technical support help number
HP Printer Technical Support Number
HP Technical Support Number
hp tech support help number
Google Account Recovery
askhelpme
HP Printer Technical Support Phone Number
HP Printer Customer Service Number

technation said...

If you still have issue while depositing or withdrawing cryptocurrency from Bittrex, even if you fail to create or login to your Bittrex account, just feel free to get in touch with Bittrex Customer Support services for technical assistance with issues related to Bittrex wallet.

bittrex support number
bittrex support phone number
bittrex support


You can contact Bittrex tech support representatives via phone call or live chat. They are available 24*7 for the convenience of users.

bittrex exchange
bittrex customer service
bittrex phone number