heres the source for Sellvaule (AutoIt...)... GL tuning it for to
work on Inf. Aion.. :p
Code:
; ----------------------------------------------------------------------------
;
; AutoIt Clone of Item Sell Value ;
;
; ----------------------------------------------------------------------------
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiConstants.au3>
#include <ListViewConstants.au3>
Global $Angelfire = "F7 to Quit / Exit ..."
Global $Form1_1
Global $itemvalue
global $openmem
Global $TargetPointer
Global $ItemID
Global $itemID2
Global $itemname
Global $olditemvalue2
Global $olditemname
HotKeySet("{F7}", "Eexit")
HotKeySet("{F5}", "openlinkbutton")
$Form1_1 = GUICreate($Angelfire, 200, 200 , ((@DesktopWidth/2)+380), @DesktopHeight/2 +150, $WS_DLGFRAME,$WS_EX_TOPMOST )
$labeltitel = guictrlcreatelabel("Item Name:",10 ,10 ,200,25)
GUICtrlSetFont(-1, 11 , 600)
GUICtrlSetColor($labeltitel ,0x0000ff0) ; blau
$itemvaluebox3 = GUICtrlCreateLabel( "" ,10 , 30 ,180,25 , $SS_BLACKFRAME)
$itemvaluebox4 = GUICtrlCreateLabel($itemname ,15 ,36,173 ,18, $SS_CENTER )
$labeltitel = guictrlcreatelabel("NPC Sell-Value:",10 ,65 ,200,25)
GUICtrlSetFont(-1, 11 , 600)
GUICtrlSetColor($labeltitel ,0x0000ff0) ; blau
$itemvaluebox = GUICtrlCreateLabel( "" ,10 ,85 ,180,25 , $SS_BLACKFRAME)
$itemvaluebox2 = GUICtrlCreateLabel($itemvalue ,15 ,91 ,173 ,18, $SS_CENTER )
$linkbutton = GUICtrlCreateButton( "Go to Aionarmory.com / F5" ,10 ,125 ,180,25)
$labelcredit = GUICtrlCreateLabel( "Angelfire 2010 / AutoIt" , 10 ,155,180 ,40, $SS_CENTER)
GUISetState(@SW_SHOW)
;###################################################################################################################################
;#
;# Gui loop
;#
;###################################################################################################################################
While 1
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
if $msg = $linkbutton then openlinkbutton()
loaditemprice()
WEnd
;###################################################################################################################################
;#
;# Gui Functions
;#
;###################################################################################################################################
func openlinkbutton()
ShellExecute("http://www.aionarmory.com/item.aspx?id=" & $itemID2)
EndFunc
func GetItemId()
OpenAionMemory()
$StaticOffset = dec("A6853C")
Global $pid = ProcessExists("Aion.bin")
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
$MemTest = _MEMORYREAD($finalADDR , $openmem)
$MemTest = _MEMORYREAD($MemTest+dec(394), $openmem )
Return $MemTest
EndFunc
func loaditemprice()
$ItemID = GetItemId()
if $ItemID = 0 Then
$itemID2 = $itemID
Return
EndIf
if $itemID = $itemID2 Then
Return
EndIf
$itemID2 = $itemID
$webpage = InetRead( "http://www.aionarmory.com/item.aspx?id=" & $itemID )
$webstring = BinaryToString ( $webpage )
$pos = StringInStr( $webstring , "Sells for" )
$postocut = $pos +28
$trimmedleft = StringTrimLeft( $webstring , $postocut )
$pos2 = StringInStr( $trimmedleft , " Kinah" )
$newitemvalue = StringMid( $webstring , $postocut , $pos2 )
$length = StringLen($newitemvalue)
If $length > 3 then
$tausender = StringTrimRight( $newitemvalue , 3)
$htausender = StringTrimLeft( $newitemvalue , $length-3)
$newitemvalue2 = $tausender &" ' "& $htausender
GUICtrlSetData( $itemvaluebox2 , $newitemvalue2)
$olditemvalue2 = $newitemvalue
Else
GUICtrlSetData( $itemvaluebox2 , $newitemvalue)
EndIf
$pos3 = StringInStr( $webstring , "item-name" )
$pos3tocut = $pos3 +11
$trimmedleft2 = StringTrimLeft( $webstring , $pos3tocut )
$pos4 = StringInStr( $trimmedleft2 , "</span>" )
$newitemname = StringMid( $webstring , $pos3tocut , $pos4)
GUICtrlSetData( $itemvaluebox4 , $newitemname )
$olditemname = $newitemname
EndFunc
Func Eexit()
Exit
EndFunc ;==>Exit
;#########################################################################################################################################################
;#
;# Memory Read/write functions
;#
;#########################################################################################################################################################
Func OpenAionMemory()
$pid = ProcessExists("aion.bin")
If $pid == -1 Then
Return
EndIf
$openmem = _MemoryOpen($pid)
If @error Then
Return
EndIf
$AionRun = True
EndFunc ;==>OpenAionMemorys
Func MemReadDLLFloat($offset)
OpenAionMemory()
$StaticOffset = Dec($offset)
Global $pid
Global $CUROffset[1]
$CUROffset[0] = 0
$baseADDR = _MemoryModuleGetBaseAddress($pid, "Game.dll")
$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)
$MemTest = _MemoryRead($finalADDR, $openmem, "float")
Return $MemTest
EndFunc ;==>MemReadDLLFloat
Func MEMREADTARGETID($TYPE = "byte", $OFFSET = $TargetPointer)
OPENAIONMEMORY()
$STATICOFFSET = Dec($OFFSET)
Global $PID
Global $CUROFFSET[1]
$CUROFFSET[0] = 0
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "Game.dll")
$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
$MEMTEST = _MEMORYREAD($MEMTEST + 452, $OPENMEM)
Return $MEMTEST
EndFunc
Func MEMREADTARGET2($TOFFSET, $TYPE = "byte", $OFFSET = $TargetPointer)
OPENAIONMEMORY()
$STATICOFFSET = Dec($OFFSET)
Global $PID
Global $CUROFFSET[1]
$CUROFFSET[0] = 0
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "Game.dll")
$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
$MEMTEST = _MEMORYREAD($MEMTEST + 452, $OPENMEM)
If ($TYPE <> "") Then
$MEMTEST = _MEMORYREAD($MEMTEST + $TOFFSET, $OPENMEM, $TYPE)
Else
$MEMTEST = _MEMORYREAD($MEMTEST + $TOFFSET, $OPENMEM)
EndIf
Return $MEMTEST
EndFunc
Func MEMREADDLL($OFFSET, $TYPE = "byte")
$STATICOFFSET = Dec($OFFSET)
Global $PID
Global $CUROFFSET[1]
$CUROFFSET[0] = 0
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "Game.dll")
$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
If ($TYPE <> "") Then
$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM, $TYPE)
Else
$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
EndIf
Return $MEMTEST
EndFunc
Func MEMREADTARGET($TOFFSET, $TYPE = "byte", $OFFSET = $TargetPointer)
OPENAIONMEMORY()
$STATICOFFSET = Dec($OFFSET)
Global $PID
Global $CUROFFSET[1]
$CUROFFSET[0] = 0
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "Game.dll")
$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
$MEMTEST = _MEMORYREAD($MEMTEST + 452, $OPENMEM)
If ($TYPE <> "") Then
$MEMTEST = _MEMORYREAD($MEMTEST + $TOFFSET, $OPENMEM, $TYPE)
Else
$MEMTEST = _MEMORYREAD($MEMTEST + $TOFFSET, $OPENMEM)
EndIf
Return $MEMTEST
EndFunc
;####################################################################################################################################################################
;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,, Nomad Mem add ,,,;;;;;#
;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
;####################################################################################################################################################################
Func _MEMORYOPEN($IV_PID, $IV_DESIREDACCESS = 2035711, $IV_INHERITHANDLE = 1)
If Not ProcessExists($IV_PID) Then
SetError(1)
Return 0
EndIf
Local $AH_HANDLE[2] = [DllOpen("kernel32.dll")]
If @error Then
SetError(2)
Return 0
EndIf
Local $AV_OPENPROCESS = DllCall($AH_HANDLE[0], "uint", "OpenProcess", "uint", $IV_DESIREDACCESS, "uint", $IV_INHERITHANDLE, "uint", $IV_PID)
If @error Then
DllClose($AH_HANDLE[0])
SetError(3)
Return 0
EndIf
$AH_HANDLE[1] = $AV_OPENPROCESS[0]
Return $AH_HANDLE
EndFunc
Func _MEMORYREAD($IV_ADDRESS, $AH_HANDLE, $SV_TYPE = "dword")
If Not IsArray($AH_HANDLE) Then
SetError(1)
Return 0
EndIf
Local $V_BUFFER = DllStructCreate($SV_TYPE)
If @error Then
SetError(@error + 1)
Return 0
EndIf
DllCall($AH_HANDLE[0], "uint", "ReadProcessMemory", "uint", $AH_HANDLE[1], "uint", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "uint", DllStructGetSize($V_BUFFER), "uint", "")
If Not @error Then
Local $V_VALUE = DllStructGetData($V_BUFFER, 1)
Return $V_VALUE
Else
SetError(6)
Return 0
EndIf
EndFunc
Func _MEMORYWRITE($IV_ADDRESS, $AH_HANDLE, $V_DATA, $SV_TYPE = "dword")
If Not IsArray($AH_HANDLE) Then
SetError(1)
Return 0
EndIf
Local $V_BUFFER = DllStructCreate($SV_TYPE)
If @error Then
SetError(@error + 1)
Return 0
Else
DllStructSetData($V_BUFFER, 1, $V_DATA)
If @error Then
SetError(6)
Return 0
EndIf
EndIf
DllCall($AH_HANDLE[0], "uint", "WriteProcessMemory", "uint", $AH_HANDLE[1], "uint", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "uint", DllStructGetSize($V_BUFFER), "uint", "")
If Not @error Then
Return 1
Else
SetError(7)
Return 0
EndIf
EndFunc
Func _MEMORYCLOSE($AH_HANDLE)
If Not IsArray($AH_HANDLE) Then
SetError(1)
Return 0
EndIf
DllCall($AH_HANDLE[0], "uint", "CloseHandle", "uint", $AH_HANDLE[1])
If Not @error Then
DllClose($AH_HANDLE[0])
Return 1
Else
DllClose($AH_HANDLE[0])
SetError(2)
Return 0
EndIf
EndFunc
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")
Local $HPROCESS
Local $PERMISSION = BitOR(2, 1024, 8, 16, 32)
If $IPID > 0 Then
Local $HPROCESS = DllCall("kernel32.dll", "ptr", "OpenProcess", "dword", $PERMISSION, "uint", 0, "dword", $IPID)
If $HPROCESS[0] Then
$HPROCESS = $HPROCESS[0]
EndIf
EndIf
Local $MODULES = DllStructCreate("ptr[1024]")
Local $ACALL = DllCall($PSAPI, "uint", "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
Func SETPRIVILEGE($PRIVILEGE, $BENABLE)
Const $nTOKEN_ADJUST_PRIVILEGES = 32
Const $nTOKEN_QUERY = 8
Const $nSE_PRIVILEGE_ENABLED = 2
Local $HTOKEN, $SP_AUXRET, $SP_RET, $HCURRPROCESS, $NTOKENS, $NTOKENINDEX, $PRIV
$NTOKENS = 1
$LUID = DllStructCreate("dword;uint")
If IsArray($PRIVILEGE) Then $NTOKENS = UBound($PRIVILEGE)
$TOKEN_PRIVILEGES = DllStructCreate("dword;dword[" & (3 * $NTOKENS) & "]")
$NEWTOKEN_PRIVILEGES = DllStructCreate("dword;dword[" & (3 * $NTOKENS) & "]")
$HCURRPROCESS = DllCall("kernel32.dll", "hwnd", "GetCurrentProcess")
$SP_AUXRET = DllCall("advapi32.dll", "uint", "OpenProcessToken", "hwnd", $HCURRPROCESS[0], "uint", BitOR($nTOKEN_ADJUST_PRIVILEGES, $nTOKEN_QUERY), "uint_ptr", 0)
If $SP_AUXRET[0] Then
$HTOKEN = $SP_AUXRET[3]
DllStructSetData($TOKEN_PRIVILEGES, 1, 1)
$NTOKENINDEX = 1
While $NTOKENINDEX <= $NTOKENS
If IsArray($PRIVILEGE) Then
$PRIV = $PRIVILEGE[$NTOKENINDEX - 1]
Else
$PRIV = $PRIVILEGE
EndIf
$RET = DllCall("advapi32.dll", "uint", "LookupPrivilegeValue", "str", "", "str", $PRIV, "ptr", DllStructGetPtr($LUID))
If $RET[0] Then
If $BENABLE Then
DllStructSetData($TOKEN_PRIVILEGES, 2, $nSE_PRIVILEGE_ENABLED, (3 * $NTOKENINDEX))
Else
DllStructSetData($TOKEN_PRIVILEGES, 2, 0, (3 * $NTOKENINDEX))
EndIf
DllStructSetData($TOKEN_PRIVILEGES, 2, DllStructGetData($LUID, 1), (3 * ($NTOKENINDEX - 1)) + 1)
DllStructSetData($TOKEN_PRIVILEGES, 2, DllStructGetData($LUID, 2), (3 * ($NTOKENINDEX - 1)) + 2)
DllStructSetData($LUID, 1, 0)
DllStructSetData($LUID, 2, 0)
EndIf
$NTOKENINDEX += 1
WEnd
$RET = DllCall("advapi32.dll", "uint", "AdjustTokenPrivileges", "hwnd", $HTOKEN, "uint", 0, "ptr", DllStructGetPtr($TOKEN_PRIVILEGES), "uint", DllStructGetSize($NEWTOKEN_PRIVILEGES), "ptr", DllStructGetPtr($NEWTOKEN_PRIVILEGES), "uint_ptr", 0)
$F = DllCall("kernel32.dll", "uint", "GetLastError")
EndIf
$NEWTOKEN_PRIVILEGES = 0
$TOKEN_PRIVILEGES = 0
$LUID = 0
If $SP_AUXRET[0] = 0 Then Return 0
$SP_AUXRET = DllCall("kernel32.dll", "uint", "CloseHandle", "hwnd", $HTOKEN)
If Not $RET[0] And Not $SP_AUXRET[0] Then Return 0
Return $RET[0]
EndFunc