

- #WIRESHARK LINUX VIRTUAL MACHINE HOW TO#
- #WIRESHARK LINUX VIRTUAL MACHINE DRIVERS#
- #WIRESHARK LINUX VIRTUAL MACHINE DRIVER#
Printers are commodity products and pretty cheap for what you get new for hundred to a few hundred bucks, which is a hardware and software package that is likely to work flawlessly out of the box and for at least a few years. > While normally I would agree with your comment, printers are an especially complicated class of device. If I just had to get things working, I'd just use one of the many approaches to mix 32/64-bit userland binaries in order to shim the 32 bit Canon binaries into a 64-bit CUPS driver.

#WIRESHARK LINUX VIRTUAL MACHINE DRIVER#
If I were given this task and I had to produce a driver with source code (rather than just get things working), I'd start with a combination of USB sniffing and static decompilation (Ghidra/IDA) of the Canon binaries, followed by perhaps some dynamic analysis (logging shims) if things turned out very complex. Same for the "write 3 bytes to a USB device" hypothetical from upthread - electrical understanding of USB is interesting but ultimately unimportant if you're using an existing USB stack - higher level knowledge of USB endpoint types and transport mechanisms is the name of the game there. Understanding how the USB wire protocol works is definitely valuable knowledge in some arenas, but not at all important for the kind of reverse engineering task OP is trying to perform, as they can generally speaking trust the electrical layer is standard and only need to operate at a level above it. With existing USB devices you don't usually need to go nearly this low level to reverse engineer them - just enumerating the endpoints and then using Wireshark and USB packet capture is plenty sufficient. You should be able to do basic things like making the windows driver eject a piece of paper, and then doing that from Linux. That said, sniffing and replaying packets might get you pretty far.

It's going to be a really big project even for someone who has designed a printer and written a driver for it.
#WIRESHARK LINUX VIRTUAL MACHINE DRIVERS#
(Linux has built in drivers for all of these things, amazingly!) Now you have the basics of the communication down, and you can consider looking at wading into the undocumented archana of a proprietary one-off printer. If you really want to crawl before you walk, skip USB and attach these things to a Raspberry Pi or similar. Make it show up as a device you can write 3 bytes to and turn the onboard LED that color. Get a USB-capable arduino, try making a rotary encoder attached to it into a Linux input device. If you want to start reverse engineering stuff, I'd get the "forward engineering" down first. If you need a hard copy of a document, just email the thing to Kinkos and be done.
#WIRESHARK LINUX VIRTUAL MACHINE HOW TO#
I think that it's good to separate "I need a hard copy of a document I have" with "I'd like to learn how to reverse engineer proprietary hardware". This is the best advice I've read so far.
