rb->lcd_framebuffer[] is what you need. Various plugins use it.
It's important to note that this isn't the actual screen though - just an in-RAM copy of what is being displayed on the LCD. To transfer the data to the LCD, call rb->lcd_update() or rb->lcd_update_rect()
It's also important to note that the format of the data in this array is device-dependent, so if you want to bypass the graphics API in this way, you'll need different drawing code for different devices. I don't think there's any documentation on the different lcd formats, but looking at firmware/export/lcd.h and firmware/drivers/lcd-*.c should help (as well as looking at other plugins).