[Tutorial+Tool] find other's hp mini tool + CE tutorial to find the Base Addresses

08/03/2009 01:34 fragmaster#16
The mob name can be found using

Static Pointer - 0089AFB8
offset 1 - 0x4A4
offset 2 - 0x5C
offset 3 - 0x0
offset 4 - 0x74
offset 5 - 0xB8
offset 6 - 0x0 Mob Name (array text)

Included a simple app that shows Target Name & Health and Players Health & Pots.

.NET Vista Run As Admin
file updated this morn to reduce AL lag by adding some thread pauses to memory calls
08/05/2009 01:19 dorush09#17
lol i saw videos of u in youtube nicee....
08/05/2009 09:57 kinq1#18
Can somebody make a tool to see other players levels in webzen's archlord?
08/06/2009 03:28 _Villain_#19
base address: 0089afc4
offset1: 4A0
offset2: 44
offset3: C
offset4: 0 !--> here the offsets are 4 bytes difference for each entry in the char bag

the pointer obtained from this process leads to a general item info which has pointers llike: the image pointer, the item data pointer...

for instance: the to access the image pointer of the first item:
0089afc4
offset1: 4A0
offset2: 44
offset3: C
offset4: 0 ( 4 for second item, 8 third item....)
offse5: 48

to access the item data pointer of the first item:
0089afc4
offset1: 4A0
offset2: 44
offset3: C
offset4: 0 ( 4 for second item, 8 third item....)
offse5: 40

in item data u can find all info of an item for instance:a 30 offset gives u the item id

to access the item id of the bag0col0row0:
0089afc4
offset1: 4A0
offset2: 44
offset3: C
offset4: 0 ( 4 for second item, 8 third item....)
offse5: 40
offset6: 30


and so n



the base pointers of the item id currently pointed to by the mouse is:
0089af44
with offsets:
offset1: 1F90
offset2: A0
offset3: 0
offset4: 74
offset5: E98
offset 6: 40
offset 7: 30

hope this info is useful somehow.

i must say: i met some real SICK FKS in these forums (and they know themselves), and all i can say: life is full of those, all that u can hope for is that their harm remains away from u, in the end we can only learn from our own mistakes and sometimes you simply have to put faith in people's words, even if you knew that they will eventually try to screw u up.

cheers.
08/21/2009 18:15 _Villain_#20
this sample (copy paste from a component i written sometime ago) is useful and shows how to access 64 slots, divided into 4 bags, distributed as 4 rows, 4 columns accessed sequentially.

dont ask me for the component... this section is meant for coders.


Code:
 byte[] buffer = new byte[4];
            uint bytesRead = 0;

            int address = Convert.ToInt32("0089afc4", 16);

            ReadProcessMemory(targetProcess.Handle, (IntPtr)address, buffer, 4, ref bytesRead);

            address = BitConverter.ToInt32(buffer, 0) + 1184;   //0x4a0 == 1184  (int)
            ReadProcessMemory(targetProcess.Handle, (IntPtr)address, buffer, 4, ref bytesRead);

            address = BitConverter.ToInt32(buffer, 0) + 68;     //0x44 == 68 
            ReadProcessMemory(targetProcess.Handle, (IntPtr)address, buffer, 4, ref bytesRead);

            address = BitConverter.ToInt32(buffer, 0) + 12;     //0xc  == 12(int)
            ReadProcessMemory(targetProcess.Handle, (IntPtr)address, buffer, 4, ref bytesRead);

            //from here on we access the bag slots which are stored in a sequential array with 4 bytes 
            //offset from the previous slot
            int firstSlotInBagAddress = BitConverter.ToInt32(buffer, 0);

            for (int i = 0; i < 4; i++)
            {
                Thread.Sleep(1000);
                //press bag i tab
                mouseClick(bag, true);
              //  cleanBag(i,firstCell,trash,cellHeight); //clean current bag
                bag.x = bag.x + cellHeight;

                ////////////////////////////////////// clean bag i
                int row = 0;
                int col = 0;
                Thread.Sleep(500);
                for (int c = 0; c < 16; c++)
                {
                    row = c / 4;
                    col = c - row * 4;

                    ///////////////////// obtain the item id in current cell
                    address = firstSlotInBagAddress + (c+i*16) * 4;
                    ReadProcessMemory(targetProcess.Handle, (IntPtr)address, buffer, 4, ref bytesRead);

                    address = BitConverter.ToInt32(buffer, 0) + 64;  //0x40 == 64
                    ReadProcessMemory(targetProcess.Handle, (IntPtr)address, buffer, 4, ref bytesRead);

                    address = BitConverter.ToInt32(buffer, 0) + 48;  //0x30 == 48
                    ReadProcessMemory(targetProcess.Handle, (IntPtr)address, buffer, 4, ref bytesRead);

                    int id = BitConverter.ToInt32(buffer, 0);
                    //////////////////////////check current if we should delete it or not
                    if (id==0/*empty cell*/ || keepItemIDs.Contains(id))
                        continue; //dont delete, check the next cell
                    ////////////////////
                    Point cell = new Point(firstCell.x+cellHeight*col, firstCell.y+cellHeight*row);
                    //      for (int i = 0; i < 16; i++)
                    //      {
                   

                    //delete current cell
                    //simple: button down at cell point, up at trash point, then cick confirm
                    uint wparam = 0;
                    uint lparam = 0;
                    wparam = 0x00000001; //left button
                    lparam = ((uint)cell.y << 16) | (uint)cell.x; //x to the lower word, y to the higher
                    PostMessage(targetProcess.MainWindowHandle, WM_LBUTTONDOWN, wparam, lparam);
                    Thread.Sleep(500);
                    lparam = ((uint)trashPoint.y << 16) | (uint)trashPoint.x; //x to the lower word, y to the higher
                    PostMessage(targetProcess.MainWindowHandle, WM_LBUTTONUP, wparam, lparam);
                    Thread.Sleep(500);
                    //confirm
                    mouseClick(confirmButtonPoint, true);
                    Thread.Sleep(500);
                }
            }
its easier to learn by example.

k, thats my last post in this thread, have fun.
04/10/2010 17:28 kinq1#21
I know that _Villain_ dont care anymore, but can somebody make a similar tool, so we can see other chars level & hp?
04/12/2010 04:58 gotemans#22
can you destroy gameguard? nah. so can anyone do this? nah
04/12/2010 17:31 avati#23
Quote:
Originally Posted by gotemans View Post
can you destroy gameguard? nah. so can anyone do this? nah
You dont need to destroy gameguard to do something like that, just make your personal CE and bypass g4meguard ... if i had time i would do that ... but i dont...