make a canon service tool

ulao

Getting Fingers Dirty
Joined
Mar 7, 2023
Messages
24
Reaction score
8
Points
23
Printer Model
canon pixma pro 100
Hi all, I have been a canon printer owner for a long time, my pro 100 seems to like to eat boards, so I learned a lot about them. Once thing i learned is that there is a tool you need for some basic operation.

I noticed a few things.

1) they are all done via a key gen lic. file.
2) they all have some, not all printers, they work with
3) they all have ebay sellers
4) there are also fake apps
5) they only work over usb ( this was some key info)

But lets just take a step back here for a moment, why.... Canon is not going to make a key gen for a service tool. They are also not going to make fake stuff. All of these apps have to be made by someone outside of canon. And it just so happens I not only write software, I'm a USB software/driver tool writer. So I figured, let me have a look here... and sure enough the damn software uses what we refer to as "control transfers". the beauty of this is that those transfers are open on the USB bus. I was able to sniff them, and I know exactly how it works.

So I'm thinking, this can go two ways. 1) I became another jackass and sell it. 2) I open source it. Well I'm not exactly interested in the first, I mean I'm the type to make money on what I can, but I'm too damn busy for this, But I could start the project, and put it on git hub. Though before I do any of that, I figure I'd get some opinions. I may just make it for myself but that will depend on what response I get. I'm very open to ideas here and very happy to explain how these service tools work. I'm also here to tell you this is not going to be hard to do but we will want a devleoper ( or many) to keep up on this. All the software prevention is from the people selling it, not canon. The only thing they did was not release it to the public. It was an internal tool only and it looks like someone cloned them. Well anyways, I digress, what say you?
 

James Mike

Fan of Printing
Joined
Aug 2, 2014
Messages
91
Reaction score
66
Points
67
Location
Caloocan
Printer Model
Canon MG6270;G3010
I would love an open-source alternative to the Service Tool however a potential issue is keeping up with the changes with the internal tool for supporting new Product and Firmware releases since there is no protection within the printer itself against corruption by an invalid ST command,

I'm not sure what changed with the availability of the Internal Tool that inspired/required it being pay walled. Maybe Canon required online authentication that made redistributing the unmodified tool useless?
 

jz7gzucrj

Print Lurker
Joined
Mar 29, 2024
Messages
1
Reaction score
0
Points
1
Printer Model
Canon MG6150
Hi @ulao,

Definitely open-source it, even if you do not intend to have a clean release.
Personally I'm interested in participating in this, I'm currently in need of something trustworthy to run as well. I'm a developer myself, but I'm not this proficient with USB as I only know the basics (what are the big components of the protocol (controller, devices, endpoints, etc.), some details of some of the numerous device classes, the different modes (bulk, stream, etc.)). I don't think we will need a lot of developers. A couple should suffice to have a MVP.

Anyway, I'm up to the task, hit me up if you're still interested in this.
 

ulao

Getting Fingers Dirty
Joined
Mar 7, 2023
Messages
24
Reaction score
8
Points
23
Printer Model
canon pixma pro 100
Running short on free time ATM, but a good start is an app ( c#,c,python etc..) to enumerate a common HID usb device. Search by USB ID to get the printer and verify its there. ( that’s step one). Then we just need an API hook to HIDAPI. in there we can open calls via control transfers (step 2).


Alongside of this we will need to sniff the USB bus with wireshark or usblyzer (step 3). See what commands this software sends. This is less of a programmers task and more anyone can do. You only need the printer, software, and the sniffing tool.

Last step is mimic what we see. As you may know projects like this take off when someone is willing to step up. The more progress made, the more it will entice others to help. If any progress is made on a github page or like, I will certainly jump in.
 
Last edited:
Top