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 archive_postsperpage - assumed 'archive_postsperpage' (this will throw an Error in a future version of PHP) in ..../archive/index.php on line 456
Video Tutorial Archive [Archive] - Forums

PDA

View Full Version : Video Tutorial Archive



XtrmJash
06-21-2013, 02:19 PM
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 (http://tpforums.org/forum/threads/5842-Video-Tutorial-Archive?p=51417&viewfull=1#post51417)
Code Based (http://tpforums.org/forum/threads/5842-Video-Tutorial-Archive?p=51418&viewfull=1#post51418)
Bot Layout (http://tpforums.org/forum/threads/5842-Video-Tutorial-Archive?p=51419&viewfull=1#post51419)

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.

XtrmJash
06-21-2013, 02:20 PM
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


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:

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();
}
}
}

XtrmJash
06-21-2013, 02:20 PM
Code Based Tutorials

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

http://youtu.be/LJYj17yCckE

Sample 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();
}
}
}

XtrmJash
06-21-2013, 02:21 PM
Bot Layout Tutorials
This will contain videos which demonstrate how to structure your bot internally so that the code is organised and useful.

XtrmJash
06-21-2013, 02:22 PM
Reserved 6

XtrmJash
06-21-2013, 02:22 PM
Reserved 5

XtrmJash
06-21-2013, 02:23 PM
Reserved 4

XtrmJash
06-21-2013, 02:23 PM
Reserved 3

XtrmJash
06-21-2013, 02:24 PM
Reserved 2

XtrmJash
06-21-2013, 02:24 PM
All posts reserved, jobs a good'n.

Puterin
06-21-2013, 10:33 PM
niceeeeee ideaaa!!!, I'll send you mines each time I upload one!!

Diego
06-22-2013, 03:03 AM
Green addresses means it it a static address, meanwhile a black one would be a pointer.

XtrmJash
06-23-2013, 02:36 PM
Green addresses means it it a static address, meanwhile a black one would be a pointer.

CheatEngine scans both executable code and memory, so it must also be possible that executable code can be found and could be mistaken for a memory address...?

XtrmJash
06-23-2013, 02:37 PM
oops double post.

Farsa
06-23-2013, 03:02 PM
CheatEngine scans both executable code[...]

I don't think so, wouldn't make sense. I believe it will only scan the data segment(https://en.wikipedia.org/wiki/Data_segment).

XtrmJash
06-23-2013, 05:07 PM
I don't think so, wouldn't make sense. I believe it will only scan the data segment(https://en.wikipedia.org/wiki/Data_segment).

Well if you look in the other thread at the screenshot I posted the checkbox does say "Executable Code"... So I guess it must be that, but I think you're right with the green shit being static memory, and the black shit being pointers. I wonder if the executable code just means it scans values which are passed into shit like graphics drivers and windows API features...

XtrmJash
06-24-2013, 09:36 PM
Added the new video tutorial "Reading Memory in C#" to the Code Based tutorial section. Probe away folks!

Puterin
06-24-2013, 10:27 PM
Added the new video tutorial "Reading Memory in C#" to the Code Based tutorial section. Probe away folks!

It could also be used as an introduction to C#, because everything was really well explained. 1 vid more in the archive, yey!