• Welcome to Valhalla Legends Archive.
 

JD2Proxy

Started by xsemaphorex, November 22, 2003, 07:47 PM

Previous topic - Next topic

xsemaphorex

I was tinkering with the idea of writing a D2 proxy in java. My friend EvilCheese laughed at me but I know I can make it as fully featured as d2hackit was. In fact I think it has more potential since it would be entirely packet-based but without any possibility of being detected. Of course this same proxy could be done in c[++]... but since it hasn't already been done in java... I'm going to give it a try. I have the WinPCap library for java. It's called Jpcap. There are 2 flavors of them:

http://sourceforge.net/projects/jpcap
and
http://netresearch.ics.uci.edu/kfujii/jpcap/doc/

I looked at both of them and decided to work with the second implementation as the first one is incredibly bulky. It is incredibly easy to use the jpcap library. Literally 10 lines of code and you can be sniffing all packet data your nic is sending/receiving. There is one catch as exists with the WinPCap library: There is no way to block packets/modify them in any way. The packet is simply captured and forked to your handler. I'm open for functionality ideas. Let me know what you think.

j0k3r

I need to get a hold of you, this would be something I'd be very interested in (although I don't know Java, I'm just starting to learn it and I'd like to see working examples).
QuoteAnyone attempting to generate random numbers by deterministic means is, of course, living in a state of sin
John Vo

Banana fanna fo fanna

I wrote the original Binary Gateway in Java (it accepted connections from game clients and CHAT bots and acted as a gateway for the CHAT bot to go binary), so if you need any help, contact me.

xsemaphorex

Embarrassing as it is.. the problem I am having right now is porting the packet decompression algorithm into java. I could swear on everything that is holy that I ported it correctly based on the information found in:

http://forum.valhallalegends.com/phpbbs/index.php?board=17;action=display;threadid=585;start=msg4318#msg4318

but either I'm missing something simple or the in-game decompression algorithm has changed a touch. Most likely I screwed up the port as I have never worked with huffman decompression or any decompression for that matter.

Joker: I'd be happy to share any insights/code snippets I come up with. I believe that java is a worthy alternative to C++. I can tell you that its much less confusing learning the sematical practices and libraries of java than it is for C++. The limitations are there, sure, but it was designed with those limitations in mind... (and ways around them). There is a fantastic book that you should get once you get a firm hold on the java programming language. Its by Josh Bloch. The book is titled: Effective Java: Java Programming Language Guide. It points out how to become an effective java developer. He gives some insights on the best ways to mimic C structs and typesafe enums. Anyway.. I digress. I was thinking about implementing a simple form of pickit in my proxy *(once I get the decompression algorithm down and the compression counterpart working).. What else should I add?