It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
^^^ all of that.
Diablo also opts-out of ASLR, which makes it trivial to exploit (network receive buffers are at a static/fixed address).
avatar
CLBrown: DEP is a bad idea overall, or at least a very bad implementation. Despite claims of it being "for security," the main upshot of DEP is that it disables a lot of older software...
avatar
advowson: I disagree. DEP is a security feature, and a useful one. Any programs broken by it were always wrong, but due to OS limitations and hardware limitations, were historically permitted to run despite being wrong. Most software should never encounter a failure caused by DEP, because most software should have all its executable content in a properly marked text section. The programs most likely to be affected by it are programs whose authors thought they would be clever and generate code at runtime (allocate a read-write page, write code into it, then call that code), but who were not quite clever enough to read the documentation and note that they were supposed to mark the memory as executable before calling into it (and, if at all possible, mark it read-only at the same time, so that it goes from read-write to read-execute, but is never read-write-execute). Most programs have no business generating code like this, and will never notice the presence of DEP.
avatar
CLBrown: Unless you're on a public machine, with people running software on the same computer you are... or unless you randomly stick disks and USB sticks into your machine without knowing where they came from... this really isn't much of a risk.
avatar
advowson: This is an incorrect explanation of the threat model. The threat model for DEP is that you run a program which, due to a bug, allows malicious input to redirect execution to attacker-supplied data. Without DEP, that data is executed, allowing the attacker to run code with the permissions of the exploited program. With DEP, the application receives an access violation and crashes, depriving the attacker of the ability to abuse the program's permissions. Malicious input can be delivered over the network, or be left in a local file to be triggered when a vulnerable program opens it. If you run without DEP, and run a program which can be exploited by malicious data, you are at risk if the program has any way to receive malicious data, be that interactively from another player in game, interactively from the chat server, by e-mail, or by malicious USB stick. If you run only programs with no such exploits, then you do not need DEP. Most of the major exploits DEP was intended to block were delivered over the network, usually to vulnerable Windows system services. Such users received no protection from refusing to share their computer with hostile parties.
Well, I suppose if you regularly expose yourself to potential exploits... and I guess if you go to "lan parties" or the like, or perpetually play peer-to-peer network games with strangers... this might be a serious issue.

But I have a system here which nobody but me uses. I don't use unsecured connections, don't download unidentified software without giving it a thorough vetting first, don't just pop thumbs or disks into my system without prior vetting, etc. And... perhaps most significantly in this case... I don't use insecure "chat servers," click on unknown links in emails, or allow anyone access to my local network without my direct oversight.

But, for, say, a college kid with a bunch of wireless connections, in a dorm where you KNOW people are running exploits and all sorts of sleazy stuff... yeah, I'd recommend leaving DEP on.

For me, literally 1/2 of my owned software fails if DEP is allowed to run on it. I have a LOT of software, including quite a bit of older stuff. It's not ALL "hackily written." The reality is, the sort of "protection" which DEP provides was never even DREAMT of until a few years back. Now, if you could go back and rewrite the full code base of all software developed before the introduction of the concepts upon which DEP is based... sure, it would be a "win-win" all around. But it's not just "badly written" software which it interferes with. It's anything older than DEP, effectively.

I'd think this would be a no-brainer for people buying stuff from "Good Old Games." Unless GoG fixes the issues, the vast majority of (non-DOS, non-ScummVM) games out there would not be able to be sold in workable fashion with DEP in place.

This, in fact, is really what GoG's techs seem to do best... fix the basic incompatibilities. Sometimes simply through creating a compatibility-database-entry set for a given program. Sometimes by altering the core elements of the code in some small (but signifiicant) way. And that's why I tend to buy stuff from these guys.
avatar
CLBrown: The reality is, the sort of "protection" which DEP provides was never even DREAMT of until a few years back.
That simply isn't true, other platforms older than x86 had W|X/NX protection since their inception. And even in the case of x86 NX has been around since ~2000, much more than "a few years".
The flags for allocating executable memory existed before DEP was implemented and should have been used. Assuming all dynamically allocated memory will be within the code segment is a programming error regardless of whether it causes a fault (and in the end, it did).
This, in fact, is really what GoG's techs seem to do best... fix the basic incompatibilities. Sometimes simply through creating a compatibility-database-entry set for a given program. Sometimes by altering the core elements of the code in some small (but signifiicant) way. And that's why I tend to buy stuff from these guys.
Except in this case they released the game without any fixes and weren't even aware of the issue.
Then they added a small section in the troubleshooting guide telling people to disable DEP. It failed to mention that changing the system DEP policy requires a reboot.
Then somebody posted which bytes to hexedit as a workaround, and GoG updated their package.
Then they made the exact same mistake with Warcraft2 which is still currently broken.
avatar
CLBrown: Well, I suppose if you regularly expose yourself to potential exploits... and I guess if you go to "lan parties" or the like, or perpetually play peer-to-peer network games with strangers... this might be a serious issue.
I receive e-mail from people I don't trust to practice good security hygiene, and I don't trust the authors of my e-mail client to know what they're doing (they included support for reading HTML e-mail, so they're clearly untrustworthy :)), so yes, I regularly expose myself to potential exploits. Remember, there were a number of vulnerabilities over several years where simple receipt of the malicious message would provoke the mail client bug, independent of whether the user clicked any links in the message. I suppose you only browse the web using a specially hardened version of Lynx? :) As for peer-to-peer games: we are discussing this on a forum dedicated to the re-release of a game known both for its embarrassingly vulnerable code and for its wide following. Back when Diablo was very popular, you could easily find dozens of games to play with complete strangers, at any time of day.
avatar
CLBrown: I don't use insecure "chat servers,"
So you stay off battle.net?
avatar
CLBrown: For me, literally 1/2 of my owned software fails if DEP is allowed to run on it. I have a LOT of software, including quite a bit of older stuff.
Without names, I cannot confirm or disprove this statement. I doubt that DEP is the problem though, unless your next statement is wrong:
avatar
CLBrown: It's not ALL "hackily written."
If it fails under DEP, it is poorly written. Full stop. Some of Microsoft's access control mitigations (like User Account Control) had nasty consequences, but DEP (a security mitigation) is well done, as far as I know. If you have a specific use case which DEP should have permitted, but does not, please describe it.
avatar
CLBrown: Now, if you could go back and rewrite the full code base of all software developed before the introduction of the concepts upon which DEP is based... sure, it would be a "win-win" all around. But it's not just "badly written" software which it interferes with. It's anything older than DEP, effectively.
Wrong. Anything done correctly the first time, which as far as I know covers everything generated by popular compilers, runs fine under DEP. If you have a specific example of a program that, through no fault of its author, is DEP-incompatible, I'd like to see it. As far as I know, all DEP-incompatibilities are because the author decided to be clever and generate code outside the confines of the compiler, but not be so clever as to do it the way the compiler would have done.
avatar
CLBrown: I'd think this would be a no-brainer for people buying stuff from "Good Old Games." Unless GoG fixes the issues, the vast majority of (non-DOS, non-ScummVM) games out there would not be able to be sold in workable fashion with DEP in place.
Half right. Old software has plenty of problems with current systems, but DEP is not to blame for this. Other bad decisions, like using CPU clock speed as a timer or assuming no access control on files (writing configuration to the Windows install directory) are far more common. There are also other problems where Microsoft simply removed system functionality the old games expected to access.
avatar
tfishell: Wouldn't the original non-GOG Diablo also run on XP?
Of course... but for some reason the GOG guys don't have XP as supported in their store page! Also, I don't know anything about the net code and I am speaking only of the single player campaign. Looks like other people here are looking into the net code..
Post edited May 14, 2019 by lionell999
avatar
tfishell: Wouldn't the original non-GOG Diablo also run on XP?
avatar
lionell999: Of course... but for some reason the GOG guys don't have XP as supported in their store page!
They don't test on XP anymore because GOG are focused on modern operating systems, which they seem to consider Win 7 and above. (old games that run on modern machines/OSes)
No DEP issue with Wc2 or Diablo or any game. On desktop DEP enabled on default set (only certain system program\services), on 2 notebooks - fully disabled.
Windows security - what is that broken. CD Warcraft 2 Bnr and "classic" GOG versions D1\Wc2 always work perfect. If not for someone - it them fault.