No subject


Thu Nov 5 14:38:21 CET 2009


  The success of decompilation depends on the amount of information
  present in the code being decompiled and the sophistication of the
  analysis performed on it.  The bytecode formats used by many virtual
  machines (such as the Java Virtual Machine or the .NET Framework
  Common Language Runtime) often include extensive metadata and
  high-level features that make decompilation quite feasible.  The
  presence of debug data can make it possible to reproduce the original
  variable and structure names and even the line numbers.  Machine
  language without such metadata or debug data is much harder to
  decompile.

Of course, since humans are generally capable of discovering
information, they can guess how program works; but it is a hard task
even for a person who have necessary knowledge - much harder than
reading a Chinese book for somebody knowing Chinese.  For example, many
binary file formats are still not completely decoded; Wine still doesn't
support all Windows programs; there are devices which don't have free
firmware or drivers (one important example is video cards).

So, program binaries is not "human readable" because even most skilled
human beings have practical difficulties reading it; while person
knowing Chinese usually has no problem reading Chinese books.
-- 
Fedor.


More information about the pp.international.general mailing list