On Saturday 15 September 2007, Rui Miguel Silva Seabra wrote:
> On Fri, Sep 14, 2007 at 03:25:38PM -0700, J.C. Roberts wrote:
> > > I'd love to see how an user who gets a modified binary version
> > > has the freedom to modify it. Go ahead. Prove me that it doesn't
> > > allow some users to loose freedom...
> >
> > Hello again Rui,
> >
> > the US. Over here, if you own a copy of a program, you can modify
> > it as much as you want
>
> Good luck doing so without any source code.
>
> > Of course, you are free to have strong feelings about whatever you
> > like, and hold opinions based on flawed understanding, but as long
> > as you insist on remaining uneducated about the laws, you are
> > failing yourself and failing your supposed "duty" to make things
> > clear. Please stop.
>
> You seem uneducated about how powerless someone is without the
> freedom to change a program because he has no access to the source
> code.
>
> You stop.
>
> Rui

Actually Rui, what we have here is a perspective gap. You think of 
things as a typical day-job programmer where your whole world is source 
code. I think of things as a reverse engineer where everything (source, 
executables, hardware) can be inspected, understood and controlled 
exactly as I see fit.

If you had done the least bit of homework about the person you were 
chatting with, you would have realized I am far more educated in the 
field of reverse engineering than most people you might meet. Unlike 
most people, I actually do know what can and cannot be done without 
source code. In fact, my license for the newest and most cutting edge 
tool in the field arrived in my inbox this morning; it's called 
the "Hex-Rays Decompiler" and it's a brand new plugin for the IDA Pro 
Disassembler. As it's name implies, it can build a high level source 
code representation from nothing more than a binary.

I've been involved with reverse engineering on a professional level for 
over a decade, and more than twice that as a hobbyist. For *me* bending 
a binary to my will is not magic, and certainly isn't a big deal. But 
like all code, it does take time and effort. Also, the result of 
modification of a binary can be more fragile than working with source 
simply because there are more ways to get it wrong. But again like all 
code, if you take the time to do it right, there is no problem.

Modifying a binary is certainly not magic and is certainly not 
difficult. Uneducated, snot nosed kids regularly "reverse engineer" 
shareware and successfully disable copyright protection schemes. Search 
the web for the term "crack" and you'll see what I mean. Also you 
should realize the skill set of most of these software protection 
crackers is pathetic at best.

When you get into real reverse engineering, such as reimplementation (or 
recovery), documentation, augmentation, integration, auditing, 
analysis, modeling and similar, the skill level required is 
exponentially increased but it's still not magic and it's still 
perfectly doable. Though over the years I've managed to learn (and 
forget) the instruction sets and architectures of more systems than 
most people can name, I'm by no means special. In fact when it comes to 
useful talent, I'm on the lower rung of the ladder in comparison to 
many of the people on this list. If you ask any of the openbsd 
developers on this list if they thought I was a godly coder of some 
sort, they would all laugh hysterically at such an absurd suggestion.
And so would I.

Whether you wish to accept it or not, each of us are only as powerless 
to change binary programs as we want to be. If you or anyone decides to 
be powerless, I don't hold it against you mainly because I actually 
know the pain, agony and near obsessive-compulsive level of dedication 
it takes to be anything other than powerless.

As ironic as it may seem, with today being the long anticipated release 
of the very first working decompiler, the world of open source drivers 
is going to get very interesting in the near future. In a few hours, 
possibly days, after I've installed, read the docs and got a feel for 
this thing, I could easily build a source code representation from the 
vendor released Atheros binary windows drivers. Yep, all of the vendor 
secret sauce and all of the vendor work-arounds for silicon bugs will 
be sitting right in front of me to read...

Rui, you're a bright guy and you've made an admirable attempt to posit 
your views as well as support them with your reasoning but it's really 
time to stop. I hope we can agree to disagree on a few things and still 
go have a beer as friends one of these days.

kind regards,
jcr

Reply via email to