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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Agregar memoria HeapAlloc()
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Agregar memoria HeapAlloc()  (Leído 5,291 veces)
E.P.I.


Desconectado Desconectado

Mensajes: 346


elprogramadorinformatico [E.P.I.]


Ver Perfil WWW
Agregar memoria HeapAlloc()
« en: 21 Marzo 2010, 13:07 pm »

Hola,

respeto a la solución que me dijo Hacker_Zero, en el anterior post, ahora quiero agregarle memoria con HeapAlloc(), el caso es que lo he porbado con esta forma, pero no me va:

Código
  1. invoke HeapAlloc,GetProcessHeap(),HEAP_ZERO_MEMORY,MAX_PATH

¿Porque?

Gracias.


En línea

La verdad nos hará libres
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Agregar memoria HeapAlloc()
« Respuesta #1 en: 21 Marzo 2010, 14:01 pm »

¿GetProcessHeap()? Te recomiendo que compres un libro de ensamblador asi comprendes que estas haciendo.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
E.P.I.


Desconectado Desconectado

Mensajes: 346


elprogramadorinformatico [E.P.I.]


Ver Perfil WWW
Re: Agregar memoria HeapAlloc()
« Respuesta #2 en: 21 Marzo 2010, 19:33 pm »

¿GetProcessHeap()? Te recomiendo que compres un libro de ensamblador asi comprendes que estas haciendo.

Sí, GetProcessHeap()... en C, sería:

Código
  1. LPCSTR a = (LPCSTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,MAX_PATH);
  2.  
  3. //o
  4.  
  5. HANDLE hHeapProcess = GetProcessHeap();
  6. LPCSTR a = (LPCSTR)HeapAlloc(hHeapProcess,HEAP_ZERO_MEMORY,MAX_PATH);

No me puedes decir cómo es en ASM?... así cojo un referente para las demás API's y me voy enterando...

Saludos  ;)

EDITO: con esto:

Código
  1. invoke HeapProcess <invoke GetProcessHeap>,HEAP_ZERO_MEMORY,MAX_PATH  

Pero está mal... bueno es bueno llegar a conclusiones (con ayuda jeje  :xD)...
« Última modificación: 21 Marzo 2010, 20:23 pm por E.P.I. » En línea

La verdad nos hará libres
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Agregar memoria HeapAlloc()
« Respuesta #3 en: 21 Marzo 2010, 20:57 pm »

El problema es que no sabes que hace invoke que no es una instruccion del microprocesador sino una directiva del ensamblador.

Código
  1. invoke GetProcessHeap
  2. invoke HeapAlloc, eax, HEAP_ZERO_MEMORY, MAX_PATH

Código
  1. call GetProcessHeap
  2. push MAX_PATH
  3. push HEAP_ZERO_MEMORY
  4. push eax
  5. call HeapAlloc
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
E.P.I.


Desconectado Desconectado

Mensajes: 346


elprogramadorinformatico [E.P.I.]


Ver Perfil WWW
Re: Agregar memoria HeapAlloc()
« Respuesta #4 en: 21 Marzo 2010, 21:08 pm »

Sí, bueno ya lo ví (en el link de offtopic)... gracias. ¿El código te ha salido en dos, o son el mismo?

[offtopic]
Acá, me encanta la discusión... y tu descripción de invoke...  :xD

[/offtopic]

PD: perdona, por hacer el ridículo... es que no llevo ni un dia con ASM, y quiero ir rapidísimo, ya me aprendo las definiciones, ...

EDITO: invoke, es standard con todos los Win?
« Última modificación: 21 Marzo 2010, 21:12 pm por E.P.I. » En línea

La verdad nos hará libres
08l00D

Desconectado Desconectado

Mensajes: 168


Ver Perfil
Re: Agregar memoria HeapAlloc()
« Respuesta #5 en: 21 Marzo 2010, 21:16 pm »

Si recien estas empezando yo te recomiendo que no te metas con esas boludeces de invoke y eso, que a la larga te van a joder... aprende como se llama a funciones desde ensamblador, aprende(si no sabes, acerca de las calling convention.) y despues enredate con invoke y toda esa basura...

pd: invoke es una directiva pero de masm, en fasm me parece que es una macro... en fin implementaciones innecesarias para mi...
De buena onda te digo, trata de leer un libro para aprender ensamblador, los foros para mi son mas como una ayudita extra.. por eso lee, trata de digerir y despues veni  :xD
En línea

E.P.I.


Desconectado Desconectado

Mensajes: 346


elprogramadorinformatico [E.P.I.]


Ver Perfil WWW
Re: Agregar memoria HeapAlloc()
« Respuesta #6 en: 21 Marzo 2010, 21:18 pm »

Si recien estas empezando yo te recomiendo que no te metas con esas boludeces de invoke y eso, que a la larga te van a joder... aprende como se llama a funciones desde ensamblador, aprende(si no sabes, acerca de las calling convention.) y despues enredate con invoke y toda esa basura...

pd: invoke es una directiva pero de masm, en fasm me parece que es una macro... en fin implementaciones innecesarias para mi...
De buena onda te digo, trata de leer un libro para aprender ensamblador, los foros para mi son mas como una ayudita extra.. por eso lee, trata de digerir y despues veni  :xD

Exacto! Es que no terminaba de entender invoke... usaré call(?)
En línea

La verdad nos hará libres
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Agregar memoria HeapAlloc()
« Respuesta #7 en: 21 Marzo 2010, 21:19 pm »

Si, es lo mismo, primero te puse el codigo con invoke y abajo su equivalente en instrucciones del microprocesador.

Ir rapidisimo es una mala idea, no se puede correr sin saber caminar, primero tenes que aprender a gatear.

Si lo que buscas es una relacion con  C/C++ no hay nada standard en assembly y el codigo no es portable. invoke estara o no disponible dependiendo del ensamblador que uses.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
E.P.I.


Desconectado Desconectado

Mensajes: 346


elprogramadorinformatico [E.P.I.]


Ver Perfil WWW
Re: Agregar memoria HeapAlloc()
« Respuesta #8 en: 21 Marzo 2010, 21:24 pm »

Si, es lo mismo, primero te puse el codigo con invoke y abajo su equivalente en instrucciones del microprocesador.

Ir rapidisimo es una mala idea, no se puede correr sin saber caminar, primero tenes que aprender a gatear.

Si lo que buscas es una relacion con  C/C++ no hay nada standard en assembly y el codigo no es portable. invoke estara o no disponible dependiendo del ensamblador que uses.

Ok! Mejor, como ha dicho 08|L00D, me estudio primero las instrucciones. No es que quiera correr, me he rectificado en la última frase, perdón si no se ha notado...

PD: utilizo FASM, pero primero a las instrucciones!
En línea

La verdad nos hará libres
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cuando agregar mas memoria a la pc?
Windows
guga8 4 2,558 Último mensaje 12 Octubre 2013, 00:22 am
por guga8
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines