UPDATE 05-11-2009
Hi, I had some free time and I did mc and as distance changer.
MC:
Code:
http://www.sendspace.com/file/brc4hr
You can do mc yourself, becouse you need unpack sro_client.exe in stripper and edit this offset $41934F from 75 to EB in hexeditor.
To work mc you must 'Run as Administartor'
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Ksro AutoSelect Distance changer (the script is not my, but I change offset):
Script work in AutoIt:
Code:
http://www.autoitscript.com/autoit3/downloads.shtml
Code:
;------------------------------------------------------------------------------
; Memory functions -
;------------------------------------------------------------------------------
Func _OpenProcess($hWnd, $use_pid=0)
If $use_pid = 0 Then
Local $pid = DllCall("user32.dll", "int", "GetWindowThreadProcessId", "hwnd", $hWnd, "int*", 0)
If IsArray($pid) Then
$pid = $pid[2]
Else
SetError(-1)
Return
EndIf
Else
Local $pid = $hWnd
EndIf
; 0x001f0fff - All Access
Local $pHandle = DllCall("kernel32.dll", "long", "OpenProcess", "int", 0x001f0fff, "int", 0, "int", $pid)
If IsArray($pHandle) And $pHandle[0] > 0 Then
$pHandle = $pHandle[0]
Else
SetError(-2)
Return
EndIf
Return $pHandle
EndFunc
Func _CloseHandle($pHandle)
DllCall("kernel32.dll", "int", "CloseHandle", "int", $pHandle)
EndFunc
Func _WriteFloat($pHandle, $Address, $value)
Local $float = DllStructCreate("float")
DllStructSetData($float, 1, $value)
; Need to make the memory writeable first! You should really restore the page protection afterwards though, but this is to make it work
$outDw = 1
DllCall("kernel32.dll", "int", "VirtualProtectEx", "int", $pHandle, "ptr", $Address, "int", 4, "dword", 0x40, "dword*", $outDw)
Local $ret = DllCall("kernel32.dll", "int", "WriteProcessMemory", "int", $pHandle, "int", $Address, "ptr", DllStructGetPtr($float), "int", 4, "int", 0)
If IsArray($ret) Then
If $ret[0] <> 0 Then
Return True
Else
SetError(-2)
Return False
EndIf
Else
SetError(-1)
Return False
EndIf
EndFunc
Func _ReadFloat($pHandle, $Address)
Local $floatReturn = 0
Local $float = DllStructCreate("float")
Local $ret = DllCall("kernel32.dll", "int", "ReadProcessMemory", "int", $pHandle, "int", $Address, "ptr", DllStructGetPtr($float), "int", 4, "int", 0)
If IsArray($ret) Then
If $ret[0] = 1 Then
$floatReturn = DllStructGetData($float, 1)
Else
SetError(-1)
EndIf
Else
SetError(-2)
EndIf
Return $floatReturn
EndFunc
;------------------------------------------------------------------------------
; Script code -
;------------------------------------------------------------------------------
$address = 0xD37430
$pHandle = _OpenProcess(WinGetHandle("SRO_Client"))
MsgBox(64, "TEST BYTE PTR DS:[ESI-11C],1", "Current distance in AutoSelect is: " & _ReadFloat($pHandle, $address))
MsgBox(64, "ksro D37430", _WriteFloat($pHandle, $address, [COLOR="Red"]2000000[/COLOR]))
MsgBox(64, "ksro D37430", "AutoSelect distance now: " & _ReadFloat($pHandle, $address))
_CloseHandle($pHandle)
2000000 - AutoSelect Distance