Reverse Engineering Proprietary Software

Status
Not open for further replies.

SKIPPY PB

Estimable
Jan 9, 2015
53
0
4,610
Not really sure where to put this so its ended up here. For all of you with more experience then me in programming and coding. Let me break my question down real simply.

My current project is trying to get into my engine management components whether car, bike, scooter, etc. They are made to communicate with a computer much like an ipod or whatever. So im wondering how would one go about trying to dive into this area. There is other software out there that does this both aftermarket and manufacture made.

Is it possible to see a program in code like you can do with a web browser (like when I hit F12 for me)

Would it make sense to do something like this to understand what it is doing and then copy it and re-write it again?

 

unksol

Distinguished
Sep 12, 2011
473
0
19,210
No you cannot do that. Any code is compiled and non viewable. It would also be illegal to do what you propose and definitely does not meet the definition of reverse engineering.

Look at one of the numerous open source OBD projects instead
 

COLGeek

Cybernaut
Moderator

BTW, unksol is spot on. You can't reverse engineer the actual code based on the codes you see. Also, what you are proposing is not really what the title of the thread asks.

As previously suggested, there are several open options for you to explore.
 

SKIPPY PB

Estimable
Jan 9, 2015
53
0
4,610
I see. Duelly noted. I will check out those links.

This is even illegal when used for educational purposes? My understanding was that re-distribution of stuff like this was where the legal part comes in. I am merely doing this because I want to figure out how its working. I'm not well versed in the software legalities in the US but I will take your word for it. If you are talking about the copy and re-write portion. I was just looking to figure out what does what with that statement. NOT to use it in the sense that I just copy and modify it 15% then call it mine.

Anyway I figured it might be like a flattened photoshop image but thought it was worth asking. I don't really know how to ask what I am trying to say here, my tongue is tied here lol

Again thanks for the suggestions let me dig a little deeper into the subject.


EDIT: Let me re-word this a little though, the proprietary wording may have been mis-leading because I can see how that word alone makes the whole thing illegal. Im thinking quick here though and missing the basics and thanks COLGeek cause you helped me steer this in a more proper direction.
 
Whether reverse engineering is legal or not depends on lot of factors:
- the license agreement under which the application is distributed (most commercial apps have a language which does not allow for reverse engineering)
- the laws of the country / state where you reside

Technically speaking, it not **impossible** to reverse engineer, it is just (extremely) difficult. One needs to have a lot of experience in the target OS / hardware, in order to understand how a series of hex digits make an algorithm.
 

Math Geek

Estimable
Herald
i don't think it is "illegal". it may go against the EULA of the software and hardware you'd get it from but i doubt it is illegal unless you try to copy it for your own money making purpose. look at all the apple v samsung suits when one has sues the other for things looking a bit too close to each other. same goes with software. their code is their property unless it is open source (which it is clearly not) and modeling it on other software would be about the same a counterfeiting.

ford has actually tried to prevent people from getting into the sync system in their cars already but they were shot down the same way apple was over jailbreaking. so some form of getting into the code and even hacking in is perfectly legal when trying to gain low level access to the system. but taking it apart and using that to piece together something new i don't think is covered in this.

if there are apps and such for the systems you want to look at, is there not an sdk for the system you can get to develop on? this could provide the insight into the system you look to gain.
 

randomizer

Distinguished
Whether it is legal to reverse engineer a program covered by a EULA depends on your jurisdiction's copyright laws and how strongly your jurisdiction enforces contract law.

Now building a new program based on the reverse engineered original is a whole other issue. It again depends on your jurisdiction, but many countries are unlikely to allow this under their respective copyright laws. In order to achieve what you want while avoiding copyright infringements, you will have to design your new program using a "clean room" approach. At a high level, clean room design involves:

[listnum]
■Someone reverse engineering the original program and writing up a specification for a new program that works similarly.
■Someone else who has never seen the reverse engineered work writing a new program based on the specification.
[/listnum]

It is more nuanced than that of course. There are also potential problems with patent law which this approach won't protect you from. As Tom's Hardware does not provide legal advice it would be best to consult a lawyer ensure that your approach is sound and your new specification is really clean.

Or you could just not bother potentially landing yourself in a minefield.
 

SKIPPY PB

Estimable
Jan 9, 2015
53
0
4,610
We'll with all due respect this isn't that serious. I am not trying to hack my way into the pentagon. I'd rather just call hillary, all jokes aside I am just looking to re-invent the wheel for educational purposes. Nothing is going to be sold here. I'm not looking to alter windows 15% and sell it retail.


Simply my goal is to take control of my on-board computer systems and write my own code. I'm not looking for a legal debate as we are talking hypothetically here. And to be honest you have no idea if theres a 12 year old kid on the other end of the computer trolling by copying something he found someone say on the internet elsewhere just to provoke an argument.

How can one go about creating their own driver? I'm going to start googling that now, I am sure it is incredibly complicated especially with minimal programming knowledge. However what I would like to do is look into creating my own OBD scan tool that can communicate through the 16 pin interface via USB or other port.

For example I currently have something called a galletto 1260 which is a USB to OBDII cable. I'm wondering if I can make a windows based driver to take control of that hardware. Thats probably over my head but maybe its possible. Everything is with google nowadays.
 
Status
Not open for further replies.