#Region _Memory
Func _memoryopen($iv_pid, $iv_desiredaccess = 2035711, $iv_inherithandle = 1)
If NOT ProcessExists($iv_pid) Then
SetError(1)
Return 0
EndIf
Local $ah_handle[2] = [DllOpen("kernel32.dll")]
If @error Then
SetError(2)
Return 0
EndIf
Local $av_openprocess = DllCall($ah_handle[0], "int", "OpenProcess", "int", $iv_desiredaccess, "int", $iv_inherithandle, "int", $iv_pid)
If @error Then
DllClose($ah_handle[0])
SetError(3)
Return 0
EndIf
$ah_handle[1] = $av_openprocess[0]
Return $ah_handle
EndFunc
Func _memoryscanex($ah_handle, $pattern, $mask, $after = False, $iv_addrstart = 4194304, $iv_addrend = 16777215, $step = 51200)
If NOT IsArray($ah_handle) Then
SetError(1)
Return - 1
EndIf
$pattern = StringRegExpReplace($pattern, "[^0123456789ABCDEFabcdef.]", "")
If StringLen($pattern) = 0 Then
SetError(2)
Return - 2
EndIf
If StringLen($pattern) / 2 <> StringLen($mask) Then
SetError(4)
Return - 4
EndIf
Local $formatedpattern = ""
Local $bufferpattern
Local $buffermask
For $i = 0 To StringLen($mask) - 1
$bufferpattern = StringLeft($pattern, 2)
$pattern = StringRight($pattern, StringLen($pattern) - 2)
$buffermask = StringLeft($mask, 1)
$mask = StringRight($mask, StringLen($mask) - 1)
If $buffermask = "?" Then $bufferpattern = ".."
$formatedpattern = $formatedpattern & $bufferpattern
Next
$pattern = $formatedpattern
For $addr = $iv_addrstart To $iv_addrend Step $step-(StringLen($pattern) / 2 )
StringRegExp(_memoryread($addr, $ah_handle, "byte[" & $step & "]"), $pattern, 1, 2)
If NOT @error Then
If $after Then
Return StringFormat("0x%.8X", $addr + ((@extended - 2) / 2))
Else
Return StringFormat("0x%.8X", $addr + ((@extended - StringLen($pattern) - 2) / 2))
EndIf
EndIf
Next
SetError(3)
Return - 3
EndFunc
Func _memoryread($iv_address, $ah_handle, $sv_type = "dword")
If NOT IsArray($ah_handle) Then
SetError(1)
Return 0
EndIf
Local $v_buffer = DllStructCreate($sv_type)
If @error Then
SetError(@error + 1)
Return 0
EndIf
DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
If NOT @error Then
Local $v_value = DllStructGetData($v_buffer, 1)
Return $v_value
Else
SetError(6)
Return 0
EndIf
EndFunc
Func _memorywrite($iv_address, $ah_handle, $v_data, $sv_type = "dword")
If NOT IsArray($ah_handle) Then
SetError(1)
Return 0
EndIf
Local $v_buffer = DllStructCreate($sv_type)
If @error Then
SetError(@error + 1)
Return 0
Else
DllStructSetData($v_buffer, 1, $v_data)
If @error Then
SetError(6)
Return 0
EndIf
EndIf
DllCall($ah_handle[0], "int", "WriteProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
If NOT @error Then
Return 1
Else
SetError(7)
Return 0
EndIf
EndFunc
Func _memoryclose($ah_handle)
If NOT IsArray($ah_handle) Then
SetError(1)
Return 0
EndIf
DllCall($ah_handle[0], "int", "CloseHandle", "int", $ah_handle[1])
If NOT @error Then
DllClose($ah_handle[0])
Return 1
Else
DllClose($ah_handle[0])
SetError(2)
Return 0
EndIf
EndFunc
Func _memorypointerread($iv_address, $ah_handle, $av_offset, $sv_type = "dword")
If IsArray($av_offset) Then
If IsArray($ah_handle) Then
Local $iv_pointercount = UBound($av_offset) - 1
Else
SetError(2)
Return 0
EndIf
Else
SetError(1)
Return 0
EndIf
Local $iv_data[2], $i
Local $v_buffer = DllStructCreate("dword")
For $i = 0 To $iv_pointercount
If $i = $iv_pointercount Then
$v_buffer = DllStructCreate($sv_type)
If @error Then
SetError(@error + 2)
Return 0
EndIf
$iv_address = "0x" & Hex($iv_data[1] + $av_offset[$i])
DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
If @error Then
SetError(7)
Return 0
EndIf
$iv_data[1] = DllStructGetData($v_buffer, 1)
ElseIf $i = 0 Then
DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
If @error Then
SetError(7)
Return 0
EndIf
$iv_data[1] = DllStructGetData($v_buffer, 1)
Else
$iv_address = "0x" & Hex($iv_data[1] + $av_offset[$i])
DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
If @error Then
SetError(7)
Return 0
EndIf
$iv_data[1] = DllStructGetData($v_buffer, 1)
EndIf
Next
$iv_data[0] = $iv_address
Return $iv_data
EndFunc
Func _memorypointerwrite($iv_address, $ah_handle, $av_offset, $v_data, $sv_type = "dword")
If IsArray($av_offset) Then
If IsArray($ah_handle) Then
Local $iv_pointercount = UBound($av_offset) - 1
Else
SetError(2)
Return 0
EndIf
Else
SetError(1)
Return 0
EndIf
Local $iv_structdata, $i
Local $v_buffer = DllStructCreate("dword")
For $i = 0 To $iv_pointercount
If $i = $iv_pointercount Then
$v_buffer = DllStructCreate($sv_type)
If @error Then
SetError(@error + 3)
Return 0
EndIf
DllStructSetData($v_buffer, 1, $v_data)
If @error Then
SetError(8)
Return 0
EndIf
$iv_address = "0x" & Hex($iv_structdata + $av_offset[$i])
DllCall($ah_handle[0], "int", "WriteProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
If @error Then
SetError(9)
Return 0
Else
Return $iv_address
EndIf
ElseIf $i = 0 Then
DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
If @error Then
SetError(3)
Return 0
EndIf
$iv_structdata = DllStructGetData($v_buffer, 1)
Else
$iv_address = "0x" & Hex($iv_structdata + $av_offset[$i])
DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
If @error Then
SetError(3)
Return 0
EndIf
$iv_structdata = DllStructGetData($v_buffer, 1)
EndIf
Next
EndFunc
Func _memoryscan($ah_handle, $pattern, $after = False, $iv_addrstart = 4194304, $iv_addrend = 16777215, $step = 51200)
If NOT IsArray($ah_handle) Then
SetError(1)
Return - 1
EndIf
$pattern = StringRegExpReplace($pattern, "\?", ".")
$pattern = StringRegExpReplace($pattern, "[^0123456789ABCDEFabcdef.]", "")
If StringLen($pattern) = 0 Then
SetError(2)
Return - 2
EndIf
For $addr = $iv_addrstart To $iv_addrend Step $step-(StringLen($pattern) / 2 )
StringRegExp(_memoryread($addr, $ah_handle, "byte[" & $step & "]"), $pattern, 1, 2)
If NOT @error Then
If $after Then
Return StringFormat("0x%.8X", $addr + ((@extended - 2) / 2))
Else
Return StringFormat("0x%.8X", $addr + ((@extended - StringLen($pattern) - 2) / 2))
EndIf
EndIf
Next
Return - 3
EndFunc
Func _modulegetbaseaddress($hprocess, $smodulename)
Local $modulesmax = DllStructCreate("ptr[1024]")
Local $iprocessmodules = DllCall("psapi.dll", "BOOL", "EnumProcessModules", "HANDLE", $hprocess, "ptr", DllStructGetPtr($modulesmax), "DWORD", DllStructGetSize($modulesmax), "DWORD*", "")
Local $smodulebasename
For $i = 1 To $iprocessmodules[4] / 4
$smodulebasename = DllCall("psapi.dll", "DWORD", "GetModuleBaseNameW", "HANDLE", $hprocess, "ptr", DllStructGetData($modulesmax, 1, $i), "wstr", "", "DWORD", 256)
If $smodulebasename[3] = $smodulename Then Return DllStructGetData($modulesmax, 1, $i)
Next
EndFunc
If NOT FileExists(@ScriptDir & "\....exe") Then
MsgBox(0, "", "Please put Bypass in ... Folder!")
Exit
EndIf
FileDelete(@ScriptDir & "\...2.exe")
FileDelete(@ScriptDir & "\...3.exe")
FileCopy(@ScriptDir & "\....exe", @ScriptDir & "\....exe")
FileCopy(@ScriptDir & "\....exe", @ScriptDir & "\...3.exe")
$gameguardmessage = 14631678
$gameinitfail = 14355456
$gamealreadyopen = 14355104
ToolTip("Waiting for ....exe...", 0, 0)
If NOT ProcessExists("....exe") Then
Run(@ScriptDir & "\....exe", @ScriptDir)
ProcessWait("....exe")
bypassit(ProcessExists("....exe"))
ElseIf NOT ProcessExists("...2.exe") Then
Run(@ScriptDir & "\...2.exe", @ScriptDir)
ProcessWait("...2.exe")
bypassit(ProcessExists("...2.exe"))
ElseIf NOT ProcessExists("...3.exe") Then
Run(@ScriptDir & "\...3.exe", @ScriptDir)
ProcessWait("...3.exe")
bypassit(ProcessExists("...3.exe"))
EndIf
Func bypassit($pid)
$open = _memoryopen($pid)
While NOT _memoryread($gameguardmessage, $open, "byte") = 116
Sleep(1)
WEnd
_memorywrite($gameguardmessage, $open, 235, "byte")
_memorywrite($gameinitfail, $open, 235, "byte")
_memorywrite($gamealreadyopen, $open, 235, "byte")
ToolTip("Bypassed!", 0, 0)
Sleep(2000)
Exit
EndFunc
Ist ein Bypass für Gameguard. Würde der Code funktionieren oder fehlt da was.
MfG
Könnte für den momentanen GameGuard funktionieren (oder auch nicht), aber selbst wenn es funktioniert, dann nur für diese Version, da die Adressen hardcoded sind und nicht durch PatternScan o.ä. herausgefunden werden.
CE sourcecode? 10/05/2006 - General Coding - 2 Replies Kinda want to know where to get the CE sourcecode. I've used the search function AND google but no find. Can anyone help me out or upload it somewhere please?