[Hilfe] Auto IT Text char[x]

07/22/2010 17:13 hackan#1
Moin Leute.

Ich grübel nun schon länger über meinen Auto IT Trainer.

Nur dieser soll anstatt float values eine Text value verändern >.>
Habe halt ein paar probs damit wäre nett wenn mal jemand kurz drüber schauen würde :)

Netten Gruß







 
Const $Var1 = 0x0CDEC44
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("HP Hack", 625, 171, 192, 124)
GUISetBkColor(0xA6CAF0)
$Input1 = GUICtrlCreateInput("actor_default_hp_max", 48, 72, 209, 21)
GUICtrlSetColor(-1, 0x000000)
$Input2 = GUICtrlCreateInput("actor_default_animation_move_speed", 344, 72, 217, 21)
GUICtrlSetColor(-1, 0x000000)
$Label1 = GUICtrlCreateLabel("TYPE THIS^ IN THE LEFT BOX ", 360, 128, 162, 17)
GUICtrlSetColor(-1, 0x000000)
$Button1 = GUICtrlCreateButton("START HACK after Copy the Right Field into the Left", 32, 120, 281, 41, $WS_GROUP)
GUICtrlSetColor(-1, 0x000000)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_weiter()
EndSwitch
WEnd
Func _weiter()
$Var2 = GUICtrlRead($Input1)
ToolTip("Waiting for S4Client.exe", 0, 0)
$Var0354 = ProcessWait("S4Client.exe")
Sleep(0x0064)
$mist = Fn0000(ProcessExists("S4Client.exe"))
Do
Sleep(2)
Until WinWaitActive("S4 Client")
Fn0002($Var1, $mist, $Var2, "char[20]")
If @error Then
ToolTip("Somethings Wrong!", 0, 0)
Else
ToolTip("Success!", 0, 0)
Sleep(0x02BC)
ToolTip("", 0, 0)
Exit
EndIf
EndFunc
07/22/2010 18:43 Fuyo#2
Hi hackan, bin gerade nicht an Main PC, aber ich habe das gleiche Problem :D
Habe hier auch kein S4 und nur rotz Inet, könntest du mir die Adresse nennen von dem Text.
Komm nämlich auch nicht weiter, bin auch auf der suche :D
Schließe mich der Suche an ^^
07/22/2010 18:46 hackan#3
00CDEC44
Adresse

Musst nur als Text Suchen



->actor_default_hp_max

^das ändern in -> actor_default_animation_move_speed

dann haste 900 und nochwas hp
07/22/2010 18:53 Fuyo#4
Ja, das Suchen konnte ich ja nicht.
Also 00CDEC44 ist das actor_default_hp_max.
Jetzt müssten wir nur noch wissen, wie man die Adresse zum anderen Text bekommt :D

BTW:
Dein Source ist extrem komisch ~.~
07/22/2010 19:06 PenGuin :O#5
Ich sagte bereits, dass man als Type Char wählen muss und in die [] muss die Stringlänge + 1 hinein...
07/22/2010 19:12 hackan#6
Quote:
Originally Posted by pinguin94 View Post
Ich sagte bereits, dass man als Type Char wählen muss und in die [] muss die Stringlänge + 1 hinein...
Fn0002($Var1, $mist, $Var2, "char[20]")

*hust*
07/22/2010 19:14 PenGuin :O#7
Ja was ist denn Fn0002 bei dir?
Wenn ich deine Funktion nicht kenne, kann ich schlecht dne Fehler analysieren...

Falls es sich um MemoryWrite aus der NomadMemory.au3 handelt, wäre es mal von Vorteil sich selber anzustrengen und die Beschreibung davon zu lesen.

MemoryWrite:
Quote:
Values sent must be in Decimal format, unless specified as a
; 'char' type, then they must be in ASCII format. Also note
; that size ('char[size]') for all 'char' types should be 1
; greater than the actual size.
07/22/2010 19:19 omer36#8
ambesten bearbeitest du deine func _weiter() nochmal ganz...
und wenn du ein autoit code einfügen willst machs so, ist übersichtlicher:
[php] hier dein code [/*php] (den * löschen)
07/22/2010 19:22 Fuyo#9
@pinguin
ok, ich bin grad am Ipad :D
So könnte das funktionieren ?
Code:
MemoryWrite(0x00CDEC44, $Open, actor_default_animation_move_speed, "char[1]")
Danke, für die schnelle Antwort schonmal
07/22/2010 19:26 PenGuin :O#10
NEIN.
In die [ ] muss die Stringlänge + 1 als Integer stehen!
07/22/2010 19:30 Fuyo#11
Ok, der neu zu schreibende String hätte ja 32 + 1 = 33 muss jedoch
der neue oder der alte String(actor_default_hp_max) hätte ja 19 + 1 = 20.
07/22/2010 19:34 PenGuin :O#12
Ja und da MemoryWrite den Type des zu schreibenden Strings benötigt, müsste da theoretisch char[33] rein, aber wichtig, dass der String als ASCII angegeben wird.
07/22/2010 19:39 Fuyo#13
Ok, jetzt müsste ich den Text actor_default_hp_max in ASCII haben.
Der neu zu schreibende Text müsste auch in ASCII sein oder?
07/22/2010 19:41 PenGuin :O#14
Den vorherigen brauchst du nicht in ASCII, nur den neu zu schreibenden.

Zitat von der NomadMemory.au3:

Quote:
;================================================= =================================
; Function: _MemoryWrite($iv_Address, $ah_Handle, $v_Data[, $sv_Type])
; Description: Writes data to the specified memory address.
; Parameter(s): $iv_Address - The memory address which you want to write to.
; It must be in hex format (0x00000000).
; $ah_Handle - An array containing the Dll handle and the handle
; of the open process as returned by _MemoryOpen().
; $v_Data - The data to be written.
; $sv_Type - (optional) The "Type" of value you intend to write.
; This is set to 'dword'(32bit(4byte) signed integer)
; by default. See the help file for DllStructCreate
; for all types. An example: If you want to write a
; word that is 15 characters in length, you would use
; 'char[16]' since a 'char' is 8 bits (1 byte) in size.
; Return Value(s): On Success - Returns 1
; On Failure - Returns 0
; @Error - 0 = No error.
; 1 = Invalid $ah_Handle.
; 2 = $sv_Type was not a string.
; 3 = $sv_Type is an unknown data type.
; 4 = Failed to allocate the memory needed for the DllStructure.
; 5 = Error allocating memory for $sv_Type.
; 6 = $v_Data is not in the proper format to be used with the
; "Type" selected for $sv_Type, or it is out of range.
; 7 = Failed to write to the specified process.
; Author(s): Nomad
; Note(s): Values sent must be in Decimal format, unless specified as a
; 'char' type, then they must be in ASCII format. Also note
; that size ('char[size]') for all 'char' types should be 1
; greater than the actual size.
;================================================= =================================
Lies das mal am Besten durch ;)
07/22/2010 19:45 Fuyo#15
Danke, für die Hilfe, habe ja gerade die ganzen Sachen nicht hier.
Da ich ja die erste Hex Adresse habe muss ich nur noch den neuen Text in ASCII konvertieren und dann schreiben lassen, wenn ich mich jetzt nicht irre.
Danke für die viele Hilfe, bin Sonntag wieder am Haupt Pc und kann dann testen bis der Artz kommt.

€dit:
Ascii code:
97 99 116 111 114 95 100 101 102 97 117 108 116 95 97 110 105 109 97 116 105 111 110 95 109 111 118 101 95 115 112 101 101 100

Wenn es jemand testen könnte wäre super !
Könnte das funktionieren ? oder muss der ASCII Code ohne Leerzeichen?
Code:
$Ascii = 97 99 116 111 114 95 100 101 102 97 117 108 116 95 97 110 105 109 97 116 105 111 110 95 109 111 118 101 95 115 112 101 101 100
MemoryWrite(0xAdresseeinfügen,$Open,$Ascii,char[33])