• Welcome to Valhalla Legends Archive.
 

[Diablo II][GS] How to respond Warden packets?

Started by KrzaQ, August 07, 2007, 06:04 AM

Previous topic - Next topic

UserLoser

Quote from: Insolence on August 11, 2007, 10:43 PM
Quote from: UserLoser on August 11, 2007, 06:10 PMNo, it's none of them and I dont think you would guess it.  I don't support open sourced, why spend hours working on something to just give away to hungry newbs begging for code.  We all seen it here in this community.  It was bad enough when CupHead released CleanSlateBot, nobody could even figure that out and they still wanted help.
You can't say "Oh yeah, I can emulate Warden."  Then turn around and say "No, just believe me--I can't tell you how I did it, I just did."

You can't emulate Warden.  However, you can give static responses to specific queries, but you cannot emulate it.  It needs to be constantly updated.  As far as I know, anyway.

Wrooong

rabbit

I really wonder whether some people even know who you are sometimes.  It confounds me.  And brew, people like UL keep their stuff private for good reasons, such as not getting sued by big corporations or having douchebags rip their sources and call it their own.
Grif: Yeah, and the people in the red states are mad because the people in the blue states are mean to them and want them to pay money for roads and schools instead of cool things like NASCAR and shotguns.  Also, there's something about ketchup in there.

UserLoser

Quote from: rabbit on August 12, 2007, 09:03 AM
I really wonder whether some people even know who you are sometimes.  It confounds me.  And brew, people like UL keep their stuff private for good reasons, such as not getting sued by big corporations or having douchebags rip their sources and call it their own.

qft

raylu

More annoying than FOSS/closed-source are people who think that either is a universal solution.
Pie?

rabbit

Also, I do want to point out that IIRC UL shares his sources with people he trusts such as Arta or Yoni.  I don't think he'd give anything to iago though, cause iago would go spam it OPENSOURCEBITCHES haha.  Anyway, I do know that UL eventually releases some of his stuff to some people.
Grif: Yeah, and the people in the red states are mad because the people in the blue states are mean to them and want them to pay money for roads and schools instead of cool things like NASCAR and shotguns.  Also, there's something about ketchup in there.

brew

Quote from: Yegg on August 11, 2007, 11:53 PM
brew, since you're so into the open source movement, I assume that you also use Linux. Is that right?
Actually, yes. I do use Arch (0.8 voodoo) and ubuntu.
I also use Unix. (I'm a FreeBSD user, in fact I prefer it over linux)
<3 Zorm
Quote[01:08:05 AM] <@Zorm> haha, me get pussy? don't kid yourself quik
Scio te esse, sed quid sumne? :P

Warrior

Quote from: Insolence on August 11, 2007, 10:43 PM
Quote from: UserLoser on August 11, 2007, 06:10 PMNo, it's none of them and I dont think you would guess it.  I don't support open sourced, why spend hours working on something to just give away to hungry newbs begging for code.  We all seen it here in this community.  It was bad enough when CupHead released CleanSlateBot, nobody could even figure that out and they still wanted help.
You can't say "Oh yeah, I can emulate Warden."  Then turn around and say "No, just believe me--I can't tell you how I did it, I just did."

You can't emulate Warden.  However, you can give static responses to specific queries, but you cannot emulate it.  It needs to be constantly updated.  As far as I know, anyway.

Then how does Starcraft know? It's obviously getting the information on how to act on these updates on-the-fly as a hotfix.

Learn how this works, and you hold the key to implementing Warden. This requires an extensive understanding of Warden.

Unless of course, UserLoser and Co. have devised a black magic method that I don't know about =).

Just saying, learn to think outside the box.
Quote from: effect on March 09, 2006, 11:52 PM
Islam is a steaming pile of fucking dog shit. Everything about it is flawed, anybody who believes in it is a terrorist, if you disagree with me, then im sorry your wrong.

Quote from: Rule on May 07, 2006, 01:30 PM
Why don't you stop being American and start acting like a decent human?

Camel

#37
I wrote an entire BNCS/MCP login framework in Java, and it's entirely open-sourced, but I'm mostly with UL on this one.

My justification is that I didn't release anything algorithmically new - my bot depends pretty intimately on the JBLS library, which is existing free software -- and despite a number of differences I have from Hdx's programming style, I think it was very well written. I chose Java because I wanted to develop on Windows, hold ops on my Linux server, and be able to use it on my Macbook when I'm on the go. Since then, Windows decided to go on vacation with my hard drive and the two of them never came back, so now I'm primarily using Ubuntu - ReiserFS is super fast, but that's a discussion for another day. I chose to make the source open because I wanted people to be able to contribute. In the event that someone actually does try to rip it off, they'll probably just end up making themselves look like the idiot anyways, because it's such a unique project.

I don't like the idea that someone would release a work-around to warden as open-source software, because it directly contradicts the spirit of Warden's implementation - to protect the game. I don't care that there are an infinite number of open source checkrevision algorithms out there because, while I hate the seemingly endless number of spam bots that are out there, I believe the community as a whole is responsible enough to have these algorithms.

I would draw the line somewhere between JBLS and the CSB module. JBLS gets my approval because it's just an open-source BNLS (except W3 works). CSB does not because it takes a task that I believe should require a brain, and grants everyone with a copy of Visual Basic the ability to write a spam bot. CSB isn't even open-source AFAIK, it's just a publicly available module.

Also, knowing nothing about warden, I can say with absolute confidence that UL is correct. No matter how dificult it is to reproduce, it's not infinitely complex. If D2 can calculate warden responses, it can be emulated, period. Warden can only be as complicated as its algorithm; determine the algorithm, and you can reproduce it.

Hdx

[offtopic]
I would like to see your framework, both because I want see your implementation of the MCP (Hey i'm lazy and i'm only like 1/3rd the way done)
And 2) I want to see how you use JBLS 0.o
~Hdx
[/offtopic]

Proud host of the JBLS server www.JBLS.org.
JBLS.org Status:
JBLS/BNLS Server Status

Insolence

Quote from: Warrior on August 13, 2007, 01:25 AM
QuoteYou can't emulate Warden.  However, you can give static responses to specific queries, but you cannot emulate it.  It needs to be constantly updated.  As far as I know, anyway.
Then how does Starcraft know?
I don't get it...?  How does Starcraft know what?  Do you mean, how to reply to a Warden request?  Well, it doesn't.  Warden is binary code executed on the client and it sends whatever information it needs to back to Blizzard.  This can change at any time without a client side patch.  Meaning, you cannot emulate it in any way I've heard of or can imagine (unless you're running a client somewhere).

QuoteAlso, knowing nothing about warden, I can say with absolute confidence that UL is correct. No matter how dificult it is to reproduce, it's not infinitely complex. If D2 can calculate warden responses, it can be emulated, period. Warden can only be as complicated as its algorithm; determine the algorithm, and you can reproduce it.
That's the thing--Warden is not an algorithm.  Warden is binary code executed on the client.  Blizzard could send you new Warden data any time it wants, doing anything it wants to the client.  Warden could do anything client side, you cannot emulate that unless you're using an actual Diablo II client.

rabbit

Quote from: Insolence on August 13, 2007, 05:00 AM
Warden is not an algorithm.  Warden is binary code executed on the client.
It's official.  You're retarded.  You have lost.  Please leave.
Grif: Yeah, and the people in the red states are mad because the people in the blue states are mean to them and want them to pay money for roads and schools instead of cool things like NASCAR and shotguns.  Also, there's something about ketchup in there.

brew

Quote from: rabbit on August 13, 2007, 07:32 AM
Quote from: Insolence on August 13, 2007, 05:00 AM
Warden is not an algorithm.  Warden is binary code executed on the client.
It's official.  You're retarded.  You have lost.  Please leave.
You're retarded. Have you forgotten the contents of a warden module already?
<3 Zorm
Quote[01:08:05 AM] <@Zorm> haha, me get pussy? don't kid yourself quik
Scio te esse, sed quid sumne? :P

rabbit

Quote from: brew on August 13, 2007, 09:09 AM
Quote from: rabbit on August 13, 2007, 07:32 AM
Quote from: Insolence on August 13, 2007, 05:00 AM
Warden is not an algorithm.  Warden is binary code executed on the client.
It's official.  You're retarded.  You have lost.  Please leave.
You're retarded. Have you forgotten the contents of a warden module already?
You fail worse than Insolence.
Grif: Yeah, and the people in the red states are mad because the people in the blue states are mean to them and want them to pay money for roads and schools instead of cool things like NASCAR and shotguns.  Also, there's something about ketchup in there.

warz

How did insolence fail? I think he means that Warden cannot be summed up into one single algorithm. It's not as simple as Camel makes it sound. Camel has the right idea, though. Everyone here is correct in their own argument. I know who UserLoser is speaking about, and I also can verify that he has a Warden implementation. I've never seen it in action, and can't truly verify, but I have no reason to doubt him.

Camel

#44
Quote from: Hdx on August 13, 2007, 03:00 AM
[offtopic]
I would like to see your framework, both because I want see your implementation of the MCP (Hey i'm lazy and i'm only like 1/3rd the way done)
And 2) I want to see how you use JBLS 0.o
~Hdx
[/offtopic]
http://bnubot.net/
My MCP connection class is close enough to complete to log on to a character, but the GUI plugin that you use to control it will automatically pick the character closest to expiring to log on to.

Quote from: Insolence on August 13, 2007, 05:00 AM
QuoteAlso, knowing nothing about warden, I can say with absolute confidence that UL is correct. No matter how dificult it is to reproduce, it's not infinitely complex. If D2 can calculate warden responses, it can be emulated, period. Warden can only be as complicated as its algorithm; determine the algorithm, and you can reproduce it.
That's the thing--Warden is not an algorithm.  Warden is binary code executed on the client.  Blizzard could send you new Warden data any time it wants, doing anything it wants to the client.  Warden could do anything client side, you cannot emulate that unless you're using an actual Diablo II client.
It is still an algorithm; there are limits to what the binary code the server sends you can possibly do, even if those limits have enormous boundaries, they're not infinite, and therefore there must be more than one possible solution. Am I wrong?

I'm never going to attempt to reverse Warden, but if I were, I would start by learning what the boundaries of the executable code are. Since it is essentially raw machine code, it sounds those boundaries are very wide. It should be safe to assume that the warden code will only do things like look at the running process memory, and look for external hacks. Since your warden re-implementation won't look for external hacks - it wouldn't make much sense to re-implement it legitimately, although you could - you only need to know what a running Diablo 2 process looks like.

Having done this for close to eight years now, I've learned that most things can be implemented in a simpler way than their worst case solution. I can't think of a simpler solution, but I'd be shocked if no one on this forum could.

|