Altium CricuitMaker reverse engineering  - Page 1
Forum section: electronics / general

author: CarloMara
author_rank: Newbie
timestamp: June 25, 2015, 10:17:09 pm
content: Hello guys,It’s my first post here and I really hope it will be useful for the community.After playing a little bit with Circuit maker I thought if I could make a dummy server to use the software also when I in offline mode.After less than one day I can tell you the good news:It is possible. I reverse engineered the protocol and it’s super simple. It takes only 16 steps to submit the changed file to Altium. Here (http://tinyurl.com/nn6bemr) you will find a short diagram of the protocol, if you want more detail I can give you everything.As in everything this protocol has some downside, the major one is that it doesn’t use any kind of encryption to send the data nor it uses an ssl connection to the server. I think that it could be possible to send malicious files to any computer that is using CM. Also everything is sent as plain text, so lots of data can be extrapolated, like my computer account, what system I’m using.I will send more detailed information, with all the details and the data that I dumped with wireshark.Stay tuned!CarloMara, with a big help from Ddavidebor!

author: DerekG
author_rank: Frequent Contributor
timestamp: June 28, 2015, 12:51:56 pm
content: Quote from: CarloMara on June 25, 2015, 10:17:09 pmGreat news. Keep the investigative results coming.

author: EEVblog
author_rank: Unknown
timestamp: June 28, 2015, 02:36:31 pm
content: Quote from: CarloMara on June 25, 2015, 10:17:09 pmThat sounds nasty.

author: c4757p
author_rank: Super Contributor
timestamp: June 28, 2015, 02:50:46 pm
content: General rule of thumb: if the protocol is hidden so people can't tell without actual inspection if it's secure..... it's not. Nobody can be arsed with security unless they know they'll be in trouble otherwise.

author: con-f-use
author_rank: Unknown
timestamp: June 28, 2015, 07:31:12 pm
content: Quote from: CarloMara on June 25, 2015, 10:17:09 pmIf that's true, someone's head should roll!

author: SeanB
author_rank: Super Contributor
timestamp: June 28, 2015, 07:44:24 pm
content: At the least they should have used a SSH secure tunnel or even a simple VPN to transmit the data, keying to the user ID at a minimum. This would be something over bugger all, and I wonder how this would cope with an ISP doing DPI and injecting an ad or other into the datastream.Then again, it points to them doing the development on an internal network, and simply exposing it to the Internet at large. Wonder if they also exposed all the file shares and other internal facing protocols there as well. At a very least they should have put a decent edge appliance on to do multiple VPN connections, that is easy enough and the client side software is common and easy to use as well.

author: codeboy2k
author_rank: Super Contributor
timestamp: June 29, 2015, 06:55:47 am
content: more than likely they outsourced the web and Internet parts to a third party that they integrated with. I've had to work with so many outsourcing firms that develop web apps that I know for a fact that these guys just copy and paste what they used in the past or find online, they use a mish-mash of libraries and glue code, copy and paste the code multiple times in multiple places in the source trees, and don't even think about security ever.They get hired to write something that I have to look at and decipher later... it's always incomplete, insecure, and unmaintainable garbage.I suspect that happened here too.

author: ataradov
author_rank: Super Contributor
timestamp: June 29, 2015, 06:25:57 pm
content: Why not just pirate the full version? Legally the end result is the same, but you also get standard shortcuts.This effort is good for exposing holes in their security, but does nothing for community, really.

author: con-f-use
author_rank: Unknown
timestamp: June 29, 2015, 08:13:22 pm
content: ...nothing but improving the user's security...Also legally the damage to Altium is a lot smaller than pirating the full version. I'd say that is a significant difference.

author: c4757p
author_rank: Super Contributor
timestamp: June 29, 2015, 08:20:02 pm
content: Pirating the full version is arguably theft - Altium never gave me anything. (Let's nothavethat argument, please? O0) Forcing CM to work differently is, IMO, a whole different category of things: "doing what I damn well please with the thing you gave me". The fact that the end result for Altium's bank accounts is similar - well, sucks for Altium, but that's their fault for putting something that cannibalizes their main product's sales on my computer for free...

author: ataradov
author_rank: Super Contributor
timestamp: June 29, 2015, 08:56:04 pm
content: Well, there is difference for their bank account - they were collecting usage information. And now that goes away.I don't know how Altium is distributed, but is not it the usual - download for free and then enter the key? In which case I don't see how this thing is different from running a crack and using a stolen key.PS: Just to be clear, I'm mostly playing devil's advocate. I really don't care about Altium full or limited.

author: free_electron
author_rank: Super Contributor
timestamp: June 29, 2015, 09:20:30 pm
content: but what is the point of working offline ? even if you can spoof the server : you lose access to the parts library !You may be able to do some routing in off-line mode, but schematic work is impossible as you cannot place new parts.You could only shuffle wires , netnames or traces. any parts modification / adding requires live connection.

author: funkathustra
author_rank: Regular Contributor
timestamp: June 30, 2015, 06:11:23 am
content: I have to applaud Altium for not going too DRM-crazy with respect to CircuitMaker.You don't have to actually spoof the server to work offline (as long as you authenticated when you fired up CircuitMaker). Once you're connected, you can easily work on arbitrary projects (cloud-based or not) by dragging them into the software to open. By default, they live in your AppData folder, but can be copied/moved elsewhere if you'd like.I'm not going to go into the details, because I think it's disingenuous to use CircuitMaker for proprietary designs, but there are project-specific settings you can change to allow you to work on projects locally without ever having to commit -- even to generate outputs.I have no idea if Altium is going to tighten things up for a later release to more strongly enforce their community sharing requirements, but as of right now, it's implemented in a way to give power users quite a bit of flexibility.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: June 30, 2015, 10:25:07 pm
content: Quote from: free_electron on June 29, 2015, 09:20:30 pmScraping their servers to make offline copies might be a useful approach.Tim

author: free_electron
author_rank: Super Contributor
timestamp: July 01, 2015, 05:49:42 am
content: Quote from: T3sl4co1l on June 30, 2015, 10:25:07 pmthat doesn't work. You would need to install your own vault server. as far as i know CM is actually pulling data from a gigantic altium vault.