Memory VB starting point menu

User Tag List

Results 1 to 8 of 8
  1. #1
    nvthiele's Avatar Member
    Reputation
    1
    Join Date
    Jun 2008
    Posts
    9
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Memory VB starting point

    Oky, Hi all I am trying to understand memory offsets and pointers

    starting off whit this guide guide kind how i handle objects

    but in vb

    Code:
     Dim Baseaddress As Integer
            Dim GuidOffset As Integer = 48
            Dim NextObjectOffset As Integer = 60
            Dim TypeOffset As Integer = 20
            Dim XPositionOffset As Integer = 2000
            Dim YPositionOffset As Integer = 2004
            Dim ZPositionOffset As Integer = 2008
            Dim RotationOffset As Integer = 2012
            Dim DescriptorFieldsOffset As Integer = 8
            Dim datatarget As Byte() = New Byte(3) {}
    
    
    
    lstHistory.Items.Add("Start")
    Process.EnterDebugMode()
    
            'Get wow Process
    
    
     Dim proc As Process() = Process.GetProcessesByName("WoW")
    Dim wowproc As System.Diagnostics.Process = proc(0)
    
            ' get baseadres
    
    BaseAddress = wowproc.MainModule.BaseAddress.ToInt32
    
    
            ' som debug info
    
    lstHistory.Items.Add("BaseAddress :" & BaseAddress)
    
           ' read Baseaddress  + DescriptorFieldsOffset  
           
    mem.Peek(wowproc, Baseaddress + DescriptorFieldsOffset , datatarget)
    
    ' debug datatarget {Length=4} = (0)4,(1)0,(2)0,(3)0
    so data output off datatarget = 4 :confused:

    but now i dont know what to do next
    ( yes i know wane do many tings but how)


    example getting the xyz memory locations

    i know you need to find NpcObject and or PlayerObject but how do i get the UnitFields

    tnx

    Memory VB starting point
  2. #2
    SKU's Avatar Contributor
    Reputation
    306
    Join Date
    May 2007
    Posts
    565
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I guess by 'baseaddress' you mean the pointer to your player object?
    Then your line:

    Code:
    BaseAddress = wowproc.MainModule.BaseAddress.ToInt32
    makes no sense. Your 'wowproc' is a 'Process' object, so I guess you get a baseaddress of your process' mainmodule.

    [[[0x127F13C] + 0x30] + 0x28] = playerbase (static)

    So you'll have to mem.peek 3 times in order to get the playerbase.

    Edit: Also, I have no clue of VB, but does the peek method really take a process as an argument?
    Last edited by SKU; 02-13-2009 at 09:48 AM.

  3. #3
    nvthiele's Avatar Member
    Reputation
    1
    Join Date
    Jun 2008
    Posts
    9
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ' [[[0x127F13C] + 0x30] + 0x28] = playerbase (static)

    Code:
     
    mem.Peek(wowproc, 19394876, memread1)
    Dim temp1 As Integer = System.BitConverter.ToInt32(memread1, 0)
    
    mem.Peek(wowproc, temp1 + 48, memread2)
    Dim temp2 As Integer = System.BitConverter.ToInt32(memread2, 0)
    
    
    mem.Peek(wowproc, temp2 + 40, playerbase )
    so you mean to do this ?

  4. #4
    SKU's Avatar Contributor
    Reputation
    306
    Join Date
    May 2007
    Posts
    565
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yup should do it.

  5. #5
    Robske's Avatar Contributor
    Reputation
    305
    Join Date
    May 2007
    Posts
    1,062
    Thanks G/R
    3/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    So ugly :/

    Once you have the base adress of your local player object, you can access it's 'descriptor fields' by following the pointer at base+0x8, from there you can add the offset corresponding the field you wish to get.

    For example, if UNIT_FIELD_HEALTH is offset at 0x17 (not sure, just as an example) you can access it by reading from [[base + 0x8]+0x17*4] this only works for objects typed as Units (3) or Players (4) obviously.

    The reason why we multiply the offset by 4 is because the values are aligned per 4 bytes in memory. Some enums use the multiplied value, some don't. The enum by Cypher in the sticky does not use it. So you'll have to multiply by 4 if you wish to use his.
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding
    "I cried a little earlier when I had to poop" - Sku

  6. #6
    nvthiele's Avatar Member
    Reputation
    1
    Join Date
    Jun 2008
    Posts
    9
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    oky it trying to understand.

    Code:
    Dim XPositionOffset As Integer = 2000 ' 0x7D0
    
    mem.Peek(wowproc, playerbase + XPositionOffset, datax)
    
    
            x.Text = "X: " + func.btf(data, 0)
            y.Text = "Y: " + func.btf(data, 4)
            z.Text = "Z: " + func.btf(data, 8)
            r.Text = "R: " + func.btr(data, 12)
    
    
    Public Shared Function btf(ByVal data, ByVal start)
            Dim i As String
            i = System.BitConverter.ToSingle(data, start)
            Return i
    End Function

  7. #7
    jbrauman's Avatar Member
    Reputation
    65
    Join Date
    Dec 2007
    Posts
    72
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    [Off topic]
    Woot someone reading my tutorial =]

  8. #8
    Clain's Avatar Banned
    Reputation
    179
    Join Date
    Jan 2008
    Posts
    1,396
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ermmmm if your converting it to a single the variable "i" shouldn't be a string... and theres no need to typecast so you might want to change that

Similar Threads

  1. A starting point for memory editing?
    By StrudleJunkie in forum Programming
    Replies: 0
    Last Post: 06-24-2010, 08:13 PM
  2. [Useless] Mount at WSG Starting Point.
    By ShineSpikeX in forum World of Warcraft Exploits
    Replies: 8
    Last Post: 11-08-2008, 08:33 PM
  3. MaNGOS Starting Point?
    By DontCareQQ in forum World of Warcraft Emulator Servers
    Replies: 2
    Last Post: 07-17-2008, 06:11 AM
  4. [GUIDE] Changing your starting point
    By Dryice in forum WoW EMU Guides & Tutorials
    Replies: 9
    Last Post: 10-29-2007, 03:38 PM
  5. Server questions and starting points
    By dissidence in forum World of Warcraft Emulator Servers
    Replies: 4
    Last Post: 10-27-2007, 11:01 PM
All times are GMT -5. The time now is 05:32 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search