elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Traducir de ensamblador a C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Traducir de ensamblador a C  (Leído 5,643 veces)
adelaperez

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Traducir de ensamblador a C
« en: 14 Febrero 2018, 17:55 pm »

Hola a todos. Necesitaría ayuda para poder traducir una función de ensamblador (no hay binarios) a C. La verdad es que estoy un poco perdida y no se como empezar. Así que necesitaria ayuda. Este es el codigo

Disculpad, lo borro poque esta incompleto. Cuando lo localice completo lo vuelvo a publicar

Gracias a todos
Adela
« Última modificación: 18 Febrero 2018, 18:13 pm por adelaperez » En línea

Geovane

Desconectado Desconectado

Mensajes: 208



Ver Perfil
Re: Traducir de ensamblador a C
« Respuesta #1 en: 14 Febrero 2018, 19:05 pm »

https://retdec.com/decompilation/

Ou Ida pro plugins ....
« Última modificación: 14 Febrero 2018, 19:07 pm por Geovane » En línea

Para servicios, envíe un mensaje privado, sólo para servicios en curso hasta fecha de 10/06/2019
engel lex
CoAdmin
***
Desconectado Desconectado

Mensajes: 15.347



Ver Perfil
Re: Traducir de ensamblador a C
« Respuesta #2 en: 14 Febrero 2018, 20:05 pm »

https://retdec.com/decompilation/

Ou Ida pro plugins ....

Geovane lo contrario, ella quiere ASM -> C
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Traducir de ensamblador a C
« Respuesta #3 en: 15 Febrero 2018, 15:45 pm »

Hola a todos. Necesitaría ayuda para poder traducir una función de ensamblador (no hay binarios) a C. La verdad es que estoy un poco perdida y no se como empezar. Así que necesitaria ayuda. Este es el codigo


0x0000054d <+0>: lea ecx,[esp+0x4]
0x00000551 <+4>: and esp,0xfffffff0
0x00000554 <+7>: push DWORD PTR [ecx-0x4]
0x00000557 <+10>: push ebp
0x00000558 <+11>: mov ebp,esp
0x0000055a <+13>: push ebx
0x0000055b <+14>: push ecx
0x0000055c <+15>: sub esp,0x10
0x0000055f <+18>: call 0x450 <__x86.get_pc_thunk.bx>
0x00000564 <+23>: add ebx,0x1a9c
0x0000056a <+29>: mov DWORD PTR [ebp-0x10],0x0
0x00000571 <+36>: lea eax,[ebx-0x19a0]
0x00000577 <+42>: mov DWORD PTR [ebp-0x14],eax
0x0000057a <+45>: sub esp,0xc
0x0000057d <+48>: push DWORD PTR [ebp-0x14]
0x00000580 <+51>: call 0x3e0 <strlen@plt>
0x00000585 <+56>: add esp,0x10
0x00000588 <+59>: mov DWORD PTR [ebp-0x18],eax
0x0000058b <+62>: mov DWORD PTR [ebp-0xc],0x0
0x00000592 <+69>: jmp 0x5ad <main+96>
0x00000594 <+71>: mov edx,DWORD PTR [ebp-0xc]
0x00000597 <+74>: mov eax,DWORD PTR [ebp-0x14]
0x0000059a <+77>: add eax,edx
0x0000059c <+79>: movzx eax,BYTE PTR [eax]
0x0000059f <+82>: movsx eax,al
0x000005a2 <+85>: imul eax,DWORD PTR [ebp-0x18]
0x000005a6 <+89>: add DWORD PTR [ebp-0x10],eax
0x000005a9 <+92>: add DWORD PTR [ebp-0xc],0x1
0x000005ad <+96>: mov eax,DWORD PTR [ebp-0xc]
0x000005b0 <+99>: cmp eax,DWORD PTR [ebp-0x18]
0x000005b3 <+102>: jl 0x594 <main+71>
0x000005b5 <+104>: sub esp,0x8
0x000005b8 <+107>: push DWORD PTR [ebp-0x10]
0x000005bb <+110>: lea eax,[ebx-0x1992]
0x000005c1 <+116>: push eax
0x000005c2 <+117>: call 0x3d0 <printf@plt>
0x000005c7 <+122>: add esp,0x10
0x000005ca <+125>: mov eax,0x0
0x000005cf <+130>: lea esp,[ebp-0x8]
0x000005d2 <+133>: pop ecx
0x000005d3 <+134>: pop ebx
0x000005d4 <+135>: pop ebp
0x000005d5 <+136>: lea esp,[ecx-0x4]
0x000005d8 <+139>: ret

Gracias a todos
Adela

Así como está es un trabajo de herrero, se ve que es una función pero hay referencias que no están incluidas en lo que compartes pues apuntan a otras direcciones de memoria del ejecutable, lo que se ve a simple vista es que se calcula un tamaño, ha de ser la string de entrada del usuario (carece referencias de scanf o gets) y luego tras una operación las imprime
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Geovane

Desconectado Desconectado

Mensajes: 208



Ver Perfil
Re: Traducir de ensamblador a C
« Respuesta #4 en: 15 Febrero 2018, 16:23 pm »

Ola

tens o ASM, mas não tens o binário ? como isso, qual origem ?
En línea

Para servicios, envíe un mensaje privado, sólo para servicios en curso hasta fecha de 10/06/2019
adelaperez

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Traducir de ensamblador a C
« Respuesta #5 en: 16 Febrero 2018, 10:38 am »

No, lo siento, sólo el ASM
Adela
En línea

trucador

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Traducir de ensamblador a C
« Respuesta #6 en: 16 Febrero 2018, 12:32 pm »

Deberías ponernos un poco en situaccion de donde sale ese código?
Cambien como  dice .:UND3R:. este codigo esta incompleto
En línea

djkamal

Desconectado Desconectado

Mensajes: 64


Todo un mundo por descubrir


Ver Perfil
Re: Traducir de ensamblador a C
« Respuesta #7 en: 19 Febrero 2018, 00:35 am »

Hola aparentemente el codigo esta completo porque el desensamblado corresponde al MAIN de un programa en C y acaba en un retorno de control. Parece ser que el código no pertenece a un ejecutable pero probablemente corresponda a una librería que carga otro programa.

El mayor problema que veo no radica en el código ASM el cual si que tienes y no hay problema.
El problema viene respecto al valor de los punteros y los registros ya que sin ellos no puedes saber que hace el programa en este bucle
   0x00000594 <+71>: mov edx,DWORD PTR [ebp-0xc]
   0x00000597 <+74>: mov eax,DWORD PTR [ebp-0x14]
   0x0000059a <+77>: add eax,edx
   0x0000059c <+79>: movzx eax,BYTE PTR [eax]
   0x0000059f <+82>: movsx eax,al
   0x000005a2 <+85>: imul eax,DWORD PTR [ebp-0x18]
   0x000005a6 <+89>: add DWORD PTR [ebp-0x10],eax
   0x000005a9 <+92>: add DWORD PTR [ebp-0xc],0x1
   0x000005ad <+96>: mov eax,DWORD PTR [ebp-0xc]
   0x000005b0 <+99>: cmp eax,DWORD PTR [ebp-0x18]
   0x000005b3 <+102>: jl 0x594 <main+71>

No sabemos que condiciones tiene

En línea


Somos los artistas de la tecnologia de la informacion y no somos unos frikis solo unos Expertos en informatica
apuromafo CLS


Desconectado Desconectado

Mensajes: 1.399



Ver Perfil WWW
Re: Traducir de ensamblador a C
« Respuesta #8 en: 27 Febrero 2018, 01:20 am »

eso parece un main donde existe un string cualquiera (hola)

el programa reserva espacio para llamar a la api strlenght, luego compara si es igual (mueve el valor 1),se ve algo mal porque  lo normal es ver alguna variable declarada (debe estar en esas rutinas de dword

si no es igual osea es mayor o menor entonces va a otro lado

y en todos los casos debería imprimir el valor por pantalla (printf@plt)

saludos Apuromafo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Como traducir una intrucción ensamblador a codigo maquina?
Ingeniería Inversa
Thor 0 1,688 Último mensaje 22 Abril 2005, 15:19 pm
por Thor
Traducir de C a ASM
Programación General
Søra 3 6,888 Último mensaje 6 Junio 2010, 05:10 am
por Og.
Traducir de C++ a VB6
Programación Visual Basic
Rigoberta II 4 2,409 Último mensaje 13 Mayo 2012, 04:57 am
por Rigoberta II
Traducir Code
Java
mapers 0 774 Último mensaje 9 Septiembre 2012, 19:33 pm
por mapers
traducir ensamblador a codigo maquina
ASM
m@o_614 2 2,657 Último mensaje 27 Septiembre 2013, 21:32 pm
por cpu2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines