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!
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
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