Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Slek Hacker

#21
Programación Visual Basic / Re: C a VB6, Ayuda :P
29 Septiembre 2010, 11:16 AM
Jaja, yo estoy intentando hacer lo mismo pero sin DLL, inyectar código VB directamente.
Lo siento no te puedo ayudar >.<

Saludos!
#22
Debería usar VirualFreeEx para liberar la Memoria "Commited".
Después, debería usar la api ThreadProc, pero no entiendo muy bien el inglés, y me está costando mucho saber qué hace dicha api.
#23
Creo que ya se a qué te refieres.
Tengo que quitarle el ImageBase a la dirección del AddressOf y sumarle NewModule?
Así obtendré la dirección en memoria del la función en el otro proceso?

Saludos!
#24
Muchas Gracias por contestar.
Los resultados de las funciones los he comprobado yo manualmente:
Module = es como una constante, siempre sale el mismo número, tanto en Delphi como en VB6.
Size = Tamaño del ejecutable
He comprobado el PID del notepad también con el taskmanager, y los BytesWritten.
NewModue = Module, el mismo número.
Hasta he comprobado el ThreadID. Y con GetLastError no hayo nungún error.

EL SMain se encuentra en el Módulo 1, que muestra unos MsgBox para confirmar que se ha ejecutado el Thread Correctamente.

Saludos!
#25
Bueno, pues ya he terminado la inyección, basándome en un código en C para la misma función, pero me crashea el proceso al que me inyecto. Al parecer todo va bien, pero no se qué pasa.  :huh:

Os dejo el código para que le hecheis un ojo.

http://www.multiupload.com/34PD1WS3EJ

Saludos y gracias de antemano.
#26
Eso es, eso es!!!!
Tenía que ponerlo en un Módulo BAS!!!!

Mil gracias!!

Saludos!!
#27
En un Form.

Código (vb) [Seleccionar]
Public Function SMain()
MsgBox "Hola :)"
End Function


Y después, en el Form_Load

Código (vb) [Seleccionar]
Inyectar ProcessHandle, GetAddr(AddressOf SMain)

Y las funciones:

Código (vb) [Seleccionar]
Public Function GetAddr(ByVal lAddr As Long) As Long
   GetAddr = lAddr
End Function

Private Function Inyectar(ProcessHandle As Long, ByVal EntryPoint As Long)
Dim Module As Long, NewModule As Long

Module = GetModuleHandleA(vbNullString)
VirtualFreeEx ProcessHandle, Module, 0, MEM_RELEASE
End Function


El code no está terminado.

Saludos!

P.D: Muchas gracias por su tiempo.
#28
Muchas gracias por responder.
Pero ya lo intenté. Me sigue dando error. ¿Puede que sea de mi VB?

Si necesitas pongo lo que llevo de code.

Saludos!
#29
Buenas,
Necesito hallar la dirección en memoria de una función, y pasarla a otra función. Tenía entendido que con AddressOf esto era posible de la siguiente manera:

Código (vb) [Seleccionar]
Public Function Principal ()
Msgbox "Función principal"
End Function

....

OtraFuncion Parametro1, AddressOf Principal


Pero me tira el siguiente error:
Error de compilación:

Uso no válido del operado AddressOf

Gracias de antemano.
#30
Ahora que veo la función de Cobein se parece un poco, pero es que no hay mucho más para cambiar.
No me he copiado de la función de cobein, me he basado en una función anterior que yo mismo cree para un crypter que hice. Pero cada uno es libre de pensar lo que quiera  ::)

Y esta función anda correctamente  ;D

Saludos!