Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IS this project is Dead Now? #33

Open
SSDDX-Devs opened this issue Mar 22, 2017 · 17 comments
Open

IS this project is Dead Now? #33

SSDDX-Devs opened this issue Mar 22, 2017 · 17 comments

Comments

@SSDDX-Devs
Copy link

SSDDX-Devs commented Mar 22, 2017

Hey Hello firebolt55439 and other members......
I want to say thanks to all of you for starting this project but now i want to ask you is this project is dead now?

@firebolt55439
Copy link
Owner

firebolt55439 commented Mar 22, 2017 via email

@SSDDX-Devs
Copy link
Author

Thanks for the reply ! I'm also working on diep.io private server ....... I also tried to de-obfuscate d.js but it really hard they also updated many codes in their last updates now i am using agar.io server to edit it to make it diep.io server ....

@a74
Copy link

a74 commented May 10, 2017

What if you use a VPN or something like that so you don't get banned?

@firebolt55439
Copy link
Owner

firebolt55439 commented May 10, 2017 via email

@a74
Copy link

a74 commented May 10, 2017

I mean something like Tor. I don't know much about this, so yeah.

@firebolt55439
Copy link
Owner

firebolt55439 commented May 10, 2017 via email

@a74
Copy link

a74 commented May 10, 2017

If you use a different IP every time you play (in any way), diep.io won't be able to recognize that you are the person using extensions, because it bases that off of IP. So, I thought Tor would be a way to do that, but not sure if Tor would work with websockets.

@firebolt55439
Copy link
Owner

firebolt55439 commented May 11, 2017 via email

@a74
Copy link

a74 commented May 11, 2017

I think I found something. If you use F3 search on the raw prettified d.js, you can see a function called preventExtension. Unless you specifically renamed that, I don't know why exactly it's not obfuscated to a random variable name like XyZ, but you should check it out. https://raw.githubusercontent.com/firebolt55439/Diep.io-Protocol/master/obfuscated_js/prettified.d.js

After you modify it, just remember to use a different IP when testing so that you don't get banned.

@firebolt55439
Copy link
Owner

firebolt55439 commented May 11, 2017 via email

@FlorianCassayre
Copy link
Collaborator

FlorianCassayre commented May 21, 2017

Hello there,
I got back to the project very recently and decided to start everything from scratch. This time I only worked on reading the packets (with Wireshark) because the synthetized source code is so bad that it's almost impossible to get something from it.
I managed to fully reverse engineer the game update packet (0x00) for most of the cases (there are multiple branches depending on some values in the packet). I also created a working fake client that connects to a server, sends the initial magic packets, and listens to the incoming traffic.
For the moment I'm a little busy but I will share the code (probably in another repository though because it is in another language) whenever I get a descent basis to work with.

@a74
Copy link

a74 commented May 24, 2017

Wow, that's great. Does that means you can detect anything and send it packets to do something like turn or move?

@FlorianCassayre
Copy link
Collaborator

Yes, I can move the client around, fire and buy upgrades but not yet rotate its cannon (I still need to figure out how the heck he encodes the mouse coordinates, the format is very odd).
Also, it seems that everything that is drawn to the screen is server-sent (in some sort of 'basic' vector format), which doesn't help us in the work. Smart developer.

@a74
Copy link

a74 commented Jun 4, 2017

Do you know how to access the minimap? I want to be able to detect the current position on it. By the way, any progress on the barrel rotation?

@FlorianCassayre
Copy link
Collaborator

The minimap is sent through packet 0x00 (like almost everything else), but where... I think the player coordinates are stored in the null id entity (more informations about the entity system when I publish the code).
For the barrel I got nothing more besides that:

  • After the two bytes mapping the controls (plus the packet id), two varint can be read
  • The first varint corresponds to the mouse x coordinate relatively to the map (in a format I can't understand), and the second is for the y coordinate

@Mega-Mewthree
Copy link

How would you replace the preventExtensions function? I can't even make the game work with an exact copy of d.js loaded from an external site...

@firebolt55439
Copy link
Owner

firebolt55439 commented Jun 8, 2017 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants