DDC – the unused link


I learned to code on a commodore 64, while this machine had external connectors, even something of fake serial port, connecting a computer to anything was a challenge: the world was analog and chips were expensive. Because of this, I am of the mentality that if I have a data-bus somewhere, I want to be able to use it, and having a connection that I cannot use is quite frustrating.

One bus that is very common and nearly unused is DDC, basically an i²c bus that runs between your computer and you display. Nowadays all monitor host a small CPU that can display menus, adjust the brightness, maybe the volume of the built-in speakers. DDC was introduced with VGA, but is present in DVI, HDMI and DisplayPort. HDMI also supports another control bus called CEC which originated in the SCART specification. So I have my main CPU and the CPU on my display, and a data-bus between, what can be done with them? Not much, this is basically used by the computer to read information from the display, what is called Extended display identification data. The VESA specification seems to define many other functionalities, but I never saw them in use.

There might be some hope there: as that protocol is finally getting some interest. There was a very interesting presentation at last year’s black-hat conference: HDMI – Hacking Displays Made Interesting by Andy Davis from NGSecure. Basically he shows how a device can be compromised by exploiting weaknesses in the code that handles EDID, the display information sent back to the computer using DDC.

2 thoughts on “DDC – the unused link

  1. Fake serial port? Are you referring to the User Port used to connect a modem, or the IEC bus?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.