[Request] Need some help wit memory adresses

07/19/2008 23:14 purplehaze#1
Hello EPVP it's been a while that Ive been here, now that im back and playing CO again Im back into cheating haha.

Anyway since cracked SV and all is not allowed here anymore I am thinking of making a memory based bot myself, and i can use some pointers to the right direction.
(Yes i have used search first :) )

Im looking for some current adresses of a few things, for 1 the monster names and theres more to that, I wonder how SV searches for the monsters exactly, because well its unlikely all monsters have same memory adresses, so how could I ' search ' for them :)
And my second question is what are the current memory adresses of the current position that ur standing at.

Now if i knew the answer to those 2 questions I think I can make this work :)
Anyone that knows the answer please reply ASAP :)

Many thanks
07/20/2008 04:33 evanxxxm#2
purplehaze@
if u have use cheatengine before, searching a certain name does not take more than 2 seconds to scan through the whole co client
(if u have it in range, like 0x400000-0x700000, it will take like 0.5seconds)

after u get the memory address of the monster, u add +48hex = Xcoordinate of monster
then u add +4hex = Y coordinate
after u add all of the monsters data, then compare all the values with the current point u are standing, then command the bot to click the closest monster as possible

and about the current address for char position is the same
search for ur own character name, then add +48 for X, +4 for Y
the difference is CharName address is fixed (unless patches)
07/21/2008 02:31 purplehaze#3
Quote:
Originally Posted by evanxxxm View Post
purplehaze@
if u have use cheatengine before, searching a certain name does not take more than 2 seconds to scan through the whole co client
(if u have it in range, like 0x400000-0x700000, it will take like 0.5seconds)

after u get the memory address of the monster, u add +48hex = Xcoordinate of monster
then u add +4hex = Y coordinate
after u add all of the monsters data, then compare all the values with the current point u are standing, then command the bot to click the closest monster as possible

and about the current address for char position is the same
search for ur own character name, then add +48 for X, +4 for Y
the difference is CharName address is fixed (unless patches)
I thank you very much :)
I have used cheatengine and indeed it scans fast, how cheatengine does its miracle is for me unknown, now for example VB.Net can read and write memory but can it search for matches? If so please share your knowledge :)

Many thanks
07/21/2008 04:51 evanxxxm#4
purplehaze@
if it can read/write memory, of course it can search for matches, just that u need to code it urself
concept:
Code:
read 0x123123 output as var AAA
if AAA = 6E617665 (e=65 v=76 a=61 n=6E)
{
found matches!
}
else
{
0x123123 ++
}
07/22/2008 16:43 purplehaze#5
Quote:
Originally Posted by evanxxxm View Post
purplehaze@
if it can read/write memory, of course it can search for matches, just that u need to code it urself
concept:
Code:
read 0x123123 output as var AAA
if AAA = 6E617665 (e=65 v=76 a=61 n=6E)
{
found matches!
}
else
{
0x123123 ++
}
yes I have thought about something alike, but was kind of looking for a faster way (hoping there is ofcourse)

But thank you for answering it is appreciated :)

Edit:

Before I can even continue on this i stumbled on a problem, so memory editing is new for me in VB.net.
So i thought lets start out simple and first read the money value, well it keeps showing 0 while i know i have coins with me.
Means somethings wrong with my code, maybe if you have a look at it you see where the problem is? :)
I have also tried to use &H56BE7C instead of 90720324 tho that gave me the result of 64, wich is not correct because i have 1.4kk on the account
Thanks in advance :)

Code:
        Dim iMoneyAddress As Integer
        iMoneyAddress = 90720324
        Dim Reader As New MemReader.ProcessMemoryReader()
        Dim MyProcs As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("Conquer")

        If MyProcs.Length = 0 Then
            MessageBox.Show("No Conquer Client found!")
            Return
        End If
        Reader.ReadProcess = MyProcs(0)
        Reader.OpenProcess()
        Dim bytesRead As Integer
        Dim Memory As Byte()
        Dim iMoney As Integer

        Memory = Reader.ReadProcessMemory(iMoneyAddress, 1, bytesRead)
        iMoney = Memory(0)
        txtMoney.Text = iMoney.ToString()