Q1: Why is there no tool that recreates the class definition from a binary serialized file/data?
My guess is that very few people need this. To start with, binary serialization isn't as popular as XML, JSON and other formats which are standardized and are supported virtually anywhere.
There's no documentation on the binary format. One needs to dig into .NET Framework sources to understand it. It's not fun.
Q2: Is there such case when it's impossible to restore the class definition from the serialized data?
Looks like the binary format contains enough data. If you absolutely need a tool to reverse engineer original classes and their fields from the serializied files, you can start with reading sources of System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
, System.Runtime.Serialization.Formatters.Binary.ObjectReader
and other classes from mscorlib.
However, if the application which produced the files isn't obfuscated, I suggest trying to decompile it first. It will likely be much easier.
P.S. Don't forget to consult your lawyer.