ethaniccc / Mockingbird

PocketMine-MP anticheat in development made for fun by @ethaniccc.
GNU General Public License v3.0
62 stars 16 forks source link

StartGamePacket being accepted only once causes issues with proxies #74

Open ethaniccc opened 3 years ago

ethaniccc commented 3 years ago

For some reasons, on some servers, Mockingbird will kick all players for an unknown reason. I have not been able to reproduce this issue myself, and when the issue occurs, I receive almost no information (debug logs / etc).

Here is an example of the bug happening on EndGames: image

ilaicraftYT commented 3 years ago

Try to disable any plugins that do not use in that test, and then activate them one by one, it happens to me that some plugins cause interference with each other.

ethaniccc commented 3 years ago

See https://github.com/yesdog/Waterdog/issues/163#issuecomment-751859636

Blackjack200 commented 3 years ago

lol it cause server transfer,u need enable authinput in server which transfered by waterdog (proxy) lobby(move) -> ser(auth) like this, transfer problems

callumrawlinson commented 3 years ago

@ethaniccc Hi its callum from versai! the problem is when joining. please enable auth input which is when it is moved by a proxy such as waterdog. the problem is transfer/auth problems

Blackjack200 commented 3 years ago

ik the problem, this expression is very abstract but really the problem. StartGame: proxy: moveplayer proxy -> real client sever: authinput proxy <- server

and it seems that server StartGame packet doesn't transfer to true client so that client just send moveplayer, this seems cause MITM proxy

ethaniccc commented 3 years ago

That's what I stated in the Waterdog issue comment, the only solution is to put the anti-cheat on all servers connected to the proxy. Alemiz112: "Client accepts StartGamePacket only once."

I guess I can edit the issue title though.

Blackjack200 commented 3 years ago

this issue seems cannot solve. it is an MITM proxy issue.

ethaniccc commented 3 years ago

the only solution is to put the anti-cheat on all servers connected to the proxy.