Creo que te están faltando una pila de conceptos de los que seguro no has ni leído, sin pretender ofender. Cosas como "compilación", "programa objeto", "lenguaje de máquina", "linkeado", etc.
La verdad es que el problema es que un programa ejecutable no se puede "abrir" como lo estás pensando. No es un script, no contiene código reconocible, proque está hecho para que sea interpretado por un nivel de lenguaje mucho más profundo, incomprensible por seres humanos. Básicamente (pasando por alto algunos detalles), es lo que se denomina
lenguaje de máquina, es decir, instrucciones directas al microprocesador.
Lo que tu quieres hacer es la conversión inversa: pasar del lenguaje de máquina al código fuente. Desensamblarlo y reconstruir (dentro de lo posible), el código que le dio forma.
Por lo pronto, eso no se hace a mano. Existen algunos programas que se usan para ingeniería inversa, que es lo que pretendes, pero por un lado lo que pretendes hacer es ilegal. No está incluido entre los permisos de las licencias el derecho a desensamblar el programa. A eso debes sumarle que esos programas requieren un buen nivel de conocimientos de programación. No son mucho para aprendices.
Pero además, el proceso de compilación ha ideo eliminando montones de detalles que el la aplicación de ingeniería reversa no puede reconstruir, por lo que muchas partes del código serán regeneradas con otros nombres, otras estructuras, etc. Por eso, la "traducción" no sólo no será completa. Muy probablemente no sea fácil de comprender.
Y aún no entramos en el problema más complejo: es perfectamente posible que el código esté ofuscado... con lo que te deseo la mejor de las suertes.
En definitiva, ¿no sería mejor que empezaras por códigos fuente reales, aplicables y entendibles?
Mi recomendación es que explores la web de
CodeProject, donde encontrarás muchísimas cosas útiles e instructivas, accesibles, utilizables. Cosas que además tienen autores a quienes puedes consultar.
Yo mismo he sacado, adaptado y aprendido muchísimas cosas de ese site.