¿Cómo puedo ver el código C después de la comstackción en código binario?

El comstackdor es lo que toma este código y lo traduce al código de máquina.

¿Cómo puedo ver el código C original después de la comstackción en código binario?

No puede recuperar el código fuente original de C del binario comstackdo; hay muchas formas en C de producir el mismo resultado final, por lo que no hay una fuente única.

El proceso se llama descomstackción.

Si he entendido mal tu pregunta y quieres saber cómo ver el ensamblador que el comstackdor genera a partir de tu código C, eso depende del comstackdor en particular, pero todos pueden hacerlo. Consulte ¿Cómo puedo ver el código de ensamblaje generado por un comstackdor gcc (cualquier tipo) para un progtwig C / C ++?

usa ollydbg y encuentra tu código dentro de la desagradable 🙂

por ejemplo código comstackdo

int main() { system("PAUSE"); return 0; } 

sería difícil de encontrar en todas las líneas de lo desagradable pero si lo rellenas, puedes encontrarlo más fácil, por ejemplo … comstack este código

 int main() { asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); //mycode system("PAUSE"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); return 0; } 

y ahora en el desassembly podré ver las filas de “nops” y entre ellas está mi código en forma binaria

 CPU Disasm Address Hex dump Command Comments 004013F8 |. 90 NOP 004013F9 |. 90 NOP 004013FA |. 90 NOP 004013FB |. 90 NOP 004013FC |. 90 NOP 004013FD |. 90 NOP 004013FE |. 90 NOP 004013FF |. 90 NOP 00401400 |. 90 NOP 00401401 |. 90 NOP 00401402 |. 90 NOP 00401403 |. 90 NOP 00401404 |. 90 NOP 00401405 |. 90 NOP 00401406 |. 90 NOP 00401407 |. 90 NOP 00401408 |. 90 NOP 00401409 |. 90 NOP 0040140A |. 90 NOP 0040140B |. 90 NOP 0040140C |. C70424 004044 MOV DWORD PTR SS:[LOCAL.6],OFFSET 004440 00401413 |. E8 D8500100 CALL  00401418 |. 90 NOP 00401419 |. 90 NOP 0040141A |. 90 NOP 0040141B |. 90 NOP 0040141C |. 90 NOP 0040141D |. 90 NOP 0040141E |. 90 NOP 0040141F |. 90 NOP 00401420 |. 90 NOP 00401421 |. 90 NOP 00401422 |. 90 NOP 00401423 |. 90 NOP 00401424 |. 90 NOP 00401425 |. 90 NOP 00401426 |. 90 NOP 00401427 |. 90 NOP 00401428 |. 90 NOP 00401429 |. 90 NOP 0040142A |. 90 NOP 0040142B |. 90 NOP 

para que pueda ver que mi llamada al sistema se comstack en

 C70424004044E8D8500100 

Espero que esto sea lo que quisiste decir 🙂

Esto se describe comúnmente como “convertir la hamburguesa en vacas”.

Un descomstackdor generará un código fuente de C que es funcionalmente equivalente al código original, pero no tendrá ninguno de los nombres de los símbolos originales, y puede que no esté estructurado de la misma manera. Puede que ni siquiera sea muy “legible”.

No puede recuperar la fuente original de un progtwig comstackdo.

¿Entonces estás preguntando cómo revertirlo? Debes buscar ingeniería inversa e ir desde allí. Necesitará usar un descomstackdor, conocer un poco de ensamblaje y aún no hay garantía de éxito, de que podrá obtener todo el código original. también será más difícil si el progtwig originalmente tenía más de un archivo o algún tipo de técnica de ocultación para aleatorizar el código (ofuscación). Tendrá que hacer un montón de trabajo para conseguir incluso un parecido con el código original. Aquí está el enlace de Wikipedia para el tema: http://en.wikipedia.org/wiki/Reverse_engineering

SIN EMBARGO, PUEDE SER ILEGAL EN SU ÁREA, ¡Dependiendo de lo que haga con él, no se meta en problemas!

NOTA: si esta publicación no está permitida, alguien, por favor, avíseme y la eliminaré de inmediato.

EDITAR: También se puede llamar descomstackr también, creo.

Si comstack con información de depuración incorporada en los archivos de objeto (archivos de salida binarios generados al comstackr los archivos de origen), los enlaces a las ubicaciones originales de los archivos de origen se incrustarán en los archivos de objeto. Esto permite que un depurador (por ejemplo, gdb) salte a la línea en el archivo fuente correspondiente a un punto de interrupción cuando se encuentra ese punto de interrupción al depurar el progtwig. Puede comstackr con la información de depuración agregada especificando el modificador -g si está usando gcc. Por ejemplo:

 gcc -g -o myProgram myProgram.c 

comstack myProgram.c en un myProgram ejecutable que puede ejecutar o depurar. Para depurar myProgram puedes usar gdb:

 gdb myProgram