Mytherin / Tibialyzer

Tibialyzer is an extension made for the MMORPG Tibia. It automatically scans the server log and messages from the Tibia client by reading its memory, and gathers various statistics, such as loot found from creatures, damage dealt by party members and experience gained every hour.
Other
182 stars 60 forks source link

End of Tibialyler? #314

Open elderapo opened 7 years ago

elderapo commented 7 years ago

Looks like it might be end of Tibialyzer :( http://forum.tibia.com/forum/?action=thread&threadid=4532071

dbbj commented 7 years ago

I'm pretty sure it'll get whitelisted. I hope it does.

Ne0nyx commented 7 years ago

Not sure if they will take the effort but lets hope so!

Mytherin commented 7 years ago

I made a proposal here that would allow Tibialyzer to keep on functioning without reading Tibia's memory. We will see what comes of it.

jo3bingham commented 7 years ago

@Mytherin Unfortunately, I wouldn't get your hopes up that CipSoft will take your proposal seriously. However, according to an alleged BattlEye employee that showed up on the reddit thread in /r/TibiaMMO discussing the news, you can inject a library into the client and BattlEye will ignore it because BattlEye only cares about external processes trying to interfere with the client.

Knowing this, you could easily write a DLL in C++ that does the core work of Tibialyzer, inject it with C#, and use IPC (e.g., a named pipe) to communicate between your DLL and your C# code; as long as BattlEye doesn't protect against it. Otherwise, you would need to do everything from the injected DLL. I'll know more when the new clients are released. From what I've gathered, BattlEye probably uses kernel-mode hooks to detect when an external process calls Read/WriteProcessMemory, or any other low-level Windows API functions, on the client.

If you don't know who I am, I've been around the Tibia/OT scene since 2004. Most notably, my contributions to TPForums (which gives me a bad rap for being a "bot" community), maintaining (for a short time) SharpMapTracker, and detailing protocol changes. Also, I work in the security industry as a software engineer. I'm interested in getting my hands on the client with BattlEye integration and seeing exactly what's going on. If I can find a simple solution to allow Tibialyzer to continue working (in the case that it does get blocked), I'd be more than happy to share it with you, and let you be the judge on whether or not you want to implement it.

Mytherin commented 7 years ago

From what I gathered from his response was not that BattlEye ignored injections into the client, but rather that the injection would still work if it was whitelisted by them. As far as I know, injecting code into the client is still against Tibia's rules. Thus even if the injection works without them whitelisting it, if they detect it you will still get banned.

If they make an explicit exception for Tibialyzer and whitelist an injected module that would allow us to gather that information, then sure, that would be a valid solution. But I think the chance of that happening is very low. At least, much lower than the chance of them adding an option to dump log messages into a file (or possibly even adding an API that could be used by legal tools).

The reason I think my suggestion is a good solution is that it is very easy for CipSoft to implement, and it couldn't be used in any malicious way by botters as server log messages do not carry enough information for them.

jo3bingham commented 7 years ago

From what I gathered from his response was not that BattlEye ignored injections into the client, but rather that the injection would still work if it was whitelisted by them.

Allow me to quote that BattlEye employee:

That's right, but they could work around that by e.g. injecting a module into the game, which would then be allowed by BE.

Tibialyzer would need to be rewritten to inject a component that does the reading into the game.

It's possible that their injection method needs to be updated for them to still work, but other than that they should be fine. If Tibialyzer is solely an external tool it will be completely be blocked by the protection system though.

What I'm inferring here is that BattlEye only protects against external tools. Any modules inside the client, whether they were put there by CipSoft or not, are excluded from BattlEye protection. Maybe I'm wrong, but I'll know more when the client is released.

As far as I know, injecting code into the client is still against Tibia's rules. Thus even if the injection works without them whitelisting it, if they detect it you will still get banned.

Code injection isn't against the rules, as long as you're not gaining an unfair advantage. There's nothing in the client that detects code injection, and there's no data being sent to the server that would report that. As you can see from the officials rules that I quoted below, CipSoft will not offer support for any loss from client manipulation. Nowhere do they state that it's against the rules (as long as you're not gaining an unfair advantage).

Rule 3b) Using Unofficial Software to Play Manipulating the official client program: Manipulating the client program to try gaining an advantage compared to other players is not only extremely unfair but may also cause serious errors in the game. In such cases you cannot expect any assistance from CipSoft concerning level, skill, item or character loss due to manipulating their software or the game protocol. Also, manipulating the client program may lead to a punishment.

I'm not saying your suggestion isn't good, I'm just saying that I wouldn't hold my breath for CipSoft to even consider it let alone implement it. If they even acknowledge your suggestion, they'll probably tell you to use the client's built-in 'save messages' feature when you right-click a channel tab.

Sorry if I'm coming on strong, it's just that I know how popular Tibialyzer is to the Tibia community, and I would like to help keep it alive, if possible, after the client update; if it so happens to get blocked.

WadeDro commented 7 years ago

I feel good about the future of tibialyzer, and again appreciate all your effort! Further more don't let me forget about all the other individuals who are putting in input/ideas to help Mytherin your effort inst going un noticed either, Again more shout outs to you.. Anyways ~ Could someone give me a run down on tibialyzer how i can fix my HUD list is there something i need to have set on the tibiaclient its self ie "Battle List/Window" options or do i have something wrong with how i am setting it up in tibializer its self? there isnt really any instructions/vids in how to set this up~ also just recently my popups loot keeps being reset too 2000 it doesnt save or something maybe something is up with my program and ideas? would be super helpful and kindly appreciated! other then that it seems the program is running perfect.

PS Keep up your work, Dont go a changing ;) Wader

gabrielrdrguez commented 7 years ago

@jo3bingham If Battleye doesn't protect from DLL injections then I suppose that could be an easy way for bots to keep working as they could gather all they need from a modified DLL. Which would be a shame IMHO, defeats the sole purpose of implementing BE. I truly hope they won't let a flaw like that pass unnoticed

offtopic: Btw, do you know any tools like map tracker that would work nowadays?

jo3bingham commented 7 years ago

It seems CipSoft plans to implement Tibialyzer features into Tibia 11, which is nice.

@gabrielrdrguez I agree, allowing injected modules gives bot makers a easy way around. Once I get the new client I'll see how easy that is to achieve.

SharpMapTracker is open-source, it just needs to be updated. As far as I know, there aren't any publicly available map trackers for the current clients.

divinity76 commented 5 years ago

@Mytherin the suggestion you posted on the tibia forum is shit, the only reasonable solution is for cipsoft to add an official api to the client (or abi, either way), and that's what you should have been requesting, an api.