

Windows Executable Walkthrough Graphic - philthom
http://pe101.corkami.com/

======
pud
One of the things that's held back Windows and made it so complex, according
to an MS engineer I recently spoke with who's been with the company since the
80's, is that it contains thousands of pieces of code to fix bugs in third-
party software.

In other words, there's code in Windows 7 that prevents crashing due to a rare
bug in Where In The World Is Carmen Sandiego v1.3 (hypothetical example). And
so on.

~~~
quotemstr
Relevant Old New Thing post: "The real cost of compatibility is not in the
hacks; the hacks are small potatoes"

(The Old New Thing is a blog by veteran Microsoft shell team developer Raymond
Chen, and it's a must-read for all developers.)

[https://blogs.msdn.com/b/oldnewthing/archive/2007/07/23/4003...](https://blogs.msdn.com/b/oldnewthing/archive/2007/07/23/4003873.aspx?Redirected=true)

~~~
rburhum
"a must read" for all _Windows_ developers.

~~~
pjmlp
Other operating systems have similar issues as well.

~~~
forrestthewoods
I'll go one further and say _all_ software has similar issues.

To give you a more concrete examples a game project I work on has many
characters with skills. There is a lot of shared code across the skills, which
is a good thing. A handful of skills are of the "charge" type. Press a button
and lunge forward, each with it's own variation. Knockback targets, grapple
targets, throw, throw backwards, apply buff to charger, apply debuff to
victim, leave acid trail of damage, etc.

The whole setup has been built up over years and is tragically fragile today.
Adding in a new charge variant requires being _very_ careful you don't break
any of the pre-existing skills. It may seem safe, and even appropriate, to
make minor changes in the sequence of events but there's a good change it will
break one skill in one particular case where multiple, infrequent combination
of factors are in play.

~~~
avbor
This is obviously off topic, but do you happen to work on a MOBA?

------
ralfd
[http://www.reddit.com/r/programming/comments/wqzc9/windows_e...](http://www.reddit.com/r/programming/comments/wqzc9/windows_executable_walkthrough_graphic/)

In the reddit thread the original author said: "I will also do a linux (ELF)
version, but not in the near future."

For a Mac OS X version he would need a Mac (which he don't has.)

------
_sh
Nice one. I'd love to see a walkthrough for .NET executables[1].

[1]
[http://en.wikipedia.org/wiki/Portable_Executable#.NET.2C_met...](http://en.wikipedia.org/wiki/Portable_Executable#.NET.2C_metadata.2C_and_the_PE_format)

~~~
nekitamo
<http://www.ntcore.com/files/dotnetformat.htm>

------
jjguy
For any new reverse engineers in Hacker Newsland, another win32 PE classic is
Ero Carrera's diagram from 2005:
[https://www.openrce.org/reference_library/files/reference/PE...](https://www.openrce.org/reference_library/files/reference/PE%20Format.pdf)

~~~
ange4771_
Ero is actually planning to release his other 2 commercial diagrams, that you
can see <http://blog.dkbza.org/2007/10/openrceorg-goodies.html> in preview
He's just lacking motivation ATM, so contact him if you're interested.

------
kbolino
\- The PDF takes forever to render in Adobe PDF Reader 9.

\- The Content-Type of the SVG is text/plain so Firefox doesn't render it.

\- The JPG has a Content-Disposition of "attachment" so Firefox forces me to
download it locally.

Not a pleasant experience.

~~~
ange4771_
I don't control any of these sadly. the image is easily viewable at
<http://imgur.com/a/t33Rr> though.

------
melicerte
"made entirely under Inkscape" +1

------
Simucal
This is great but why is English the only version that is in jpg rather than
png?

~~~
iso-8859-1
because you do not deserve better if your browser supports neither PDF nor
SVG?

~~~
Simucal
I was browsing on the original iPad. For some reason, certain PDFs seem to
stress it out when rendering and it really lags. It also did not correctly
display the SVG link.

So all I was left with was the JPG link which was unfortunate because of the
lossy compression which makes the finer details slightly blurred.

A PNG would have been perfect and I noticed that all other languages had a
link to a PNG but english.

~~~
stinky613
I was browsing on an iPad 2 in Chrome and had similar problems. SVG displayed
as text, PDF and JPG were blurry and wouldn't zoom correctly. Once I got on my
laptop the SVG still displayed as text but the PDF and JPG were perfectly
clear. Still not sure why the others are PNGs and the english version is JPG;
clearly PNG is better suited.

------
jpoehls
This is awesome. I would love to see versions of this for Linux and OS X.

------
marcusrobbins
This is awesome :)

~~~
wamatt
Or sad. Depending on your outlook ;)

~~~
MarkSweep
Is Mach-O on OS X or ELF on Linux any more or less sad?

~~~
lucian1900
Don't know about Mach-O, but ELF is actually a rather nice and clean design.

Much of the hate PE gets is because of the silly overloading with .NET
assemblies.

~~~
MarkSweep
Oh yeah, and now also WinRT metadeta.

It annoys me mildly that .NET requires you to have a little native stub in
assemblies, but the Windows loader does not actually execute it.

~~~
lucian1900
It annoys me more than just mildly to see .exe and .dll on linux. And that
silly native stub!

