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
    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 '14 at 19:19
  • @nrz: thanks for the hint. Being precise matters. Of course you needn't guess my skills. – Thomas Weller Mar 17 '14 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. – usr2564301 Mar 17 '14 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. – Thomas Weller Mar 17 '14 at 22:45
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! ;)

  • Homomorphic encryption could potentially cause problems. But it's not a practical issue. – Antimony Mar 17 '14 at 20:17
  • >Perhaps I should give you my email address! ;) LOL! – joxeankoret Mar 17 '14 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. – Thomas Weller Mar 17 '14 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 '14 at 15:25
1

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

  • 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. – Thomas Weller Mar 17 '14 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 '14 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 – Thomas Weller Mar 18 '14 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 '14 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! – joxeankoret Mar 20 '14 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.