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
Doubt
Page 1 of 2 12 LastLast
Results 1 to 10 of 16

Thread: Doubt

  1. #1

    Post Doubt

    I'm starting a developing new bot, but it gave me some doubts. I'm read all the time about develop using TibiaAPI, or don't using this api.
    Which one is better, or more 'undetectable' ? At the moment, i'm using address of mana, xor, for example to make it work. Where should i a start development?

  2. #2
    Senior Member
    Join Date
    Apr 2008
    Posts
    689
    - are you targeting current tibia version, e.g., the one live at cipsoft's servers?
    >Don't use TibiaAPI per se, it isn't updated. You can still use it as reference for some things.

    - being undetectable is a falacy, every known bot gets banned AFAIK

    - Where should i a start development?
    > Depends on what you already know about programming and reversing.

  3. #3
    Senior Member
    Join Date
    Oct 2010
    Posts
    146
    yea, what Farsa said. Also if you have no idea what to begin with you could give a look to my project

  4. #4
    Senior Member
    Join Date
    Jan 2012
    Posts
    417
    since cheating tools is a bit 'specific' kind of knowledge and I suppose you aren't familiarized with this, you should start from the basics and if you already know something, skip it.

    I would suggest as first steps, learn how Cheat Engine works and how to find simple addresses like experience, position (x, y, z), equip ids, etc... to read these values from memory (ReadProcessMemory of the WINAPI). Probably, you'll get stuck in the 'base address', but this forum has a lot of info about this.

    After these steps, you already know how the basics works and now you'll learn some useful structures like Battle List (list of creatures availables), Vip, Characters On Your Account, etc...

    For this kind of thread, months ago I made a thread "pointing" to good tutorials, explanations and alike. Maybe it can be useful for you: http://tpforums.org/forum/threads/5638-Good-References

  5. #5
    I already do some things like GetMana()
    Code:
        public class ADRs
        {
           public static uint baseAdress = Convert.ToUInt32(Functions.Tibia.MainModule.BaseAddress.ToInt32());
           public static uint Mana = 0x7ABFE0 - 0x400000 + baseAdress;
           public static uint XOR = 0x7ABF8C - 0x400000 + baseAdress;
        }
           public static uint GetMana()
           {
               return Convert.ToUInt32(ReadInt32(Tibia, ADRs.Mana) ^ ReadInt32(Tibia, ADRs.XOR));
           }
    p.s: this addres are outdated, so i need to get the new ones :P. On this code, i actually got some help from friends, so i dont understand a litte bit why, it use mana ^ xor.

  6. #6
    Senior Member
    Join Date
    Apr 2008
    Posts
    689
    For some reason, some updates ago, Tibia started "hiding" some values in the client with a XOR mask. It wasn't like that and I don't know if there's a higher purpose for doing such thing, but it's not a big issue.

    The thread Blequi pointed you to should be a good starting point, but I'd start working with a 8.6 OT, things were simpler back then.

  7. #7
    Senior Member
    Join Date
    Jan 2012
    Posts
    417
    Quote Originally Posted by brunopbarrote View Post
    p.s: this addres are outdated, so i need to get the new ones :P. On this code, i actually got some help from friends, so i dont understand a litte bit why, it use mana ^ xor.
    Keep in mind that CIP developers from time to time they test our community doing something "strange" to see if we can update our bots and hopefully (or not) get rid of us. In my opinion, it's a try to stop bots, because when you search for the real value in cheat engine or some other memory scanner, you don't find it.

    For example, in 9.83 update... they restructured the way they store Containers, which in my opinion, doesn't make any sense to be a Tree-like structure (mainly used to do fast insertion/removal in "long" lists or keep info of previous containers). Containers structure can hold at most 16 containers and probably, the old structure (array of fixed size) works faster than the current one. So, my shot is that it is just to make our life (bot devs) harder.

    Quote Originally Posted by Farsa View Post
    For some reason, some updates ago, Tibia started "hiding" some values in the client with a XOR mask. It wasn't like that and I don't know if there's a higher purpose for doing such thing, but it's not a big issue.

    The thread Blequi pointed you to should be a good starting point, but I'd start working with a 8.6 OT, things were simpler back then.
    Farsa raised a good point: simplicity.

    I made exactly the same when I started, instead of working with the latests clients, I grabbed a 8.6 OT and started with this, because a lot of things were simpler like:

    Tibia's base address were always 0x40000000, Xor encryption (Hp, HpMax, Mp, MpMax, Cap were not encrypted with Xor and you find it easily in the memory), Container structure were as simple as Battle List, a TextField structure that stores certain strings when its is longer than 15 bytes in other location in memory, and so on.

  8. #8
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Actually AFAIK CIPSoft implemented XOr by mistake. It seems they updated their compiler and it just happened...

  9. #9
    Senior Member
    Join Date
    Dec 2011
    Posts
    249
    Quote Originally Posted by XtrmJash View Post
    Actually AFAIK CIPSoft implemented XOr by mistake. It seems they updated their compiler and it just happened...
    Seems kinda fishy that using a different compiler would just randomly xor some random values? Wouldn't this happen to all static values in the client then?

  10. #10
    Senior Member
    Join Date
    Jan 2008
    Location
    Cambridge, England
    Posts
    725
    Quote Originally Posted by ottizy View Post
    Seems kinda fishy that using a different compiler would just randomly xor some random values? Wouldn't this happen to all static values in the client then?
    Actually I might be thinking of ASLR - though it's entirely possible that XOr was added by mistake with a graphics engine update or something lol

Posting Permissions

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