views:

35

answers:

1

Hi,

I was thinking about developing an app that enables the user to remotely check the progress of a longrunning task. The server application running the task is an existing commercial tool and comes with a proprietary client to connect to the server to manage it. However, the client is available only for windows computers and not for mobile devices, hence my desire to fill the gap.

The communication between client and server is neither encrypted nor password protected in any way.

What would be the best way to analyze or reverse engineer such a proprietary protocol?

Are there any legal implications (I know this is not the place to ask legal stuff, but if you happen to know how to reverse engineer stuff you maybe know whether it is legal or not, too)?

+1  A: 

I'm a fan of http://www.wireshark.org/ for protocol analysis. Free, powerful, extensible, cross-platform.

As regards legal stuff: It depends on jurisdiction - and each country's courts seem to enjoy not coming up with consistent precedents. The general rule is reverse-engineering is okay for 'interoperability'. You'd really have to ask a lawyer for more info, though.

Personally if something is running on my machine and I want it to behave in a different way, I have no ethical issues forcing it to. That's just me, though.

I can fully imagine a virus writer ringing me up and making some kind of legal threats that I breached his EULA...

Rushyo
Hi Rushyo, thanks for pointing me towards wireshark. I installed it and did a few quick tests. It appears there's a lot I have to learn ;-) Can you recommend any wireshark tutorials that deal with the kind of thing I'd like to do to help me get into the matter? Thanks alot!
Toastor
I can't really recommend any, unfortunately, as I was entirely self-taught. It does assume you are familiar with protocol you are sniffing. If you don't know that, then you need to read the spec first! Wireshark themselves have a business model based around training, if you want to take advantage of that: http://www.wireshark.org/docs/ Otherwise, there's tons of tutorials on Google.
Rushyo