NomandMemory.au3 buggy ?

05/29/2010 22:52 Fuyo#1
Hi ,
bei meinem S4 League Trainer , lasse ich verschiedene Adressen durch Inputboxen ersetzen , ich habe nur ein Problem.
Bei manchen kann man in die Inputboxen schreiben was man will , es ändert sich immer in irgendeine Value.
Zum auslesen der beliebigen Value wird einfach
Code:
_MemoryWrite($adresse,$open,$Input1)
was mache ich falsch ?
05/29/2010 22:54 huberhans#2
Quote:
Originally Posted by Fuyo View Post
Hi ,
bei meinem S4 League Trainer , lasse ich verschiedene Adressen durch Inputboxen ersetzen , ich habe nur ein Problem.
Bei manchen kann man in die Inputboxen schreiben was man will , es ändert sich immer in irgendeine Value.
Zum auslesen der beliebigen Value wird einfach
Code:
_MemoryWrite($adresse,$open,$Input1)
was mache ich falsch ?
Probiers mal so:

PHP Code:
_MemoryWrite($adresse,$open,GUICtrlRead($Input1)) 
05/29/2010 22:56 Fuyo#3
Danke dir , werde ich morgen ausprobieren , das komische bei der Sache.
Bei manchen geht es , bei anderen nicht , werde es mit dem GuiCtrlRead ausprobieren.
Danke für die schnelle Antwort.
05/29/2010 22:59 Benhero#4
Evtl sind auch verschiedene Typen? Also 4Byte, 2Byte etc. Dann musst du auch noch andere Sachen an 4te Stelle schreiben.

Greatz Benehro
05/29/2010 23:01 huberhans#5
Quote:
Originally Posted by Benhero View Post
Evtl sind auch verschiedene Typen? Also 4Byte, 2Byte etc. Dann musst du auch noch andere Sachen an 4te Stelle schreiben.

Greatz Benehro
Mööööp... da hatte ich nen Denkfehler... InputBox kann ohne Guictrlread ausgelesen werden...
Ich schließ mich mal der Idee von Benhero an
05/29/2010 23:08 Benhero#6
Oder es kann auch sein das die Addresse ein Pointer ist/hat. Der sich jedes mal ändert und du deshalb immer wieder den Wert in eine Falsche addresse schreibst.

Greatz Benhero
05/29/2010 23:13 Fuyo#7
Nein , es ist eine Adresse , sry dahinter muss noch Float ;)
05/29/2010 23:16 Benhero#8
sagte ich ja das es ein anderer wert ist :)
Aber achte einfach das nächste mal besser dann brauchst du dafür nicht extra einen Therad eröffnen :)

Best Greatz Benhero
05/29/2010 23:19 Fuyo#9
Ich kann es jeztt nicht gerade testen ...
In meinem Source steht es auch die schon die ganze Zeit ...
Bin grad am laptop und habe das ausm kopf geschrieben , habe nur das Float hier vergessen , das problem ist trotzdme da
05/30/2010 09:19 Al Kappaccino#10
Trotzdem is NomadMemory.au3 scheiße :D
War ja, zumindest fast die Thread frage^^
float=Float
dword = 4 Byte
char = Text
so btw falls du es mal brauchst^^
05/30/2010 13:08 Fuyo#11
Gibt es eine alternative zur nomadmemory ?
05/30/2010 13:19 Σternαl.#12
Ja natürlich.
Du könntest dir deine Memory Funktionen auch selber schreiben,
aber das würde eigentlich keinen Unterschied zu NomadMemory machen.
NomadMemory.au3 ist ja nur eine .au3 Datei, also ein Script, in dem Funktionen deklariert/definiert sind.
Wenn du natürlich Probleme mit NomadMemory hast, oder da Fehler drinne wären (die mir nicht bekannt sind),
kannst du dir natürlich deine Funktionen selber schreiben oder die von NomadMemory bearbeiten.
05/30/2010 16:28 Shadow992#13
Quote:
Originally Posted by -Infinite- View Post
Ja natürlich.
Du könntest dir deine Memory Funktionen auch selber schreiben,
aber das würde eigentlich keinen Unterschied zu NomadMemory machen.
NomadMemory.au3 ist ja nur eine .au3 Datei, also ein Script, in dem Funktionen deklariert/definiert sind.
Wenn du natürlich Probleme mit NomadMemory hast, oder da Fehler drinne wären (die mir nicht bekannt sind),
kannst du dir natürlich deine Funktionen selber schreiben oder die von NomadMemory bearbeiten.
Du kannst auch die von anfang an in AutoIt definierten Befehle nehmen , kleiner Auszug :

Code:
#Include <WinAPI.au3>

_WinAPI_OpenProcess($iAccess, $fInherit, $iProcessID[, $fDebugPriv = False])

_WinAPI_WriteProcessMemory($hProcess, $pBaseAddress, $pBuffer, $iSize, ByRef $iWritten[, $sBuffer = "ptr"])

_WinAPI_ReadProcessMemory($hProcess, $pBaseAddress, $pBuffer, $iSize, ByRef $iRead)
Die sollten eigentlich fehlerfrei funktionieren .
05/30/2010 16:35 Σternαl.#14
Naja C++ ist immernoch am schönsten wenns um solche Sachen geht^^
05/30/2010 17:19 Fuyo#15
Mhm , vllt hilft euch mein Source Code ja :
Code:
#RequireAdmin
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <GDIPlus.au3>
#include <WinAPI.au3>


#Region ### START Koda GUI section ### 
$Form1_1 = GUICreate("Patch 18 Trainer 2.1 - Fuyo", 281, 325, 342, 171)
$Label1 = GUICtrlCreateLabel("Pushback", 32, 8, 52, 17)
$Input1 = GUICtrlCreateInput("3000", 128, 8, 121, 21)
$Label2 = GUICtrlCreateLabel("Sp Regeneration", 32, 32, 84, 17)
$Input2 = GUICtrlCreateInput("7.5", 128, 32, 121, 21)
$Label3 = GUICtrlCreateLabel("Cutspeed", 32, 56, 65, 17)
$Input3 = GUICtrlCreateInput("0.8", 128, 56, 121, 21)
$Label4 = GUICtrlCreateLabel("Crit", 32, 80, 22, 17)
$Input4 = GUICtrlCreateInput("1", 128, 80, 121, 21)
$Label5 = GUICtrlCreateLabel("Shield", 32, 104, 36, 17)
$Input5 = GUICtrlCreateInput("175", 128, 104, 121, 21)
$Label6 = GUICtrlCreateLabel("Walljump", 32, 128, 66, 17)
$Input6 = GUICtrlCreateInput("0.75", 128, 128, 121, 21)
$Label7 = GUICtrlCreateLabel("Hit Range", 32, 248, 51, 17)
$Input7 = GUICtrlCreateInput("", 128, 248, 121, 21)
$Label8 = GUICtrlCreateLabel("Dash", 32, 224, 29, 17)
$Input8 = GUICtrlCreateInput("1.5", 128, 224, 121, 21)
$Button1 = GUICtrlCreateButton("Start !", 16, 296, 249, 25)
$Label9 = GUICtrlCreateLabel("Ghost", 32, 176, 32, 17)
$Checkbox1 = GUICtrlCreateCheckbox("Dash + Hit Range (buggy in manchen Maps)", 32, 200, 233, 17)
$Input9 = GUICtrlCreateInput("200", 128, 176, 121, 21)
$Label10 = GUICtrlCreateLabel("Verzögerung", 32, 272, 67, 17)
$Input10 = GUICtrlCreateInput("500", 128, 272, 121, 21)
$Checkbox2 = GUICtrlCreateCheckbox("Ghost Hack ?", 32, 152, 97, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
		$nMsg = GUIGetMsg()
		Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Checkbox1
			If GUICtrlRead($Checkbox1) = 1 Then
				GUICtrlSetState($Input8, $GUI_ENABLE)
				GUICtrlSetState($Input7, $GUI_ENABLE)
			Elseif GUICtrlRead($Checkbox1) = 4 Then
				GUICtrlSetState($Input8, $GUI_DISABLE)
				GUICtrlSetState($Input7, $GUI_DISABLE)
			EndIf
		Case $Checkbox2
			If GUICtrlRead($Checkbox2) = 1 Then
				GUICtrlSetState($Input9, $GUI_ENABLE)				
			Elseif GUICtrlRead($Checkbox2) = 4 Then
				GUICtrlSetState($Input9, $GUI_DISABLE)				
			EndIf			
		Case $Button1
			$ReadSleep = GuiCtrlRead($Input10)
			ToolTip("Made by Fuyo . Have fun Leech0rs",0,0)
			$wait = ProcessWait("S4Client.exe")
			Sleep($ReadSleep)
			$PID = ProcessExists("S4Client.exe")
			$Open = _MemoryOpen($PID)
			
			$PushbackAdd = 0x00C4C818
			$WritePushback =_MemoryWrite($PushbackAdd,$Open,$Input1,"float" )
			
			$SpAdd = 0x00C49558
			$WriteSp =_MemoryWrite($SpAdd,$Open,$Input2,"float" )
			
			$CutspeedAdd = 0x00C50718
			$WriteCutspeed =_MemoryWrite($CutspeedAdd,$Open,$Input3,"float" )
			
			$CritAdd = 0x00C4D67C
			$WriteCrit =_MemoryWrite($CritAdd,$Open,$Input4,"float" )
			
			$ShieldAdd = 0x00C4C840
			$WriteShield =_MemoryWrite($ShieldAdd,$Open,$Input5,"float" )
			
			$WallAdd = 0x00C4DCE4
			$WriteWalljump =_MemoryWrite($WallAdd,$Open,$Input6,"float" )
			
			If GUICtrlRead($Checkbox2) = 1 Then
			$GhostAdd = 0x00C4C5E0
			$WriteGhost =_MemoryWrite($GhostAdd,$Open,$Input9,"float" )
			EndIf
			
			If GUICtrlRead($Checkbox1) = 1 Then
				$DashAdd = 0x00C4C8B8
				$WriteDash =_MemoryWrite($DashAdd,$Open,$Input8,"float" )
				
				$RangeAdd = 0x00C49788
				$WriteRange =_MemoryWrite($RangeAdd,$Open,$Input7,"float" )
			EndIf
		Exit
EndSwitch
WEnd