Page 1 of 2 12 LastLast
Results 1 to 10 of 17

Thread: [VB.NET] Starting to mess with Tibia :D

  1. #1
    Junior Member
    Join Date
    Sep 2014
    Posts
    14

    [VB.NET] Starting to mess with Tibia :D

    Hey guys, I've been in the scene for quite some time already, I'm the author of these hacks for this game:

    Update 1.0
    https://www.youtube.com/watch?v=3WEfOJKyE4A
    Update 1.1
    https://www.youtube.com/watch?v=CNRRBkZMvOw

    You might not know about the game, but I've been working on it since 2008, mostly learning and learning, up to the point I got a developer to work with me and try to do a Private Server out of it, we only got up to the Login Server xD
    https://www.youtube.com/watch?v=QeaFLjIS1gI

    BTW, using VB.NET :P - So as you can see I've been working on real hard XD So I've been on Tibia for some time already as well, and I know only little in the hacking part, so I will have to start from 0 and learn how the game manages memory, packet encryption, decryption, and all that shizz...

    Well, right away, I started doing a MC thing for Tibia 9.2 I got the original address from HERE and from there I started looking for patterns... like...

    so [10E821] is for If you would Hex edit the Tibia.exe directly with some HexEditor... But programatically speaking if you would edit it using Cheat Engine or something, you should sum up 'C00' to that address... So:

    10E821 + C00 = 10F421 (9.2)

    And if you want the MC Address for the previous version you would just have to minus 200 from that resulting address...

    10E821 - 200 = (9.1) As you can see in the list

    ----------------------------------------------

    So my thing is the following one, after I learned to work around those patterns I got to start working on the programming part... just to understand how it all works... and it's not much of a difference from GodsWar (Thankfully XD) So I went to VB.NET setup my Memory reading and writing module and started programming...



    After time of messing around, doing this and that, I finally got a working MultiClient working for Tibia 9.2 but! there's always the but! this is what's happening to me:

    I Open up the MC program of course, I launch Tibia from directory or shortcut, then I Press on Tibia MC button on the program, Tibia MC launches PERFECTLY... however... whenever I try to hit Tibia MC button once more time... the new tibia saying the MC Error, everytime... No matter what I do, I can launch even 2 from the same function... and it will always load 2... but only two freaking tibias XD thats so crazy...

    Will someone here help me out on this? What is probably going wrong here?

    Added video for better reference: https://www.youtube.com/watch?v=KfIz...ature=youtu.be
    Attached Images Attached Images
    Last edited by 0x90; 09-28-2014 at 12:16 AM.

  2. #2
    Senior Member Lolrapa's Avatar
    Join Date
    Mar 2014
    Posts
    125
    Maybe you are re-writing the address of the same client, and the other client is sending the error, try writing the memory in every process with name tibia

    ...Or maybe I have no clue what I'm talking about :P
    Last edited by Lolrapa; 09-28-2014 at 01:37 AM.

  3. #3
    Senior Member Lolrapa's Avatar
    Join Date
    Mar 2014
    Posts
    125
    Do you know that address for current tibia?

  4. #4
    Junior Member
    Join Date
    Sep 2014
    Posts
    14
    Quote Originally Posted by Lolrapa View Post
    Maybe you are re-writing the address of the same client, and the other client is sending the error, try writing the memory in every process with name tibia

    ...Or maybe I have no clue what I'm talking about :P
    That's one legit response right there but not quite the solution for this specific problem, sadly.

    This is my response hopefully it saves me time on writing stuff XD

    https://www.youtube.com/watch?v=FyKJ...ature=youtu.be

  5. #5
    Junior Member
    Join Date
    Sep 2014
    Posts
    14
    Quote Originally Posted by Lolrapa View Post
    Do you know that address for current tibia?
    TibiaMC (10.56) = 14E977 Change 75 to EB - Same thing :d

  6. #6
    Senior Member Lolrapa's Avatar
    Join Date
    Mar 2014
    Posts
    125
    Just did it as I said :P


    Code:
    System.Diagnostics.Process.Start("C:\Program Files (x86)\Tibia\tibia.exe")
            Dim I As Integer = &H14E977 + &H400000
            Dim b As Cliente
            For Each S As Process In Process.GetProcesses
                If S.ProcessName = "Tibia" Then
                    b = New Cliente(S)
                    b.WriteBytes(I, New Byte() {&HEB, &H40}, 2)
                End If
            Next
    Cliente Just has a function to write bytes, like yours

  7. #7
    Senior Member Lolrapa's Avatar
    Join Date
    Mar 2014
    Posts
    125
    Now you have to teach me how to get that address so I can update it every patch :P

  8. #8
    Junior Member
    Join Date
    Sep 2014
    Posts
    14
    Quote Originally Posted by Lolrapa View Post
    Now you have to teach me how to get that address so I can update it every patch :P
    I see you speak spanish by the variable declaration "Cliente" hahaha, I can share with you as well the Memory Module that I use to handle games memory if you don't have it already.

    Veo que hablas espanol tambien por la declaracion de variable que hicistes ahi "Cliente" jajaja, puedo tambien compartir contigo el modulo de manejo de memoria que yo uso para los juegos, asi se te hace todo mas facil, digo si es que ya no usas uno

    *Edit*

    Also where is Clientes declared? or how should I declare it?

    ---

    Tambien donde esta Clientes declarado? o donde debo declararlo?

    *Edit 2*

    Nvm just saw your edit that cliente is a function that writes to bytes
    Last edited by 0x90; 09-28-2014 at 04:28 AM.

  9. #9
    Senior Member Lolrapa's Avatar
    Join Date
    Mar 2014
    Posts
    125
    Couldn't you make it work?
    Here is all I used to make it work

    In the button:
    Code:
    System.Diagnostics.Process.Start("C:\Program Files (x86)\Tibia\tibia.exe")
            Dim I As Integer = &H14E977 + &H400000
            Dim b As Cliente
            For Each S As Process In Process.GetProcesses
                If S.ProcessName = "Tibia" Then
                    b = New Cliente(S)
                    b.WriteBytes(I, New Byte() {&HEB, &H40}, 2)
                End If
            Next
    Class Cliente:
    Var's
    Code:
    <DllImport("kernel32.dll")> _
        Public Function WriteProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, <[In](), Out()> ByVal buffer As Byte(), ByVal size As UInt32, ByRef lpNumberOfBytesWritten As IntPtr) As Int32
        End Function
    
     <DllImport("kernel32.dll")> _
        Public Function OpenProcess(ByVal dwDesiredAccess As UInt32, ByVal bInheritHandle As Int32, ByVal dwProcessId As UInt32) As IntPtr
        End Function
    
    Public PROCESS_ALL_ACCESS = &H1F0FFF
    Private ProcessHandle As IntPtr
    Private p As Process

    COnstructor
    Code:
    
    Sub New(ByVal _p As Process)
            p = _p
           ProcessHandle = WinAPi.OpenProcess(WinAPi.PROCESS_ALL_ACCESS, 0, p.Id)
    End Sub
    To write bytes

    Code:
    Public Function WriteBytes(ByVal address As Long, ByVal bytes As Byte(), ByVal length As UInteger) As Boolean
            Dim bytesWritten As IntPtr
            Dim result As Integer = WinAPi.WriteProcessMemory(ProcessHandle, New IntPtr(address), bytes, length, bytesWritten)
            Return result <> 0
        End Function
    Last edited by Lolrapa; 09-28-2014 at 04:36 AM.

  10. #10
    Senior Member Lolrapa's Avatar
    Join Date
    Mar 2014
    Posts
    125
    Quote Originally Posted by 0x90 View Post
    Nvm just saw your edit that cliente is a function that writes to bytes
    Haha, late

Posting Permissions

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