5

In my research field, software tools are considered a research outcome, and therefore it's normal that researchers build tools and make them publicly available. However, in many cases, the authors only make the executable for a tool available, without sharing the source code used to build the tool.

This makes things complicated for people who want to use or extend the tool: for example, they might be unable to run the tool, because it has a dependency to an outdated, flawed, or expensive commercial "baseline" tool. While they might have the programming skills to modify the tool so it can be run, this usually requires changes to the source code.

However, there is a kind of tool called decompiler which allows you to restore the original source code (or something similar) from the given executable. In some cases, you can work with the restored source code as good as if the authors had made the code available in the first place.

Assuming I want to use a particular tool for my research, and I have already unsuccessfully contacted the authors to obtain the source code in a consensual way.

  1. Is it OK if I decompile the code to do my research? Yes

  2. If yes, then how do I deal with the fact that I decompiled the tool in my paper? Would it be considered rude/sketchy to say that I did it?

  3. Can I make the modified tool available to other researchers (and yes, as executables and/or source code)? No


Edit: Thanks everyone. For questions 1 and 3, the correct answers for my case are now clear to me (see above). I'm still not sure about question 2, though. Are there previous examples in literature where people did this? Would it be acceptable to not address the fact that I decompiled the source code, by treating it like an irrelevant detail? Reimplementing the complete tool is not an option in my case.

  • 1
    What license was the original executable/code provided under? GPL? MIT? Something else? – tonysdg Jan 26 '17 at 21:04
  • In terms of civil legality, it depends wholly on the permissions afforded to you by the license; in terms of ethics, particularly if the license is somewhat ambiguous, I would say it is definitely on the shady side. I would prefer to reproduce the original work independently if at all possible. – Bryan Krause Jan 26 '17 at 21:06
  • 6
  • 4
    If the original code was stinky, and now you're cobbling together something by decompiling and modifying it, doesn't that suggest that your modified version is going to be really, really stinky? How can you base research on this? What reason would you have to think that the output of the code was correct? – Ben Crowell Jan 27 '17 at 1:59
  • 2
    If you have only emailed them once for the source code, I would follow that up with another email or two (probably sending the same email again). When you get 100 emails a day, some of them get forgotten about. – KraZug Jan 27 '17 at 15:52
9

Using a decompiler, you can work with the restored source code as good as if the authors had made the code available in the first place.

Not even close. Try running the decompiler on a free software program (to avoid any ethical tangles) to see what it generates. The output of a decompiler, especially when run on an optimized binary, is horrendous.

Is it OK if I decompile the code to do my research?

Legality depends on the jurisdiction you are in. Ethically, my view is that there is no difference between decompiling an executable to see how it works and taking apart a mechanical device to see how it works - both are perfectly legitimate means to learn about the state of the art.

If yes, then how do I deal with the fact that I decompiled the tool in my paper? Would it be considered rude/sketchy to say that I did it?

I don't see how it could possibly be rude. Your paper should accurately outline your methodology, so I would say you ought to include this information.

Can I make the modified tool available to other researchers (and yes, as executables and/or source code)?

No, as it would clearly be a derivative work. As you don't have any license to use the original work, I think this would be illegal in most, if not all, jurisdictions.

  • In my case, the decompiler output looks almost perfect; it only lacks comments and - thanks to Java's type erasure - some parameters for generics. I've weakened my initial statement about decompilers in general, though - thanks. – lighthouse keeper Jan 27 '17 at 6:35
2

(USA knowledge here, but may apply elsewhere)

All I can say is this. Anything you plan on doing with code that belongs to someone else, it is best to have permission in writing from them.

Decompiling falls under reverse engineering, and there are only certain situations that this is allowed without permission (such as dealing with viruses/malware, and suspicious payloads).

As far as making decompilation/reverse engineering tools.......that can be tricky here in the USA.....The DMCA (Digital Millennium Copyright Act), which is an oft abused piece of legislation, actually has been used in court to prohibit this activity, even by researchers. See this link

  • 1
    In U.S., unless specifically prohibited by an EULA you can engage in reverse engineering as long as your purpose and effect is not that of disabling access controls for DRM. Whether you want to fight for the complete extent of your legal rights against a powerful interests in court is another matter, of course. – DepressedDaniel Jan 27 '17 at 7:42
  • @DepressedDaniel very true. – NZKshatriya Jan 27 '17 at 12:05
  • I love getting downvotes with no comments (so easy to address potential shortcomings that way /sarcasm) – NZKshatriya Jan 27 '17 at 18:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.