[Tutorial]HowTo Gamehacking with AutoIT

11/11/2010 17:50 maxi39#16
ich hab ne kleine anmerkung zum "Adressen Suchen String Hack" tut video, da wird gesagt nachdem man die adressen gefunden worden sind das man S4Client.exe+91E750 net kopieren soll, da es nicht die adresse ist.
ähmmmm man kann die auch benutzen... das S4Client.exe+91E750

so vlt: ?

PHP Code:
#RequireAdmin 
#include <Pointer.au3> 

HotKeySet("{F1}""_Read"

$PID ProcessExists("S4Client.exe"
If 
$PID 0 Then 
    $Handle 
_MemoryOpen($PID
    
$Address _MemoryModuleGetBaseAddress(ProcessExists("S4Client.exe"), "S4Client.exe"
    
$Address "0x" Hex($Address Dec("91E750")) 
    
Else 
    Exit 
EndIf 

While 
True 
    Sleep
(100
WEnd 

Func _Read
() 
    
$Read _MemoryRead($Address$Handle,  "text"
    
MsgBox(0""$Read[1]) 
EndFunc 
kann sein das ich mich auch geiirt hab-.-
11/12/2010 04:01 lolkop#17
Quote:
Originally Posted by .BritainAndy View Post
Ob ich jz byte4 oder dword schreibe ist ja wohl kein unterschied, oder?
und 0x004BE914 wird wohl nicht funktionieren, sondern nur 0x04BE914..
ist leider beides falsch...

dword wird vom computer gleich als richtige dezimalzahl eingelesen. selbstverständlich ist ein dword wert 4 byte lang. wenn ich aber 4 byte einlese, muss ich noch beachten, das im speicher dword werte immer "reversed" also falsch herum stehen.

lese ich also eine adresse, in der F0 00 00 00 steht, als dword wert ein, so bekomme ich gleich die richtige ausgabe 0xF0 (hex) bzw 240 dezimal, und nicht wie wenn ich es normal byteweise einlese 0xF0000000 (hex) bzw 4026531840 (dez)... wie man sieht ist das doch schon ein recht großer unterschied :P

und ja in der binären schreibweise kann man beliebig viele 0 vor seine zahl setzen...
1 = 01 = 001 = 0001 = ... = (0^n)1 für n>=0
selbiges gilt natürlich demzufolge auch für hexwerte, da sich diese ja nur aus binärwerten ergeben (habe ich binär 4 nullen in folge, so habe ich auch hexadezimal eine null).

da der autoit compiler allerdings nicht wirklich für binäre operationen ausgelegt ist, werden hexwerte nur bis zu einer größe von 4 byte akzeptiert. (was übrigens auch zu problemen beim einlesen von QWORD/long/double werten führt...)

für alles was länger als 4byte ist, muss man sich mithilfe von string funktionen selbst funktionen definieren, die auch operationen mit größeren werten handeln können =)
11/13/2010 12:39 Fonsa-X#18
Blöder leecher das hat er aus anderen forum geklaut von mir !
11/20/2010 19:45 WhiteLionATX#19
natürlich kommt 49 raus wenn ihr 1 rein schreibt, denn die "1" ist in hexa = 31 was wiederum 49 dezimal entspricht.
ihr müsst die ausgelesene zahl vorher noch in eine hexa wandeln. falls es noch jemanden interessiert :D
11/20/2010 21:59 Âgent Smîth#20
Quote:
Blöder leecher das hat er aus anderen forum geklaut von mir !
Naja ich denke das Spielt keine rolle mehr ;)
Gebannte kann man nicht mehr repoten schade XD
11/26/2010 15:09 lolkop#21
Quote:
Originally Posted by Âgent Smîth View Post
Naja ich denke das Spielt keine rolle mehr ;)
Gebannte kann man nicht mehr repoten schade XD
und mal davon abgesehen, ist dieses tutorial sowieso wirklich schlecht :P
hiermit will ich nicht sagen, das es schlecht rüber gebracht ist, sondern das einfach viel zu viele logikfehler vorkommen. finde sowas sollte man gerade, wenn man etwas für anfänger macht, die es nicht besser wissen, absolut vermeiden.

fehlerhafte tutorials führen dazu, das "neulinge" auf dem jeweiligem gebiet gleich mit falschem grundwissen in das thema einsteigen...

will ja keinem etwas unterstellen, aber bin mir ziemlich sicher, das der ersteller dieser videos, zumindest zu dem zeitpunkt, wo er die videos erstellt hat, absolut keine ahnung von dem ganzen thema hatte... nur weil man in der lage ist einen code, den man warscheinlich noch vorher woanders gefunden hat, etwas zu modifizieren, um so ein programm mit neuen funktionen zu erstellen, heist das noch lange nicht, das man sofort ein tutorial darüber machen sollte...

wenn ich schon sachen höre wie:
Quote:
Wir schreiben als erstes 0x, das autoit erkennt, das es hier 'ne adresse is'
würde ich spontan sofort behaupten, das der ersteller nicht nur keine ahnung vom arbeiten mit dem speicher hat, sondern, dass seine wissenslücken noch deutlich tiefer reichen...

wer noch nie etwas von zahlensystemen gehört hat, hat meiner meinung nach einfach absolut nichts in einer tutorial sektion zu suchen...
12/19/2010 10:52 wasserbett#22
ich finde es ein gutes tutorial....hat jemand ne ahnung wie man auf metin2 cheat enigne anwendet..es blockt immer wegen hackshield..
12/29/2010 23:23 Dradgeyo#23
@ wasserbett
du brauchst einen bypass für den neuen hackshield
ps: gibt es aber nicht, musst selbst einen machen oder warten...
01/06/2011 15:44 Ks4killerX#24
WOW ICH CAN AUTOIT xP
nur den string hack verstehe ich nich o.O
also du sagst, wenn die checkboy aktiviert wird, wird die adresse bearbeitet o.O in was denn
ich spiel auch s4 und was soll bitte min ammo bedeuten xDD nagut ich hab damals mit res hack meine hp auch nich gefunden also ich verstehe langsam xD
01/08/2011 18:24 Nektarius#25
ich kann die adresse finden und den hack in autoit schreiben aber meine adressen ändern sich immer und ich find keine anderen
01/08/2011 23:08 omer36#26
multi/pointer suchen
01/09/2011 12:55 Nektarius#27
der multi pointer sollte dann Grün sein ?
und den such ich mit: Find out what writes/accesses this adress?
01/23/2011 12:47 P∪dding#28
kann mir einer sagen wa sich falsch mache?
Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#RequireAdmin
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 246, 93, 192, 124)
$Input1 = GUICtrlCreateInput("Input1", 8, 8, 121, 21)
$Button1 = GUICtrlCreateButton("Button1", 24, 40, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			_Hack ()

	EndSwitch
WEnd

Func _Hack ()
	$value = GUICtrlRead($Input1)
	$PID = ProcessExists("solitaire.exe")
	ProcessWait($PID)
	ToolTip ("Starten Sie das Programm",0,0)
	$OPEN = _MemoryOpen($PID)
	 _MemoryWrite(0x39A424,$OPEN,$value,"byte[4]")
	 
	 EndFunc
wenn ich es starte erscheint die meldung diesesr tooltips
Code:
ToolTip ("Starten Sie das Programm",0,0)
aber ich habe die Solitaire.exe gestartet,was mach ich falsch?
01/23/2011 18:10 maxi39#29
PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
#RequireAdmin
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Form1"24693192124)
$Input1 GUICtrlCreateInput("Input1"8812121)
$Button1 GUICtrlCreateButton("Button1"24407525)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$Button1
            _Hack 
()

    EndSwitch
WEnd

Func _Hack 
()
    
$value GUICtrlRead($Input1)
    
$PID ProcessExists("solitaire.exe")
    
ProcessWait($PID)
    
ToolTip ("Starten Sie das Programm",0,0)
    
$OPEN _MemoryOpen($PID)
     
_MemoryWrite(0x39A424,$OPEN,$value,"byte[4]")
     
     
EndFunc 
ich mein das is doch logisch oda?
hier sagst du ja das er auf den prozess warten soll
ProcessWait($PID)
und wenn der prozess da ist sagst du das er das machen soll
ToolTip ("Starten Sie das Programm",0,0)
04/27/2011 21:52 herkules222#30
Danke für eure hilfe =D