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
I am creating a bot for linux
Page 1 of 3 123 LastLast
Results 1 to 10 of 28

Thread: I am creating a bot for linux

  1. #1
    Junior Member
    Join Date
    Feb 2012
    Posts
    21

    I am creating a bot for linux

    First of all, 'hi", this is my first post .

    Why a bot for linux you think?:
    1. Well, i've been using linux for more than a year now, and I probably stay at it .
    2. I've been programming for 5+ years, and to sharpen my skills in linux I was looking for a project to learn more about the linux api.
    3. All the linux bots on this forum are, well... "crap".

    What I have writen already:
    1. Keyboard and mouse simulator. (It can do exactly the same as elfbot, ie. work while tibia is minimized etc.).
    2. Disable ASLR for tibia, and a memory reader that does not use ptrace(Why not ptrace, I didn't like it because it will pause Tibia while reading memory, so if your program crashes during reading, Tibia stays paused = Your char is dead) Also my method is faster because it uses less function calls.
    3. Found allot of address already, but need some help with it.

    After I have all address I can sew it all together, and it will work as good as any other bot on windows.

    What I need help with?:
    1. Can someone explain how the inventory works? Like how the inventory structure looks like? What i've found so far is that it contains the item id's and how many of that item.
    2. Where can I find the location of an open inventory. ie. Backpack 1 is at 400 pixels from the top.

    If any1 needs help with c++/c, x86 asm, python, php, lisp, anything about linux, feel free to ask me.

    --Cheers-

  2. #2
    Junior Member
    Join Date
    Feb 2012
    Posts
    21

    RE: I am creating a bot for linux

    *Update

    Been working on this bot for 12h/day now, and its getting nice.

    Wrote a scripting system in lua, and exported some c++ functions so u can read tibia memory from a lua script.

    Time now to write all the lua functions to interact with tibia and i am done.

    PS: weird no1 is intrested in this...

    Cheers

  3. #3
    Administrator
    Join Date
    Mar 2007
    Posts
    1,723

    RE: I am creating a bot for linux

    The lack of interest is directly proportionate to the lack of Linux users, and those who do use Linux either don't play Tibia or don't want to bot. This is just my personal opinion, though.

  4. #4
    Junior Member
    Join Date
    Feb 2012
    Posts
    21

    RE: I am creating a bot for linux

    Quote Originally Posted by Jo3Bingham
    The lack of interest is directly proportionate to the lack of Linux users, and those who do use Linux either don't play Tibia or don't want to bot. This is just my personal opinion, though.
    Ye prolly ;p, that's why I am making 1.


  5. #5
    Junior Member
    Join Date
    Jun 2007
    Posts
    5

    RE: I am creating a bot for linux

    Hi DPV,
    I'm a software developer and also use Linux as my primary operating system - if your bot is open source, I'd love to work with you and help complete this.

    If you don't wish for any help building it, I'd happily be a beta tester.

  6. #6
    Junior Member
    Join Date
    Feb 2012
    Posts
    21

    RE: I am creating a bot for linux

    Quote Originally Posted by Deet
    Hi DPV,
    I'm a software developer and also use Linux as my primary operating system - if your bot is open source, I'd love to work with you and help complete this.

    If you don't wish for any help building it, I'd happily be a beta tester.
    Well, the core is done, I just have to find some more memory addresses, and then write some scripts for it.
    I will probably release parts of the source when im done with my script for skilling at target dummies.

    If you are intrested in how it works:
    1. My shared object hijacks the XNextEvent to change the send_event member to false, so tibia can't detect that the events are simulated.( my bot works like elfbot by simulating events, not by hooking the tibia send packet function )
    2. The shared object also creates a new thread.
    3. The new thread will run a lua script that will accept commands. The commands i have atm are "start <script name> <randomTime 1> <randomTime 2>" and "stop <script name>"
    4. If the user wants to "start" a script, the lua script will call a c++ function that will create a new thread with a private scripting environment for the script and execute the script with a random time between <randomTime 1> and <randomTime 2>
    5. The "stop" command will cancel the thread running the script.

    As you can see the main stuff happens inside lua scripts, the only reason why you should change the c++ code is to add or remove c++ functions that can be called from lua.
    The most important c++ function that can be called from lua is the "readMemory" function that accepts the address and size to read.
    So if tibia has a new version you should only edit "constants.lua" which contains the addresses.

    Anyway if you need more info, just ask

  7. #7
    Junior Member
    Join Date
    Jun 2007
    Posts
    5

    RE: I am creating a bot for linux

    Quote Originally Posted by dpv
    Quote Originally Posted by Deet
    Hi DPV,
    I'm a software developer and also use Linux as my primary operating system - if your bot is open source, I'd love to work with you and help complete this.

    If you don't wish for any help building it, I'd happily be a beta tester.
    Well, the core is done, I just have to find some more memory addresses, and then write some scripts for it.
    I will probably release parts of the source when im done with my script for skilling at target dummies.

    If you are intrested in how it works:
    1. My shared object hijacks the XNextEvent to change the send_event member to false, so tibia can't detect that the events are simulated.( my bot works like elfbot by simulating events, not by hooking the tibia send packet function )
    2. The shared object also creates a new thread.
    3. The new thread will run a lua script that will accept commands. The commands i have atm are "start <script name> <randomTime 1> <randomTime 2>" and "stop <script name>"
    4. If the user wants to "start" a script, the lua script will call a c++ function that will create a new thread with a private scripting environment for the script and execute the script with a random time between <randomTime 1> and <randomTime 2>
    5. The "stop" command will cancel the thread running the script.

    As you can see the main stuff happens inside lua scripts, the only reason why you should change the c++ code is to add or remove c++ functions that can be called from lua.
    The most important c++ function that can be called from lua is the "readMemory" function that accepts the address and size to read.
    So if tibia has a new version you should only edit "constants.lua" which contains the addresses.

    Anyway if you need more info, just ask
    Sounds really clever - I hope you release some source so I can disect it a bit

    Keep this thread updated if you can mate

  8. #8
    Junior Member
    Join Date
    Feb 2012
    Posts
    21

    RE: I am creating a bot for linux

    Just got 1 problem, I can refill spears etc. but the location of the spears in the bps has to be hardcoded. I need to find where in memory tibia saves the location of a bp. Someone has an idea where it is?

  9. #9
    Super Moderator
    Join Date
    May 2007
    Posts
    1,191

    RE: I am creating a bot for linux

    In the GUI or in the list of container objects?
    If the latter, there's a couple of things to consider:
    • The list/array consists of max 16 (I think, not entirely sure) container objects.
    • When a new container is opened, it will take the first empty slot in the list/array. A slot becomes empty when a container is closed.

    To find this list/array, simply search with a memory scanner for 1 when a container is open, and 0 when it's closed. Rinse and repeat, preferably with a single container.
    You can find offsets and such if you look around.

    note: You are required to read this list/array when using items placed on the ground, as the last byte is what slot to open the item in, if it's a container (although the byte should be included in the packet regardless of item).

  10. #10
    Junior Member
    Join Date
    Feb 2012
    Posts
    21

    RE: I am creating a bot for linux

    Quote Originally Posted by Blaster_89
    In the GUI or in the list of container objects?
    If the latter, there's a couple of things to consider:
    • The list/array consists of max 16 (I think, not entirely sure) container objects.
    • When a new container is opened, it will take the first empty slot in the list/array. A slot becomes empty when a container is closed.

    To find this list/array, simply search with a memory scanner for 1 when a container is open, and 0 when it's closed. Rinse and repeat, preferably with a single container.
    You can find offsets and such if you look around.

    note: You are required to read this list/array when using items placed on the ground, as the last byte is what slot to open the item in, if it's a container (although the byte should be included in the packet regardless of item).
    I can find all the items in opened bps, so thats not the problem.
    But for simulating mouse clicks etc, i need to know the location(in pixels) of where a bp is located.

Posting Permissions

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