|
You last visited: Today at 00:04
Advertisement
Warum wird der Pointer nicht verändert?
Discussion on Warum wird der Pointer nicht verändert? within the AutoIt forum part of the Coders Den category.
11/05/2012, 19:23
|
#1
|
elite*gold: 281
Join Date: May 2011
Posts: 1,552
Received Thanks: 946
|
Warum wird der Pointer nicht verändert?
Hi..
Ich habe ein Problem.
Ich habe sämtliche Autoitcodes probiert, leider geht keiner.
Ich glaube ich mache was mit dem Pointer Falsch...
Hier mein Autoitcode:
PHP Code:
#RequireAdmin
#include <Pointer.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Beispielhack 1.3", 389, 38, 192, 124)
$Input1 = GUICtrlCreateInput("", 8, 8, 241, 21)
$Button1 = GUICtrlCreateButton("On", 256, 8, 57, 17, $WS_GROUP)
$Button2 = GUICtrlCreateButton("Off", 320, 8, 57, 17, $WS_GROUP)
GUISetState(@SW_SHOW)
Dim $Speedhack[3] = [0, 0x420, 0x66A]
$Base = 0x002ED9B0
$Handle = _MemoryOpen(ProcessExists("metin2.bin"))
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
_MemoryPointerWrite($Base, $Handle, $Speedhack,GuiCtrlRead($Input1))
Case $Button2
_MemoryPointerWrite($Base, $Handle, $Speedhack,16230)
EndSwitch
Wend
So sieht es bei Cheat Engine aus:
Ich hoffe jemand erkennt meinen Fehler..
Der Pointer geht 100%.
Danke.
Mfg. EasyFarm
Edit:
Mein Problem ist natürlich, dass sich die Value nicht ändert ^^
|
|
|
11/05/2012, 21:29
|
#2
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Hab gerade mal kurz drüber geschaut und ein paar Dinge verändert.
Bin etwas müde von der Arbeit, deshalb will ich auch nicht genauer auf die einzelnen Punkte eingehen. Schau es dir einfach mal an und frag, wenn du was nicht verstehen solltest.
Code:
#RequireAdmin
#include <Pointer.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$GUI_Form1 = GUICreate("Beispielhack 1.3", 389, 38, 192, 124)
$inp_Value = GUICtrlCreateInput("", 8, 8, 241, 21, BitOR ($ES_NUMBER, $ES_NUMBER))
$inp_SetOn = GUICtrlCreateButton("On", 256, 8, 57, 17, $WS_GROUP)
$inp_SetOff = GUICtrlCreateButton("Off", 320, 8, 57, 17, $WS_GROUP)
GUISetState(@SW_SHOW)
Global Const $Speedhack[3] = [0, 0x420, 0x66A]
Global Const $Base = 0x002ED9B0
Global $Handle = 0, $PId = 0
$Handle = _MemoryOpen(ProcessExists("metin2.bin"))
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $inp_SetOn
Local $Speed_Value = GUICtrlRead($inp_Value)
if $Speed_Value > 0 Then
if IsArray($Handle) Then
_MemoryPointerWrite($Base, $Handle, $Speedhack, $Speed_Value, "WORD") ;gehe mal von 2Bytes aus
EndIf
EndIf
Case $inp_SetOff
if IsArray($Handle) Then
_MemoryPointerWrite($Base, $Handle, $Speedhack, 16230, "WORD")
EndIf
EndSwitch
$PId = ProcessExists("metin2.bin") ; *.bin ??
if $PId > 0 Then
if not IsArray($Handle) or $Handle == 0 Then
$Handle = _MemoryOpen($PId)
if not IsArray($Handle) Then
MsgBox(48, "Fehler", "Metin konnte nicht geöffnet werden!")
EndIf
EndIf
Else
MsgBox(48,"Fehler","Metin wurde nicht gefunden. Starten Sie Metin!")
EndIf
Wend
|
|
|
11/05/2012, 22:24
|
#3
|
elite*gold: 281
Join Date: May 2011
Posts: 1,552
Received Thanks: 946
|
Thx erstmal.
Leider ändert sich die Value wieder nicht.
Wie kann ich das für 4 Bytes mal machen?
In Cheat Engine ist es auf 4 Bytes, aber mit 2 gehts auch.
Mfg. EasyFarm
|
|
|
11/05/2012, 22:46
|
#4
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Also ich würde es so machen:
PHP Code:
#RequireAdmin #include <Pointer.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3>
$Form1 = GUICreate("Beispielhack 1.3", 389, 38, 192, 124) $Input1 = GUICtrlCreateInput("", 8, 8, 241, 21,$ES_NUMBER) $Button1 = GUICtrlCreateButton("On", 256, 8, 57, 17, $WS_GROUP) $Button2 = GUICtrlCreateButton("Off", 320, 8, 57, 17, $WS_GROUP) GUISetState(@SW_SHOW)
$Base = 0x002ED9B0 $Process = ProcessExists("metin2.bin") $Handle = _MemoryOpen($Process) $GetModule = _MemoryModuleGetBaseAddress($Process , "metin2.bin") $Read = $GetModule + $Base
While 1 $Read = _MemoryRead($Read , $Handle) + 0x420 $Read = _MemoryRead($Read , $Handle) + 0x66A $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $Button1 _MemoryWrite($Read , $Handle , GUICtrlRead($Input1)) Case $Button2 _MemoryWrite($Read , $Handle , "WERT") EndSwitch Wend
Nicht getestet.
Hier ist der Befehl der glaub ich nicht in der Pointer.au3 steht.
Aber irgendwo in google( nicht von mir ):
PHP Code:
Func _MemoryModuleGetBaseAddress($iPID, $sModule) If Not ProcessExists($iPID) Then Return SetError(1, 0, 0)
If Not IsString($sModule) Then Return SetError(2, 0, 0)
Local $PSAPI = DllOpen("psapi.dll")
;Get Process Handle Local $hProcess Local $PERMISSION = BitOR(0x0002, 0x0400, 0x0008, 0x0010, 0x0020) ; CREATE_THREAD, QUERY_INFORMATION, VM_OPERATION, VM_READ, VM_WRITE
If $iPID > 0 Then Local $hProcess = DllCall("kernel32.dll", "ptr", "OpenProcess", "dword", $PERMISSION, "int", 0, "dword", $iPID) If $hProcess[0] Then $hProcess = $hProcess[0] EndIf EndIf
;EnumProcessModules Local $Modules = DllStructCreate("ptr[1024]") Local $aCall = DllCall($PSAPI, "int", "EnumProcessModules", "ptr", $hProcess, "ptr", DllStructGetPtr($Modules), "dword", DllStructGetSize($Modules), "dword*", 0) If $aCall[4] > 0 Then Local $iModnum = $aCall[4] / 4 Local $aTemp For $i = 1 To $iModnum $aTemp = DllCall($PSAPI, "dword", "GetModuleBaseNameW", "ptr", $hProcess, "ptr", Ptr(DllStructGetData($Modules, 1, $i)), "wstr", "", "dword", 260) If $aTemp[3] = $sModule Then DllClose($PSAPI) Return Ptr(DllStructGetData($Modules, 1, $i)) EndIf Next EndIf
DllClose($PSAPI) Return SetError(-1, 0, 0)
EndFunc
|
|
|
11/05/2012, 23:15
|
#5
|
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
|
Tut mir leid. Mir ist auf deinem Bild garnicht aufgefallen, dass man die Baseaddresse erst herausfinden muss.
Das, was BladeTiger12 zeigt, wäre eine Option, die aber suboptimal ist.
Außerdem viel zu aufwendig.
Die bessere und effizientere Methode ist ebenfalls recht einfach. Du kopierst den Text, der auf deinem Bild zu sehen ist ("Metin2.bin+002ED9B0") und drückst anschließend auf den button "Add address manually". Nun öffnet sich ein kleines Pop-Up-Fenster. In das erste input Feld, das für die Adresse zuständig ist, fügst du den kopierten Text ein und bestätigst das ganze einfach mit "OK". Nun befindet sich unten in der listview eine neue Zeile mit einer neuen Adresse und den dazugehörigen Werten (Description, Address, Type, Value). Die gesuchte Baseadresse befindet sich in dem Kategoriefeld "Address". Diese kannst du ganz simple in dein Script importieren.
|
|
|
11/05/2012, 23:23
|
#6
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Naja ob man das jetzt so macht oder wie ich es gemacht habe
kommt am schluss doch immer die gleiche raus.
Und warum erst mit Cheat Engine das machen.
Wenn man die Base Address auch so bekommt.
Und verändert kann man das ganze ja auch gleich.
|
|
|
11/05/2012, 23:25
|
#7
|
elite*gold: 281
Join Date: May 2011
Posts: 1,552
Received Thanks: 946
|
Quote:
Originally Posted by Logtetsch
Tut mir leid. Mir ist auf deinem Bild garnicht aufgefallen, dass man die Baseaddresse erst herausfinden muss.
Das, was BladeTiger12 zeigt, wäre eine Option, die aber suboptimal ist.
Außerdem viel zu aufwendig.
Die bessere und effizientere Methode ist ebenfalls recht einfach. Du kopierst den Text, der auf deinem Bild zu sehen ist ("Metin2.bin+002ED9B0") und drückst anschließend auf den button "Add address manually". Nun öffnet sich ein kleines Pop-Up-Fenster. In das erste input Feld, das für die Adresse zuständig ist, fügst du den kopierten Text ein und bestätigst das ganze einfach mit "OK". Nun befindet sich unten in der listview eine neue Zeile mit einer neuen Adresse und den dazugehörigen Werten (Description, Address, Type, Value). Die gesuchte Baseadresse befindet sich in dem Kategoriefeld "Address". Diese kannst du ganz simple in dein Script importieren.
|
Danke.
Hab ich gemacht.
Leider kommt da jetzt eine ganz andere Value bei raus.
Mfg. Easy
|
|
|
11/05/2012, 23:36
|
#8
|
elite*gold: 64
Join Date: May 2011
Posts: 1,229
Received Thanks: 854
|
Hmm.
Komm mal in Skype und da kann ich dir besser helfen.
Und das da eine andere value raus kommt ist ja klar.
Da es keine Offsets hat wenn du es nur Addest.
Und du sollst ja auch nur wie er gesagt hat die Adresse rauskopieren
und sie in Autoit einfügen.
|
|
|
 |
Similar Threads
|
Metin2 Rüssi verändert wird nicht angezeigt
08/17/2012 - Metin2 Private Server - 2 Replies
Heyho
Ich hab ein kleines problem ich habe die lvl 1 rüssi vom krieger umgeändert. Aber leider seh ich das nicht ingame es ist richtig eingefügt habe alles richtig wieder zusammen gepackt ich weiß nicht woran es liegt.
Screens:
http://img411.imageshack.us/img411/9239/unbenannt 2mb.th.png
http://img825.imageshack.us/img825/5690/unbenannt umi.th.png
|
Warum wird meine Signatur nicht angezeigt?
07/19/2012 - Off Topic - 2 Replies
Ah hab schon Danke ;)
#close
|
[PHP] Warum wird das Bild nicht gepspeichert
04/06/2012 - Web Development - 3 Replies
Abend.
Ich bin am verzweifeln, irgendwas simmt da nicht.
Alle Dateinen haben CHMOD 777 Rechte.
<?php
$bilder = array(
'bild1.png',
'bild2.png'
);
|
Warum wird das Bild nicht animniert ?
08/30/2011 - General Art - 13 Replies
Einen schönen guten Morgen ElitePvpers,
ich habe mich heute morgen mal an eine ANimation rangemacht,
sie besteht aus 4 Bildern und es soll Regen dargestellt werden,
nur leider wenn ich sie als .gif abspeichere und im Browser öffne,
sehe ich nur ein normales Bild ohne Animationen.
Und wenn wir gerade bei diesem Thema sind, aus wievielen Bildern
kann eine Animation maximal bestehen ?
|
Fehler?!Warum Wird es nicht angezeigt?!
12/16/2010 - WarRock - 4 Replies
Guten Abend
Ich habe mal eine kleine Frage?
Findet ihr den Fehler?
Sreen:http://img687.imageshack.us/img687/3786/feh leryu.png
Wenn nicht dann habe ich eine Frage :Warum wir bei mir oben rechts die kleine karte nicht angezeigt?
|
All times are GMT +1. The time now is 00:05.
|
|