Skip to main content

Exploring Data Communication at System Level Through Reverse Engineering: A Case Study on USB Device Driver

  • Conference paper
  • First Online:
Computer Engineering and Networking

Part of the book series: Lecture Notes in Electrical Engineering ((LNEE,volume 277))

Abstract

Interactions among operating system, drivers, and peripheral devices are important for users to understand data communication at low system level, system architecture, and hardware programming. In this chapter, we study low-level data communication and resource management by conducting the development of a USB device driver. A reverse engineering approach has been adopted in this study, and we focus on exploring the USB protocol and developing a device driver for the Linux operating system. We have performed various experiments to evaluate the device driver from different aspects, and all testing results are remarkably good. We believe this work can provide users a clear practical understanding of data communication from the hardware level to user space applications as well as theoretical foundations to reproduce any unsupported peripheral hardware devices.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 259.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 329.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 329.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Linux Driver Project. http://www.linuxdriverproject.org

  2. USB desktop Missile Launcher. http://www.brookstone.com/usb-desktop-missile-launcher

  3. Anderson, D., & Dzatko, D. (2001). Universal serial bus system architecture (2nd ed.). Addison-Wesley Professional.

    Google Scholar 

  4. Axelson, J. (2009). USB complete: The developer’s guide (4th ed.). Lakeview Research.

    Google Scholar 

  5. Corbet, J., Rubini, A., & Kroah-Hartman, G. (2005). Linux device drivers (3rd ed.). Sebastopol, CA: O’Reilly.

    Google Scholar 

  6. Kadav, A., & Swift, M. (2012). Understanding modern device drivers. ACM SIGARCH Computer Architecture News, 40(1), 87–98.

    Article  Google Scholar 

  7. USBlyzer. http://www.usblyzer.com

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ziying Tang .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Sedaghat, L., Duerling, B., Huang, X., Tang, Z. (2014). Exploring Data Communication at System Level Through Reverse Engineering: A Case Study on USB Device Driver. In: Wong, W.E., Zhu, T. (eds) Computer Engineering and Networking. Lecture Notes in Electrical Engineering, vol 277. Springer, Cham. https://doi.org/10.1007/978-3-319-01766-2_38

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-01766-2_38

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-01765-5

  • Online ISBN: 978-3-319-01766-2

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics