Memoria ¿Visual Basic se confunde?

Iniciado por Lea_Men, 20 Marzo 2011, 15:50 PM

0 Miembros y 1 Visitante están viendo este tema.

Lea_Men

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!

Lea_Men

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

raul338

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