Page 1 of 2 12 LastLast
Results 1 to 10 of 18
  1. #1
    exia69
    exia69 is offline
    New member
    Join Date
    2012 May
    Posts
    7
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    0

    vb.net Multi-Level pointer diffrent result than the one in Cheat engine? help

    Hello,
    Im trying to read a value of a multi-level pointer using Vb.net but my result in VB comes out much different than the one in CE. I have tried this same method on other games ( SaintsRowTheThird, Titan Quest) and it works perfectly but not on Tera. The value is either something negative like (-621185984) or 0.


    Code:
    Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
        Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Integer) As Integer
    
        Public phandle As Integer
        Public gbaseid As Int32
        Public GAMEEXE As String = "Tera"
        Private m_hProcess As IntPtr = IntPtr.Zero
        Public Function ReadMemANdOffset()
            Dim TeraProcess As Process = Process.GetProcessesByName(GAMEEXE)(0)
            Dim TeraProcessMainIndex As Integer = 0
    
    
            For i = 0 To TeraProcess.Modules.Count - 1
                If TeraProcess.Modules.Item(i).ModuleName.ToLower = GAMEEXE Then
                    TeraProcessMainIndex = i
    
                    Exit For
                End If
            Next
    
            phandle = TeraProcess.Handle
            gbaseid = TeraProcess.Modules.Item(TeraProcessMainIndex).BaseAddress.ToInt32()
    
            Dim OFFSETS As String() = {"01716B5C", "29c", "724", "30", "c", "48"}
            Dim CurMem As Integer = 0
            Dim CurAdd As Integer = gbaseid
    
            For i As Integer = 0 To OFFSETS.Length - 1
                Dim CurOFFset As Int32 = Int32.Parse(OFFSETS(i), System.Globalization.NumberStyles.HexNumber)
                If i = 0 Then
                    ReadProcessMemory(phandle, CurAdd + CurOFFset, CurMem, 4, 0)
                Else
                    ReadProcessMemory(phandle, CurMem + CurOFFset, CurMem, 4, 0)
                End If
            Next
            Dim FinalResult As Integer = CurMem
            Return FinalResult
    
        End Function


    Pointer For HP:

    <Address>"TERA.exe"+01716B5C</Address>
    <Offset>48</Offset>
    <Offset>C</Offset>
    <Offset>30</Offset>
    <Offset>724</Offset>
    <Offset>29C</Offset>


    What am I doing wrong here?
    Please advise, im stuck.

  2. #2
    yizheng
    yizheng is offline
    Awesome to the MAX yizheng's Avatar
    Join Date
    2010 Aug
    Posts
    743
    Thanks
    124
    Thanked 728 Times in 187 Posts
    Rep Power
    8
    Thats a long ass pointer...are you sure thats the correct static one?

    Take a look here from "hounder"'s post: https://progamercity.net/tera-hacks/...a-offsets.html

  3. #3
    SheppeR
    SheppeR is offline
    New member
    Join Date
    2012 Apr
    Posts
    21
    Thanks
    3
    Thanked 2 Times in 2 Posts
    Rep Power
    0
    You can try with this good lib

    Author : Estx
    exemple:

    Code:
    Imports System
     Imports System.Collections.Generic
     Imports System.ComponentModel
     Imports System.Data
     Imports System.Drawing
     Imports System.Text
     Imports System.Windows.Forms
     Imports MEC
    
    Namespace WindowsApplication1
         Public Partial Class Form1
             Inherits Form
             Private myMemEditor As New MemEdit()
           
             Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
                 myMemEditor.mOpenProcess("winmine")
                 Me.Text = myMemEditor.ReadMemoryInt(16799644).ToString()
                 Dim tInt As Integer = myMemEditor.WriteMemory(16799644, 911)
                 ' Now check minesweeper, lol.
                 myMemEditor.mCloseProcess()
             End Sub
         End Class
    End Namespace
    lib in attachements

    Please register or login to download attachments.


  4. #4
    exia69
    exia69 is offline
    New member
    Join Date
    2012 May
    Posts
    7
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    0
    Quote Originally Posted by yizheng View Post
    Thats a long ass pointer...are you sure thats the correct static one?

    Take a look here from "hounder"'s post: https://progamercity.net/tera-hacks/...a-offsets.html
    I think so, its a multi-level pointer I have to go through all those offsets right? And in cheat engine it gives me the right value! Also in "hounders" post when I downloaded his CE offset they were outdated but they did have 5 Offsets to go through as well. What I dont understand is that in his post he put "Current MP - 0x78" but when I open his Cheat engine file it clearly shows "TERA.exe"+0165473C + 0x24+0x3d4+0x30+0xc+0x48. EVen when I add them up it comes out to be 47C and not 0x78

    ---------- Post added at 09:44 AM ---------- Previous post was at 09:42 AM ----------

    I tried the code below but it didn't work and Im not sure how to use this code with a multi-level pointer

    Code:
     myMemEditor.mOpenProcess("Tera")
            Me.Text = myMemEditor.ReadMemoryInt(&H1F14B20 + &H27C + &H580 + &H10 + &H20 + &H548)
    
            ' Now check minesweeper, lol.
            myMemEditor.mCloseProcess()
    I know its pointing in the right section because in Cheat Engine this pointer works!
    Last edited by exia69; 2012-05-23 at 10:50 AM.

  5. #5
    JackD
    JackD is offline
    New member
    Join Date
    2012 May
    Posts
    4
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    0
    Just some pseudocode, this would be how you read pointers.

    Code:
    terabase = GetBaseAdress("TERA.exe");
    temp1 = MemoryRead(terabase + 29C)
    temp2 = MemoryRead(temp1 + 724)
    temp3 = MemoryRead(temp2 + 30)
    temp4 = MemoryRead(temp3 + C)
    hp = MemoryRead(temp4 + 48)

  6. #6
    SheppeR
    SheppeR is offline
    New member
    Join Date
    2012 Apr
    Posts
    21
    Thanks
    3
    Thanked 2 Times in 2 Posts
    Rep Power
    0
    After test, i got the same issue in c#, with a single pointer got a correct value for my call, but with multi pointers value is 0.

  7. #7
    yizheng
    yizheng is offline
    Awesome to the MAX yizheng's Avatar
    Join Date
    2010 Aug
    Posts
    743
    Thanks
    124
    Thanked 728 Times in 187 Posts
    Rep Power
    8
    Quote Originally Posted by exia69 View Post
    I know its pointing in the right section because in Cheat Engine this pointer works!
    I think this is the problem that you are having:
    Dim OFFSETS As String() = {"01716B5C", "29c", "724", "30", "c", "48"}

    because look:

    Pointer For HP:

    <Address>"TERA.exe"+01716B5C</Address>
    <Offset>48</Offset>
    <Offset>C</Offset>
    <Offset>30</Offset>
    <Offset>724</Offset>
    <Offset>29C</Offset>
    you only wrote down "01716B5C" not the entire base address. I don't have Tera on my cpu to test and find the base address but you can try doing this: Go back to CE and go to this address " "TERA.exe"+01716B5C " and you will receive a different base address than "01716B5C", copy that base address and try your method of readprocessmemory again. should work.

    Edit: Then again i maybe wrong cuz you used the "01716B5C" as an offset too but it was an offset for the base address. So you could try using the (module + base address offset) + offsets for hp etc
    Last edited by yizheng; 2012-05-23 at 07:44 PM.

  8. #8
    exia69
    exia69 is offline
    New member
    Join Date
    2012 May
    Posts
    7
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    0
    Quote Originally Posted by yizheng View Post
    Edit: Then again i maybe wrong cuz you used the "01716B5C" as an offset too but it was an offset for the base address. So you could try using the (module + base address offset) + offsets for hp etc
    What do you mean by Module isnt the module the base id of the EXE? like I used in the line
    Dim CurAdd As Integer = gbaseid

    Or is module something else?

  9. #9
    yizheng
    yizheng is offline
    Awesome to the MAX yizheng's Avatar
    Join Date
    2010 Aug
    Posts
    743
    Thanks
    124
    Thanked 728 Times in 187 Posts
    Rep Power
    8
    try:

    Dim CurAdd As Integer = "TERA.exe"+01716B5C

  10. #10
    exia69
    exia69 is offline
    New member
    Join Date
    2012 May
    Posts
    7
    Thanks
    0
    Thanked 0 Times in 0 Posts
    Rep Power
    0
    Quote Originally Posted by yizheng View Post
    try:

    Dim CurAdd As Integer = "TERA.exe"+01716B5C
    Im currently on my Laptop and cannot test this, but by looking at it I dont think it will work.
    since "Tera.exe" is a string it cannot be added to the hex, i also tried to globalize the string to Hex+address still didint work.
    I even tried to put ReadProcessMemory(phandle, "tera.exe" + CurAdd + CurOFFset, CurMem, 4, 0)
    but it throws an error saying that a string cannot be converted to a double.

Page 1 of 2 12 LastLast

Similar Threads

  1. Cheat Engine CeFun 1.3
    By termiks in forum Files & Tools
    Replies: 5
    Last Post: 2016-04-01, 01:08 AM
  2. [Help] Cheat engine
    By cipher18 in forum Aika Online
    Replies: 7
    Last Post: 2012-01-30, 01:59 PM
  3. [Memory] Cheat Engine 6.0
    By Dwar in forum Files & Tools
    Replies: 0
    Last Post: 2011-03-04, 02:58 AM
  4. [C++] Need Help Multi Patching Pointer
    By gosicks in forum C/C++
    Replies: 0
    Last Post: 2011-02-11, 09:40 PM
  5. Cheat Engine Debugger
    By iam_clint in forum Aika Online
    Replies: 4
    Last Post: 2010-10-20, 04:36 AM
Visitors found this page by searching for:

http:www.progamercity.nettera3730-visual-basic-net-multi-level-pointer-diffrent-result-than-one-cheat-engine-help.html

offset pointer address trainer vb.net

multi level pointer vb6

vb.net pointer &amp; offset

MEC_src.zip

vb.net pointer offset

cheat engine vb.net

vb.net cheat pointer

read pointer 4 offsets vb net

how to make trainer in vb with offsets

vb.net trainer pointer base address

vb 2010 baseaddress readprocessmemory trainer

tera online pointer offsets

how to make game trainer with offset in vb 2010

vb 6.0 multi level pointer

Ce Pointer VB 2010

tera online base adress

[vb.net]how to make pointer game with ce

cheat engine tera online

trainer pointer offset c visual basic

offset pointer vb.net

visual basic .net cheat engine

vb6 writememory game.exe adress

vb.net cheat engine

tera offsets

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •