Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Lea_Men en 20 Marzo 2011, 15:50 PM

Título: Memoria ¿Visual Basic se confunde?
Publicado por: Lea_Men en 20 Marzo 2011, 15:50 PM
Hola gente soy nuevo aca, la verdad es que si, me registro para postear esto y bueno intentar aportar algo a esta comunidad, ya he entrado varias veces asi que bueno vamos al tema!!.

Estoy haciendo un Stub para un crypter propio, con RunPe no? Bueno, para poder acobachar el CopyMemory (o rtlmovememory) lo que hago es copiar la funcion a assembler y despues ejecutarla pasandole los 3 parametros a travez de un CallWindowProcW, la duda es la Siguiente

Si yo hago esto

La variable AA es la direccion de la variable ISH, lo demas es un array
CopyMemory ByVal aa, ByVal a + lOffset + i * Len(ish), Len(ish)
Con esta funcion no ANDA

En cambio si hago esto
CopyMemory  ish, ByVal a + lOffset + i * Len(ish), Len(ish)

Si anda :S

Bueno, quisiera ver si me entendieron, sino explico nuevamente

Saludos!
Título: Re: Memoria ¿Visual Basic se confunde?
Publicado por: Lea_Men en 20 Marzo 2011, 16:58 PM
Perdon por el doble post, TEMA Solucionado

YO pregunto pero alfinal termino siempre solucionandolo yo nomas jaja.

Para algunos, lo que pasa es que el VarPtr es a la Estructura, y a la vez la estructura tiene un string que ese string termina siendo un pointer a el unicode. Conclusion, no usen string en estructura si van a manejar la memoria o funciones como CopyMemory
Título: Re: Memoria ¿Visual Basic se confunde?
Publicado por: raul338 en 20 Marzo 2011, 17:06 PM
Esto es porque todo cambia segun la declaracion de CopyMemory con ByVal o ByRef, mas el uso de VarPtr y StrPtr.

Cuando son mal usados, le terminas pasando un puntero que apunta hacia otro puntero y al final explota todo :xD