3

If I have an unknown file format and

  • someone can still run the program and save any number of files
  • someone can modify all options of the program individually
  • it is known that the file format does not use compression
  • it is known that the file format does not use encryption
  • it doesn't seem to have a checksum
  • I have "unlimited" money to pay someone

is it then guaranteed that someone can reverse engineer the file format?

4
  • 4
    I think someone can reverse engineer the file format, especially if the that someone can use debugger to understand the code of the program.
    – nrz
    Mar 17, 2014 at 19:19
  • @nrz: thanks for the hint. Being precise matters. Of course you needn't guess my skills. Mar 17, 2014 at 19:22
  • What about a checksum? They don't fall into your categories of 'encryption' or 'compression'. Checksum algorithms can very hard to second-guess, is my experience.
    – Jongware
    Mar 17, 2014 at 22:36
  • @Jongware: good point. It doesn't seem to have a checksum or at least doesn't complain if the checksum doesn't match. I have added this to the question. Mar 17, 2014 at 22:45

2 Answers 2

4

If someone has access to the program that reads from or writes to files in the file format, then yes, that someone can reverse engineer the functionality in the program to understand the structure and content of the file.

I have "unlimited" time and money to pay someone

Perhaps I should give you my email address! ;)

4
  • Homomorphic encryption could potentially cause problems. But it's not a practical issue.
    – Antimony
    Mar 17, 2014 at 20:17
  • >Perhaps I should give you my email address! ;) LOL! Mar 17, 2014 at 20:22
  • Sorry, now that I know it is possible, I'll try myself. I'd better save my unlimited money for the impossible tasks. Mar 17, 2014 at 20:33
  • @ThomasW. If it wasn't possible, then you couldn't pay anyone to do it anyways, so what's the point in even offering this?
    – crush
    Mar 18, 2014 at 15:25
1

It's guaranteed that given enough time and resources anything can be reverse engineered.

8
  • 4
    This answer is too short to be true. Therefore I gave the conditions in my question. If I just had one sample file, the file format uses encryption and the executable is not available, then I bet you can't reverse engineer it. Mar 17, 2014 at 20:41
  • 1
    @ThomasW. The entire file format might not be reversible, but enough of it to produce the sample file could be. With enough time, any encryption is breakable.
    – crush
    Mar 18, 2014 at 15:26
  • @crush: The problem of breaking the encryption is that you need to know the expected output. Without the output you never know if you're finished or not. And yes, I can write a program which creates the sample file: copy sample.file newsample.file Mar 18, 2014 at 15:55
  • @thomasw. It shouldn't be too difficult to sanity check the decrypted data to see if you are dealing with data in a reasonable range, or just meaningless bytes. Besides that, it sounded like you know some of the values to expect in the decrypted data. Nonetheless. We are talking about hypothetical situations here. In reality none of us have the time to spare to allow any modern algorithm to crack some of the more secure encryptions out there.
    – crush
    Mar 18, 2014 at 20:43
  • 1
    Well, @ThomasW., I'm talking about real cases, not a tiny 3 bytes "file". Anyway, if you believe there is something you can do that is not possible to reverse engineer, go for it! Mar 20, 2014 at 12:13

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.