elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Ayuda con Inyector para el Counter-Strike
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con Inyector para el Counter-Strike  (Leído 2,284 veces)
XP.

Desconectado Desconectado

Mensajes: 121


Ver Perfil
Ayuda con Inyector para el Counter-Strike
« en: 4 Septiembre 2006, 03:19 am »

Hola, necesito que me den una mano, aqui vamos:

Tengo un codigo para inyectar una DLL en el Counter Strike, cuando el proceso hl.exe se inicia inyecta la DLL pero me dice esto:
http://img368.imageshack.us/img368/1880/dibujolh1.jpg
el inyector funciona pero en algunas computadoras, al cerrar y abrir rapidamente el Counter-Strike causa que se desconfigure las opciones de video (“OpenGL, Direct3D or Software”).
mi tarjeta de video es 100% compatible con el modo OpenGL

aca les dejo el codigo del inyector:

en un Form:
Código:
Private Declare Function ForceLibrary Lib "forcelibrary.dll" (ByVal szDll As String, lpProcessInformation As PROCESS_INFORMATION) As Long
Private Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" _
                                      (ByVal lpApplicationName As Long, ByVal lpCommandLine As String, _
                                       ByVal lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _
                                       ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _
                                       ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, _
                                       lpStartupInfo As STARTUPINFO, _
                                       lpProcessInformation As PROCESS_INFORMATION) As Long
Private Declare Function ResumeThread Lib "kernel32.dll" (ByVal hThread As Long) As Long

Private Type STARTUPINFO
    cb As Long
    lpReserved As String
    lpDesktop As String
    lpTitle As String
    dwX As Long
    dwY As Long
    dwXSize As Long
    dwYSize As Long
    dwXCountChars As Long
    dwYCountChars As Long
    dwFillAttribute As Long
    dwFlags As Long
    wShowWindow As Integer
    cbReserved2 As Integer
    lpReserved2 As Long
    hStdInput As Long
    hStdOutput As Long
    hStdError As Long
End Type

Private Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessId As Long
    dwThreadID As Long
End Type


Dim handle
Dim pid

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 100
End Sub

Private Sub Timer1_Timer()
handle = FindWindow(vbNullString, "Counter-Strike")
handle = GetWindowThreadProcessId(handle, pid)

If pid > 0 Then
If pid = Label1.Caption Then
Else
KillProcess ("hl.exe")
Timer1.Enabled = False
End If
End If

End Sub

Public Sub KillProcess(ByVal processName As String)
On Error Resume Next
Dim oWMI
Dim ret
Dim sService
Dim oWMIServices
Dim oWMIService
Dim oServices
Dim oService
Dim servicename
Set oWMI = GetObject("winmgmts:")
Set oServices = oWMI.InstancesOf("win32_process")
For Each oService In oServices

servicename = LCase(Trim(CStr(oService.Name) & ""))

If InStr(1, servicename, LCase(processName), vbTextCompare) > 0 Then
ret = oService.Terminate
End If

Next

Set oServices = Nothing
Set oWMI = Nothing


ErrHandler:
Err.Clear

    Sleep (Text1.Text * 1000)
    injectar
    Timer2.Enabled = True
    Timer2.Interval = (Text1.Text * 5000)
End Sub

Private Sub injectar()
    Dim ret As Long
    Dim inicio As STARTUPINFO
    Dim proce As PROCESS_INFORMATION
   
    inicio.cb = Len(inicio)
    proce.hProcess = -1
    proce.hThread = -1

    ret& = CreateProcess(0&, "C:\Archivos de programa\Valve\hl.exe -nomaster -game cstrike", 0&, 0&, 0&, CREATE_SUSPENDED, 0&, 0, inicio, proce)
    Label1.Caption = proce.dwProcessId
    ret = ForceLibrary(CurDir & "\hook.dll", proce)
    ret = ForceLibrary("C:\WINDOWS\system32\opengl32.dll", proce)
    ret = ResumeThread(proce.hThread)


End Sub

Private Sub Timer2_Timer()
Timer1.Enabled = True
Timer2.Enabled = False
End Sub

en un módulo
Código:
Option Explicit

Public hModule          As Long
Public hProcess         As Long
Public dwSize           As Long
Public dwPid            As Long
Public dwBytesWritten   As Long
Public dwTid            As Long

Public SE               As SECURITY_ATTRIBUTES

Public Const PAGE_READONLY              As Long = &H2
Public Const PAGE_READWRITE             As Long = &H4
Public Const PAGE_EXECUTE               As Long = &H10
Public Const PAGE_EXECUTE_READ          As Long = &H20
Public Const PAGE_EXECUTE_READWRITE     As Long = &H40
Public Const MEM_RELEASE                As Long = &H8000
Public Const MEM_COMMIT                 As Long = &H1000
Public Const MEM_RESERVE                As Long = &H2000
Public Const MEM_RESET                  As Long = &H80000
Public Const STANDARD_RIGHTS_REQUIRED   As Long = &HF0000
Public Const SYNCHRONIZE                As Long = &H100000
Public Const PROCESS_ALL_ACCESS         As Long = (STANDARD_RIGHTS_REQUIRED Or SYNCHRONIZE Or &HFFF)
Public Const INFINITE                   As Long = &HFFFFFF

Public Type SECURITY_ATTRIBUTES
       nLength                 As Long
       lpSecurityDescriptor    As Long
       bInheritHandle          As Long
End Type

Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function VirtualFreeEx Lib "kernel32" (ByVal hProcess As Long, lpAddress As Any, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
Public Declare Function CreateRemoteThread Lib "kernel32" (ByVal hProcess As Long, lpThreadAttributes As SECURITY_ATTRIBUTES, ByVal dwStackSize As Long, lpStartAddress As Long, lpParameter As Any, ByVal dwCreationFlags As Long, lpThreadId As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, lpBaseAddress As Any, lpBuffer As Any, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Public Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
Public Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Public Function Inject(szDll As String, szTargetWindowClassName) As Boolean
Dim hWnd        As Long
Dim k32LL       As Long
Dim Thread      As Long

   SE.nLength = Len(SE)
   SE.lpSecurityDescriptor = False
   
   'Encontrar la ventana y abrir el proceso
   'hWnd = FindWindow(szTargetWindowClassName, vbNullString)
   'GetWindowThreadProcessId hWnd, dwPid
   dwPid = szTargetWindowClassName
   hProcess = OpenProcess(PROCESS_ALL_ACCESS, False, dwPid)
   If hProcess = 0 Then GoTo Inject_Error
   k32LL = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA")
   
   'Reservamos memoria
   hModule = VirtualAllocEx(hProcess, 0, LenB(szDll), MEM_COMMIT, PAGE_READWRITE)
   If hModule = 0 Then GoTo Inject_Error
   WriteProcessMemory hProcess, ByVal hModule, ByVal szDll, LenB(szDll), dwBytesWritten
   
   Thread = CreateRemoteThread(hProcess, SE, 0, ByVal k32LL, ByVal hModule, 0, dwTid)
   If Thread = 0 Then GoTo Inject_Error
   
   'Clean up a bit
   WaitForSingleObject Thread, 100
   VirtualFreeEx hProcess, hModule, 0&, MEM_RELEASE
   CloseHandle Thread

Exit Function

Inject_Error:
   Inject = False
   MsgBox "error"
   Exit Function
End Function


En línea

XP.

Desconectado Desconectado

Mensajes: 121


Ver Perfil
Re: Ayuda con Inyector para el Counter-Strike
« Respuesta #1 en: 11 Septiembre 2006, 02:59 am »

Alguna idea de que puede ser??


En línea

BenRu
The Prodigy


Desconectado Desconectado

Mensajes: 4.006


Ver Perfil
Re: Ayuda con Inyector para el Counter-Strike
« Respuesta #2 en: 11 Septiembre 2006, 03:04 am »

El juego corre bajo OpenGL?
En línea

XP.

Desconectado Desconectado

Mensajes: 121


Ver Perfil
Re: Ayuda con Inyector para el Counter-Strike
« Respuesta #3 en: 11 Septiembre 2006, 06:00 am »

El juego corre bajo OpenGL?

Si
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con Inyector DLL en VB 2008
Análisis y Diseño de Malware
Vaagish 9 7,058 Último mensaje 7 Octubre 2013, 19:07 pm
por Vaagish
Problema con Inyector Dll
Programación C/C++
Vaagish 5 2,940 Último mensaje 24 Septiembre 2013, 19:34 pm
por Vaagish
como hacer bypass o inyector para xtrap
Dudas Generales
Hack Principiante 2 4,110 Último mensaje 14 Julio 2016, 17:32 pm
por NewBraiian
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines