Deprecated: The behavior of unparenthesized expressions containing both '.' and '+'/'-' will change in PHP 8: '+'/'-' will take a higher precedence in /home/iano/public_html/tpforums-vb5/forum/includes/class_core.php on line 5842

PHP Warning: Use of undefined constant MYSQL_NUM - assumed 'MYSQL_NUM' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: Use of undefined constant MYSQL_ASSOC - assumed 'MYSQL_ASSOC' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: Use of undefined constant MYSQL_BOTH - assumed 'MYSQL_BOTH' (this will throw an Error in a future version of PHP) in ..../includes/init.php on line 165

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in ..../includes/functions_navigation.php on line 588

PHP Warning: "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"? in ..../includes/functions_navigation.php on line 612

PHP Warning: Use of undefined constant misc - assumed 'misc' (this will throw an Error in a future version of PHP) in ..../global.php(29) : eval()'d code(6) : eval()'d code on line 1

PHP Warning: Use of undefined constant index - assumed 'index' (this will throw an Error in a future version of PHP) in ..../global.php(29) : eval()'d code(6) : eval()'d code on line 1

PHP Warning: Use of undefined constant misc - assumed 'misc' (this will throw an Error in a future version of PHP) in ..../includes/class_bootstrap.php(1422) : eval()'d code(4) : eval()'d code on line 1

PHP Warning: Use of undefined constant index - assumed 'index' (this will throw an Error in a future version of PHP) in ..../includes/class_bootstrap.php(1422) : eval()'d code(4) : eval()'d code on line 1

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6

PHP Warning: Use of undefined constant onlinestatusphrase - assumed 'onlinestatusphrase' (this will throw an Error in a future version of PHP) in ..../includes/class_core.php(4684) : eval()'d code on line 6
Video Tutorial Archive
Page 1 of 2 12 LastLast
Results 1 to 10 of 18

Thread: Video Tutorial Archive

  1. #1
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725

    Video Tutorial Archive

    Hi all,

    I'm going to begin making a video tutorial archive for everything that anyone makes to teach and share information about the Tibia client. Because it's going to be video based I will not be able to post multiple videos into a single post, so I have reserved the first page of posts here. If you feel you have a video which would be beneficial, drop a link in and I'll add it to the list. The list will grow as a few of us make videos, and hopefully develop into something truely threadworthy.

    Groups
    Memory Reading
    Code Based
    Bot Layout

    Each of the posts above contains a list of videos organised by video genre. The post itself is organised only by time of posting (initially oldest first, will reorganise at some point). They are mostly empty at the minute, and many are missing, but I will add them in time as videos crop up.
    Last edited by XtrmJash; 06-21-2013 at 04:50 PM.

  2. #2
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Memory Reading Tutorials

    XtrmJosh on Structures:
    http://youtu.be/uySmUTotGJk

    XtrmJosh response on finding the CID after having found the battle list:
    http://youtu.be/oIxMAY7Mn-I

    Puterin on a whole array of things:
    http://youtu.be/NcZXDcrCZFA

    Code:
    • Cooldowns: 00:00:00
    • Dialogs: 00:12:58
    • Gui Start & Text in Chat: 00:19:53
    • HP, Mana, Xor: 00:24:13
    • Last Status Bar & TibiaTime: 00:36:17
    • Map Pointer: 00:43:52
    • Ping: 00:48:41
    • Player Flags: 00:57:54
    • Tibia Version: 01:02:28
    • X Y Z Locations & Goto: 01:03:16
    XtrmJosh on Reading Pointers:
    http://youtu.be/mo2-DE05Z10
    Sample code:
    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Runtime.InteropServices;
    using System.Diagnostics;
    
    namespace TestApp
    {
        class Program
        {
            [DllImport("kernel32.dll")]
            public static extern Int32 ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress,
                [In, Out] byte[] buffer, UInt32 size, out IntPtr lpNumberOfBytesRead);
    
            public static byte[] ReadBytes(IntPtr Handle, Int64 Address, uint BytesToRead)
            {
                IntPtr ptrBytesRead;
                byte[] buffer = new byte[BytesToRead];
                ReadProcessMemory(Handle, new IntPtr(Address), buffer, BytesToRead, out ptrBytesRead);
                return buffer;
            }
    
            public static int ReadInt32(long Address, uint length = 4, IntPtr? Handle = null)
            {
                return BitConverter.ToInt32(ReadBytes((IntPtr)Handle, Address, length), 0);
            }
    
            public static string ReadString(long Address, uint length = 32, IntPtr? Handle = null)
            {
                string temp3 = ASCIIEncoding.Default.GetString(ReadBytes((IntPtr)Handle, Address, length));
                string[] temp3str = temp3.Split('\0');
                return temp3str[0];
            }
    
            static void Main(string[] args)
            {
                UInt32 Address = 0x3BE800;
                // get process
                Process Tibia = Process.GetProcessesByName("Tibia")[0];
                // dump base
                Console.WriteLine("Base Address             : " + Tibia.MainModule.BaseAddress.ToString());
                UInt32 Base = (UInt32)Tibia.MainModule.BaseAddress.ToInt32();
                // read pointer
                UInt32 Ptr1 = (UInt32)ReadInt32(Address + Base, 4, Tibia.Handle);
                Console.WriteLine("Pointer 1                : " + Ptr1.ToString());
                UInt32 Ptr2 = (UInt32)ReadInt32(Ptr1 + 0x40, 4, Tibia.Handle);
                Console.WriteLine("Pointer 2                : " + Ptr2.ToString());
                UInt32 Ptr3 = (UInt32)ReadInt32(Ptr2 + 0x44, 4, Tibia.Handle);
                Console.WriteLine("Pointer 3                : " + Ptr3.ToString());
                UInt32 Ptr4 = (UInt32)ReadInt32(Ptr3 + 0x2C, 4, Tibia.Handle);
                Console.WriteLine("Pointer 4                : " + Ptr4.ToString());
                // read memory pointer points to
                string PtrRead = ReadString(Ptr4, 255, Tibia.Handle);
                Console.WriteLine("String read from Pointer : " + PtrRead);
                Console.ReadLine();
            }
        }
    }
    Last edited by XtrmJash; 06-21-2013 at 09:17 PM.

  3. #3
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Code Based Tutorials

    XtrmJosh on Reading Int32 and String values from memory (No XOr or Pointers):

    http://youtu.be/LJYj17yCckE

    Sample code:
    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Diagnostics;
    using System.Runtime.InteropServices;
    
    namespace VideoDemonstration
    {
        class Program
        {
            [DllImport("kernel32.dll")]
            public static extern Int32 ReadProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, [In, Out] byte[] buffer, UInt32 size, out IntPtr lpNumberOfBytesRead);
    
            public static byte[] ReadBytes(IntPtr Handle, Int64 Address, uint BytesToRead)
            {
                IntPtr bytesRead;
                byte[] buffer = new byte[BytesToRead];
                ReadProcessMemory(Handle, new IntPtr(Address), buffer, BytesToRead, out bytesRead);
                return buffer;
            }
    
            public static int ReadInt32(Int64 Address, IntPtr Handle)
            {
                return BitConverter.ToInt32(ReadBytes(Handle, Address, 4), 0);
            }
    
            public static string ReadString(long Address, IntPtr Handle, uint length = 32)
            {
                return ASCIIEncoding.Default.GetString(ReadBytes(Handle, Address, length)).Split('\0')[0];
            }
    
            static void Main(string[] args)
            {
                Process Tibia = Process.GetProcessesByName("Tibia")[0];
                IntPtr Handle = Tibia.Handle;
                UInt32 Base = (UInt32)Tibia.MainModule.BaseAddress.ToInt32();
                Console.WriteLine("Base Address : " + Convert.ToString(Base));
                UInt32 ExpAdr = 0x3BE1E0;
                Console.WriteLine("Experience   : " + Convert.ToString(ReadInt32(Base + ExpAdr, Handle)));
                Console.ReadLine();
            }
        }
    }
    Last edited by XtrmJash; 06-24-2013 at 09:19 PM.

  4. #4
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Bot Layout Tutorials
    This will contain videos which demonstrate how to structure your bot internally so that the code is organised and useful.
    Last edited by XtrmJash; 06-21-2013 at 04:45 PM.

  5. #5
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Reserved 6

  6. #6
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Reserved 5

  7. #7
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Reserved 4

  8. #8
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Reserved 3

  9. #9
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Reserved 2

  10. #10
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    All posts reserved, jobs a good'n.

Posting Permissions

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