Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 03:57

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



memorypointerwrite problem

Discussion on memorypointerwrite problem within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Dec 2009
Posts: 65
Received Thanks: 204
Question memorypointerwrite problem

Code:
#RequireAdmin
#include <GUIConstants.au3>
#include <NomadMemory.au3>
#include <GDIPlusDispose.au3>



#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 240, 115, 193, 125)
$label1 = GUICtrlCreateLabel("Damage Hack", 16, 32, 58, 17)
$dmg = GUICtrlCreateInput("Value", 88, 32, 121, 21)
$setdmg = GUICtrlCreateButton("Set", 16, 64, 163, 33, 0)
GUISetState(@SW_SHOW)


Global $Pointer = 0x00686D04
Global $Open = _MemoryOpen(ProcessExists("TClient.exe"))
Global $Offset[3] = [0, 0xa08, 0x484]
Global $Bedingung = 0

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $setdmg
			If $Bedingung = 0 Then
				$Bedingung = 1
			ElseIf $Bedingung = 1 Then
				$Bedingung = 0
			EndIf
	EndSwitch

	SetDmg()
WEnd

Func SetDmg()
	If $Bedingung = 1 Then _memorypointerwrite($Pointer, $Open, $Offset, GUICtrlRead($dmg))
EndFunc
error code:
C:\Documents and Settings\myname\Asztal\5.au3(35,91) : ERROR: _memorypointerwrite(): undefined function.
If $Bedingung = 1 Then _memorypointerwrite ($Pointer, $Open, $Offset, GUICtrlRead($xy))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Documents and Settings\myname\Asztal\5.au3 - 1 error(s), 0 warning(s)

what's wrong?Help me )
sandor555 is offline  
Old 06/18/2010, 21:23   #2
 
HardCore.1337's Avatar
 
elite*gold: 1
Join Date: Feb 2009
Posts: 1,726
Received Thanks: 729
hast du die nomadMemory.au3 included?
HardCore.1337 is offline  
Old 06/18/2010, 21:57   #3
 
elite*gold: 0
Join Date: Dec 2009
Posts: 65
Received Thanks: 204
solved.

Where else can it be a problem, you can:
Code:
;=================================================================================================
; Function: _MemoryPointerWrite ($iv_Address, $ah_Handle, $av_Offset, $v_Data[, $sv_Type])
; Description:  Reads a chain of pointers and writes the data to the destination address.
; Parameter(s): $iv_Address - The static memory address you want to start at. 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().
;   $av_Offset - An array of offsets for the pointers. Each pointer must have an
;   offset. If there is no offset for a pointer, enter 0 for that
;   array dimension.
;   $v_Data - The data to be written.
;   $sv_Type - (optional) The "Type" of data you intend to write at the destination
;   address. This is set to 'dword'(32bit(4byte) signed integer) by
;   default. See the help file for DllStructCreate for all types.
; Requirement(s): The $ah_Handle returned from _MemoryOpen.
; Return Value(s): On Success - Returns the destination address.
;   On Failure - Returns 0.
;   @Error - 0 = No error.
;   1 = $av_Offset is not an array.
;   2 = Invalid $ah_Handle.
;   3 = Failed to read from the specified process.
;   4 = $sv_Type is not a string.
;   5 = $sv_Type is an unknown data type.
;   6 = Failed to allocate the memory needed for the DllStructure.
;   7 = Error allocating memory for $sv_Type.
;   8 = $v_Data is not in the proper format to be used with the
;   "Type" selected for $sv_Type, or it is out of range.
;   9 = Failed to write to the specified process.
; Author(s):    Nomad
; Note(s):  Data written is in Decimal format, unless a 'char' type is selected.
;   Set $av_Offset like this:
;   $av_Offset[0] = NULL (not used, doesn't matter what's entered)
;   $av_Offset[1] = Offset for pointer 1 (all offsets must be in Decimal)
;   $av_Offset[2] = Offset for pointer 2
;   etc...
;   (The number of array dimensions determines the number of pointers)
;=================================================================================================
Func _MemoryPointerWrite ($iv_Address, $ah_Handle, $av_Offset, $v_Data, $sv_Type = 'dword')

    If IsArray($av_Offset) Then
    If IsArray($ah_Handle) Then
    Local $iv_PointerCount = UBound($av_Offset) - 1
    Else
    SetError(2)
    Return 0
    EndIf
    Else
    SetError(1)
    Return 0
    EndIf

    Local $iv_StructData, $i
    Local $v_Buffer = DllStructCreate('dword')

    For $i = 0 to $iv_PointerCount
    If $i = $iv_PointerCount Then
    $v_Buffer = DllStructCreate($sv_Type)
    If @Error Then
    SetError(@Error + 3)
    Return 0
    EndIf

    DllStructSetData($v_Buffer, 1, $v_Data)
    If @Error Then
    SetError(8)
    Return 0
    EndIf

    $iv_Address = '0x' & hex($iv_StructData + $av_Offset[$i])
    DllCall($ah_Handle[0], 'int', 'WriteProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
    If @Error Then
    SetError(9)
    Return 0
    Else
    Return $iv_Address
    EndIf
    ElseIf $i = 0 Then
    DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
    If @Error Then
    SetError(3)
    Return 0
    EndIf

    $iv_StructData = DllStructGetData($v_Buffer, 1)

    Else
    $iv_Address = '0x' & hex($iv_StructData + $av_Offset[$i])
    DllCall($ah_Handle[0], 'int', 'ReadProcessMemory', 'int', $ah_Handle[1], 'int', $iv_Address, 'ptr', DllStructGetPtr($v_Buffer), 'int', DllStructGetSize($v_Buffer), 'int', '')
    If @Error Then
    SetError(3)
    Return 0
    EndIf

    $iv_StructData = DllStructGetData($v_Buffer, 1)

    EndIf
    Next

EndFunc
sandor555 is offline  
Reply


Similar Threads Similar Threads
Metin 2 Pserver Problem/ Lösung für das Matrix Kartennummer Problem
01/04/2010 - Metin2 Private Server - 3 Replies
Hy Leute Wie in der Überschrift genannt, hab ich gerade ein Problem mit meinem Metin 2Server. Ich lasse ihn via Loopbackadapter laufen, funktioniert auch ganz gut. Ich hab aber jetzt das Poblem, das in meinem Account nur noch Krieger mit Level null stehen. Wie kann ich das Beheben??, das is auch manchmal da, wenn ich via Navicat n neuen Account mach. Hoffe einer hatt ne Lösung Hab n Screenshot im Anhang Aber ich hab ja auch ne Lösung für n anderes Problem. Gestern hatte ich beim...
[Problem] Problem with server starting - cannot find quest index for PaxHeader
12/22/2009 - Metin2 Private Server - 1 Replies
Hello! I have this same problem as here when i'm starting my server: http://www.elitepvpers.com/forum/metin2-pserver-di scussions-questions/307143-metin2-serverfiles-ques t-index-fehler.html But I didn't know the answer.. how to repair this? Greetings



All times are GMT +1. The time now is 03:58.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.