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.

16
  • 1
    What license was the original executable/code provided under? GPL? MIT? Something else?
    – tonysdg
    Commented Jan 26, 2017 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
    Commented Jan 26, 2017 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?
    – user1482
    Commented Jan 27, 2017 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.
    – SPPearce
    Commented Jan 27, 2017 at 15:52

2 Answers 2

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.

1
  • 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. Commented Jan 27, 2017 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

3
  • 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. Commented Jan 27, 2017 at 7:42
  • @DepressedDaniel very true. Commented Jan 27, 2017 at 12:05
  • I love getting downvotes with no comments (so easy to address potential shortcomings that way /sarcasm) Commented Jan 27, 2017 at 18:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .