Ayuda con VB.NET: Inyectando samp.dll al gta_sa.exe -
xDarkuzSx - 22.03.2014
Primero que nada este es mi cуdigo..
Код:
Dim p As New ProcessStartInfo
p.FileName = DirectorioGTA & "\gta_sa.exe"
p.Arguments = "-c -n " & Nickname.Text & " -h 198.27.70.146 -p 7777"
p.WorkingDirectory = DirectorioGTA
Process.Start(p)
'----------proceso iniciado & a continuacion inyectaremos el DLL de sa-mp ---------------'
Dim TargetProcess As Process() = Process.GetProcessesByName("gta_sa")
'la funcion de arriba obtiene el proceso del gta, pero no funciona en sistemas operativos de 64 bits :('
TargetProcessHandle = OpenProcess(PROCESS_CREATE_THREAD Or PROCESS_VM_OPERATION Or PROCESS_VM_WRITE, False, TargetProcess(0).Id)
pszLibFileRemote = DirectorioGTA & "\samp.dll"
pfnStartAddr = GetProcAddress(GetModuleHandle("Kernel32"), "LoadLibraryA")
TargetBufferSize = 1 + Len(pszLibFileRemote)
Dim Rtn As Integer
Dim LoadLibParamAdr As Integer
LoadLibParamAdr = VirtualAllocEx(TargetProcessHandle, 0, TargetBufferSize, MEM_COMMIT, PAGE_READWRITE)
Rtn = WriteProcessMemory(TargetProcessHandle, LoadLibParamAdr, pszLibFileRemote, TargetBufferSize, 0)
CreateRemoteThread(TargetProcessHandle, 0, 0, pfnStartAddr, LoadLibParamAdr, 0, 0)
Bueno como ven el cуdigo, funciona correctamente en sistemas operativos de 32 BITS, Pero en 64 Bits NO FUNCIONA!

Nose porquй, parece que la funciуn Process.GetProcessesByName("gta_sa") no detecta el proceso en sistemas operativos de 64 bits, me fije por teamviewer en la pc de un amigo y en su pc de 64 bits dice
gta_sa.exe *32
*32 ? dafack?
Como podria hacer para que detecte el proceso en ambos sistemas operativos?

ayuda xD
Re: Ayuda con VB.NET: Inyectando samp.dll al gta_sa.exe -
ppolp21 - 22.03.2014
El GTA estб programado en x32 y creo que no existe versiуn x64 al menos la versiуn RIP, pero la full y original creo que tampoco de todas formas їQue intentas hacer?
Respuesta: Ayuda con VB.NET: Inyectando samp.dll al gta_sa.exe -
oOFotherOo - 22.03.2014
Creo que no hay GTA SA 64 bits, hasta ahora solo eh visto 32 bits. En realidad esto no importa ya que los programas compilados en 32 bits pueden ser ejecutados en sistemas 64 bits.
Mi cliente lo compilo en 32 bits y mi sistema operativo es 64 bits y funciona perfectamente, el "gta_sa.exe *32" solo es para que sepas que el programa que se esta ejecutando es 32 bits, ami me pasa en muchos programas o juegos en 32 bits.
Un saludo.
Respuesta: Ayuda con VB.NET: Inyectando samp.dll al gta_sa.exe -
xDarkuzSx - 22.03.2014
Quote:
Originally Posted by oOFotherOo
Creo que no hay GTA SA 64 bits, hasta ahora solo eh visto 32 bits. En realidad esto no importa ya que los programas compilados en 32 bits pueden ser ejecutados en sistemas 64 bits.
Mi cliente lo compilo en 32 bits y mi sistema operativo es 64 bits y funciona perfectamente, el "gta_sa.exe *32" solo es para que sepas que el programa que se esta ejecutando es 32 bits, ami me pasa en muchos programas o juegos en 32 bits.
Un saludo.
|
Pero entonces porque el
Process.GetProcessesByName("gta_sa") no detecta el gta_sa.exe en sistemas de 64 bits?

Como haces tu para inyectar el samp.dll al gta_sa.exe? necesito ayuda :c
Respuesta: Ayuda con VB.NET: Inyectando samp.dll al gta_sa.exe -
oOFotherOo - 23.03.2014
Quote:
Originally Posted by xDarkuzSx
Pero entonces porque el Process.GetProcessesByName("gta_sa") no detecta el gta_sa.exe en sistemas de 64 bits?  Como haces tu para inyectar el samp.dll al gta_sa.exe? necesito ayuda :c
|
No sй decirte exactamente ya que no utilizo VB y no sй decirte con exactitud el porque la funciуn no trabaja correctamente, uso C++. Por cierto ten en cuenta que el samp.dll se inyecta al GTA SA mediante el SA-MP.exe. Hay varias formas de inyectar tu cliente, puedes hookear alguna .dll de las que depende el GTA SA o bien puedes usar ASI Loader.
Tambiйn puedes utilizar el metodo del cliente de gamerol el cuбl crean una DLL la cuбl nombran "samp.dll" y esta almacena los parametros de entrada del samp.exe y luego comparan la IP con la de su servidor y si es asi entonces cargan los archivos del cliente y inyectan el samp_a.dll, no es muy dificil hacerlo.
Un saludo.
Respuesta: Ayuda con VB.NET: Inyectando samp.dll al gta_sa.exe -
xDarkuzSx - 23.03.2014
Ya lo logre, gracias!