title: What format are GCC's object files in?
body: <p>I assembled an assembly file in GCC under Windows like so:</p>
  
  <pre><code>as main.s -o main.o
  </code></pre>
  
  <p>And now I have the following object file:</p>
  
  <pre><code>4C 01 03 00 00 00 00 00 90 00 00 00 08 00 00 00 
  00 00 05 01 2E 74 65 78 74 00 00 00 00 00 00 00 
  00 00 00 00 04 00 00 00 8C 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 20 00 30 60 2E 64 61 74 
  61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  40 00 30 C0 2E 62 73 73 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 80 00 30 C0 C3 90 90 90 
  2E 66 69 6C 65 00 00 00 00 00 00 00 FE FF 00 00 
  67 01 66 61 6B 65 00 00 00 00 00 00 00 00 00 00 
  00 00 00 00 2E 74 65 78 74 00 00 00 00 00 00 00 
  01 00 00 00 03 01 01 00 00 00 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 2E 64 61 74 61 00 00 00 
  00 00 00 00 02 00 00 00 03 01 00 00 00 00 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 2E 62 73 73 
  00 00 00 00 00 00 00 00 03 00 00 00 03 01 00 00 
  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
  04 00 00 00
  </code></pre>
  
  <p>I'd like to look inside this file to try and understand how object files are put together. Where can I find a format specification for whatever format this file is?</p>