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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Resuelto] C++ + ASM
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] C++ + ASM  (Leído 2,013 veces)
Miseryk

Desconectado Desconectado

Mensajes: 225


SI.NU.SA U.GU.DE (2NE1 - D-Unit)


Ver Perfil
[Resuelto] C++ + ASM
« en: 19 Abril 2012, 05:24 am »

Hola, en C++ abrí una etiqueta asm como __asm{}, en la cual dentro quise hacer lo siguiente:

__asm
{
     .... //CÓDIGO

    mov dword ptr [ebx], RetFakeSinPrologo
    .... //MÁS CÓDIGO

RetFakeSinPrologo:
   jmp eax

   .... //MÁS CÓDIGO
}

En la línea del mov dword obtengo el error: "error C2415: improper operand type", en ASM puedo hacerlo así, acá hay alguna forma de lograr éso?

Desde ya muchas gracias.


« Última modificación: 23 Abril 2012, 04:03 am por Miseryk » En línea

Can you see it?
The worst is over
The monsters in my head are scared of love
Fallen people listen up! It’s never too late to change our luck
So, don’t let them steal your light
Don’t let them break your stride
There is light on the other side
And you’ll see all the raindrops falling behind
Make it out tonight
it’s a revolution

CL!!!
david_BS

Desconectado Desconectado

Mensajes: 99



Ver Perfil WWW
Re: [Ayuda] C++ + ASM
« Respuesta #1 en: 19 Abril 2012, 05:35 am »

si eso cuando los dos operandos son una referencia de contenido de memoria, es decir, estás tratando de hacer algo prohibido.


fijate así,

Código:
void func(){

DWORD addressx = (DWORD)&ExitProcess;
//DWORD RetFakeSinPrologo;

__asm{

mov edx, RetFakeSinPrologo
mov dword ptr [ebx],edx

mov eax, addressx
RetFakeSinPrologo:
jmp eax;
}
}


es un ejemplo para que veas como se compila..

EDIT
ah y la referencia a ebx debería ser en tu código un puntero por ejemplo DWORD*, por si no sabías.

EDIT 2
y por supuesto exitprocess requiere que se pase un parámetro por lo que deberías usar push+call y no jmp, que se usa para funciones naked y cuando la pila no sufre alteraciones (por el tema de los parámetros)



« Última modificación: 19 Abril 2012, 05:53 am por david_BS » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
resuelto
Programación Visual Basic
usuario oculto 2 2,220 Último mensaje 12 Enero 2009, 00:29 am
por usuario oculto
{Resuelto} [vbs] HTA.. ¬¬ « 1 2 »
Scripting
xassiz_ 10 7,975 Último mensaje 2 Octubre 2009, 21:50 pm
por kevlar
{RESUELTO} ¿Cómo redimensiono un jPanel? {RESUELTO} « 1 2 »
Java
|Miguel| 12 10,649 Último mensaje 13 Febrero 2012, 15:11 pm
por |Miguel|
[RESUELTO] No consigo limpiar un JTable... [RESUELTO]
Java
|Miguel| 2 29,292 Último mensaje 12 Febrero 2018, 09:06 am
por shoni_isra
[RESUELTO] C++ ASM
Programación C/C++
Miseryk 2 2,588 Último mensaje 20 Marzo 2012, 22:03 pm
por Miseryk
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines