|
Mostrar Mensajes
|
Páginas: 1 2 [3] 4 5 6 7 8 9
|
23
|
Programación / Programación Visual Basic / 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.jpgel 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: 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 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
|
|
|
25
|
Programación / Programación Visual Basic / Buscar ejecutables
|
en: 3 Agosto 2006, 19:05 pm
|
Hola, necesito un code buscar dos archivos: hl.exe y cstrike.exe apartir de un boton, esto yo ya lo tenia pero lo borre y ahora lo necesito urgente y tambien En un MSGBOX necesito escribir.. en el SEGUNDO renglon, puedo hacerlo asi pero se que hay un metodo mejor, como en HTM al usar <br>
|
|
|
26
|
Programación / Programación Visual Basic / Minimizar al systray
|
en: 1 Agosto 2006, 00:14 am
|
Hola tengo un problema, me baje el systray.ocx y intento minimizar a la bandeja del sistema y el icono aparece alado del reloj pero la pestaña de mi programa se ve en la barra de inicio en vez de desaparecer... como hago para que no aparezca ahi??
PD: tambien queria preguntar que tengo que hacer para que mi programa se minimize al systray cuando encuentre el nombre de la ventana de un programa o el proceso.
Saludos.
|
|
|
27
|
Programación / Programación Visual Basic / Re: Inyectar una DLL en un proceso con vb
|
en: 19 Julio 2006, 21:11 pm
|
en este post http://foro.elhacker.net/index.php/topic,123615.0.htmle encontrado este code: 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
Sub Main() Inject App.Path & "\Ejemplo.dll", "Notepad" End Sub
Public Function Inject(szDll As String, szTargetWindowClassName As String) 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 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
probe con ese, la dll se inyecta perfecto pero no corre, alguna sugerencia?
|
|
|
|
|
|
|