|  | 
	
	
		| Guinn Wizard
 
 
 Joined: 03 Mar 2001
 Posts: 1127
 Location: London
 
 | 
			
			  |  Posted: Tue Jul 29, 2008 9:08 am 
 [2.34] CMUDPro.EXE /REGSERVER crash
 
 |  
				| Installing CMUDPro for the first time on this machine. 
 Windows Server 2008 x64 SP1, which is same kernal as Vista x64 SP1.
 I'm running as a proper administrator etc, UAC turned off.
 
 Installation goes fine until it comes to the 'CMUDPro.EXE /REGSERVER' line, where a box pops up telling me CMUDPro has stopped responding and must close.
 Installation continues happily and completes but CMUDPro will not start now.
 
 Event Viewer says
 
 
 
	  | Quote: |  
	  | Faulting application cMUDPro.exe, version 2.34.0.0, time stamp 0x488e7b69, faulting module unknown, version 0.0.0.0, time stamp 0x00000000, exception code 0xc0000096, fault offset 0x000b3650, process id 0xb2c, application start time 0x01c8f15937ba079a. |  
 
 
 
	  | Quote: |  
	  | Fault bucket 863407364, type 1 Event Name: APPCRASH
 Response: None
 Cab Id: 0
 
 Problem signature:
 P1: cMUDPro.exe
 P2: 2.34.0.0
 P3: 488e7b69
 P4: StackHash_8c5a
 P5: 0.0.0.0
 P6: 00000000
 P7: c0000096
 P8: 000b3650
 P9:
 P10:
 
 Attached files:
 C:\Users\D\AppData\Local\Temp\WER46A.tmp.version.txt
 
 These files may be available here:
 C:\Users\D\AppData\Local\Microsoft\Windows\WER\ReportArchive\Report0e331e8a
 |  
 The contents of the crash report is
 
 
 
 
	  | Quote: |  
	  | Version=1 EventType=APPCRASH
 EventTime=128617954871988273
 ReportType=2
 Consent=1
 UploadTime=128617954902269538
 Response.BucketId=863407364
 Response.BucketTable=1
 Response.type=4
 Sig[0].Name=Application Name
 Sig[0].Value=cMUDPro.exe
 Sig[1].Name=Application Version
 Sig[1].Value=2.34.0.0
 Sig[2].Name=Application Timestamp
 Sig[2].Value=488e7b69
 Sig[3].Name=Fault Module Name
 Sig[3].Value=StackHash_8c5a
 Sig[4].Name=Fault Module Version
 Sig[4].Value=0.0.0.0
 Sig[5].Name=Fault Module Timestamp
 Sig[5].Value=00000000
 Sig[6].Name=Exception Code
 Sig[6].Value=c0000096
 Sig[7].Name=Exception Offset
 Sig[7].Value=000b3650
 DynamicSig[1].Name=OS Version
 DynamicSig[1].Value=6.0.6001.2.1.0.272.7
 DynamicSig[2].Name=Locale ID
 DynamicSig[2].Value=2057
 DynamicSig[22].Name=Additional Information 1
 DynamicSig[22].Value=8c5a
 DynamicSig[23].Name=Additional Information 2
 DynamicSig[23].Value=e6226c4a231d81ec50f03ba41f4ad0dd
 DynamicSig[24].Name=Additional Information 3
 DynamicSig[24].Value=0da5
 DynamicSig[25].Name=Additional Information 4
 DynamicSig[25].Value=324e4b409ff024cce8e35495ad40dea1
 UI[2]=D:\Program Files (x86)\CMUDPro\cMUDPro.exe
 UI[3]=CMUDPro has stopped working
 UI[4]=Windows can check online for a solution to the problem.
 UI[5]=Check online for a solution and close the program
 UI[6]=Check online for a solution later and close the program
 UI[7]=Close the program
 State[0].Key=Transport.DoneStage1
 State[0].Value=1
 State[1].Key=DataRequest
 State[1].Value=Bucket=863407364/nBucketTable=1/nResponse=1/n
 FriendlyEventName=Stopped working
 ConsentKey=APPCRASH
 AppName=CMUDPro
 AppPath=D:\Program Files (x86)\CMUDPro\cMUDPro.exe
 |  |  | 
	
	  | 
		    
			  | _________________ CMUD Pro, Windows Vista x64
 Core2 Q6600, 4GB RAM, GeForce 8800GT
 Because you need it for text... ;)
 |   |  | 
	
		|  | 
	
		| Zugg MASTER
 
  
 Joined: 25 Sep 2000
 Posts: 23379
 Location: Colorado, USA
 
 | 
			
			  |  Posted: Tue Jul 29, 2008 4:43 pm 
 |  
				| Great, it looks like Microsoft is screwing around with COM again.  Are they just trying to kill COM so that people will switch to .NET??? 
 In any case, I have no idea what to do about this.  It works fine in Vista, so obviously Windows Server 2008 is doing something different than Vista when it comes to registering COM objects.  Or maybe it's another problem with 64-bit Windows, but I don't think this happens in normal Vista x64.
 
 Since this seems to be different between Vista and Win2008, I'm hoping that this is just a bug in Win2008 that Microsoft will fix in a patch.
 
 Now, it's possible that this isn't a COM problem but is actually a problem with the Armadillo copy protection system on Win2008.  You might want to download TeSSH at http://www.zuggsoft.com/files/tessh234_setup.exe and see if it works.  Unlike CMUDPro, TeSSH doesn't try to install any COM objects in it's installer.  So it should install properly.  But if you get this same error when you try to run TeSSH after installing it, then that means it's a problem with the Armadillo copy protection and not with the actual REGSERVER command.
 
 Anyway, let me know what you learn from trying TeSSH.  Armadillo is charging too much money for their latest upgrades (their upgrade price is 80% of their full price, which I think is ridiculous).  But if a new version of Armadillo is going to be needed for Win2008, then I'll have to look into this.
 
 Oh, also, is Win2008 currently released to the Public officially, or is it still in Beta testing?
 |  | 
	
	  |  | 
	
		|  | 
	
		| Zugg MASTER
 
  
 Joined: 25 Sep 2000
 Posts: 23379
 Location: Colorado, USA
 
 | 
			
			  |  Posted: Tue Jul 29, 2008 4:45 pm 
 |  
				| Oh, one more thing to try.  Try actually right-clicking on the cmudpro234_setup.exe file and select "Run As Admin" and see if that helps at all.  Also try this when running CMUD.  Vista has a "kludge" where it automatically tries to elevate any file containing the word "setup" in the filename so that installers will always "run as admin".  It's possible that Win2008 removes this kludge and requires installers to elevate themselves manually. 
 |  | 
	
	  |  | 
	
		|  | 
	
		| Guinn Wizard
 
 
 Joined: 03 Mar 2001
 Posts: 1127
 Location: London
 
 | 
			
			  |  Posted: Tue Jul 29, 2008 5:43 pm 
 |  
				| Solved... It was DEP - I had the exact same problem with TeSSH so assumed it was Armadillo, then remembered something about DEP causing problems with it somewhere else, so I added CMUDPro and TeSSH to the list of excluded programs and it runs fine.
 
 Server 2008 is public.  It's Vista as it should have been - I'm running it on my desktop day to day.
 |  | 
	
	  | 
		    
			  | _________________ CMUD Pro, Windows Vista x64
 Core2 Q6600, 4GB RAM, GeForce 8800GT
 Because you need it for text... ;)
 |   |  | 
	
		|  | 
	
		| Zugg MASTER
 
  
 Joined: 25 Sep 2000
 Posts: 23379
 Location: Colorado, USA
 
 | 
			
			  |  Posted: Tue Jul 29, 2008 7:25 pm 
 |  
				| Bah...DEP!  Thanks for solving this.  Yes, DEP *must* be disabled for any software that has any sort of copy protection like Armadillo. 
 |  | 
	
	  |  | 
	
		|  | 
	
		| Rorso Wizard
 
 
 Joined: 14 Oct 2000
 Posts: 1368
 
 
 | 
			
			  |  Posted: Tue Jul 29, 2008 9:21 pm 
 |  
				| 
 
	  | Zugg wrote: |  
	  | Bah...DEP!  Thanks for solving this.  Yes, DEP *must* be disabled for any software that has any sort of copy protection like Armadillo. |  Kinda odd if you have to turn off security functions to properly get a copy protection system to work. Especially for an application like cMUD that could need DEP protection. My opinion is that Armadillo is doing something wrong.
 |  | 
	
	  |  | 
	
		|  | 
	
		| Zugg MASTER
 
  
 Joined: 25 Sep 2000
 Posts: 23379
 Location: Colorado, USA
 
 | 
			
			  |  Posted: Tue Jul 29, 2008 11:36 pm 
 |  
				| The DEP system is designed to prevent (or warn) about executables that modify their own CODE page.  *ALL* Copy protection systems need to modify their code page.  In the case of Armadillo, the EXE file is encrypted.  When loaded into memory, it checks the license and then decrypts the image within memory and then calls the normal Windows routines to run the code.  This is always going to trigger DEP.  Armadillo isn't doing anything wrong...it's just accessing the code page to decrypt the file. 
 Now, I think Armadillo improved this in their latest update so that it properly negotiates with Windows to temporarily turn off DEP during the decryption process.  However, I'm not paying $500 just to get that "feature".
 
 I don't know why you say "Especially for an application like cMUD that could need DEP protection"...why does CMUD need DEP protection?  In my opinion, only Windows system files need DEP protection.  As long as you have a up-to-date virus checker, you don't need DEP protection on normal application EXE files (in my opinion).
 |  | 
	
	  |  | 
	
		|  | 
	
		| Rorso Wizard
 
 
 Joined: 14 Oct 2000
 Posts: 1368
 
 
 | 
			
			  |  Posted: Wed Jul 30, 2008 7:05 am 
 |  
				| 
 
	  | Zugg wrote: |  
	  | I don't know why you say "Especially for an application like cMUD that could need DEP protection"...why does CMUD need DEP protection?  In my opinion, only Windows system files need DEP protection.  As long as you have a up-to-date virus checker, you don't need DEP protection on normal application EXE files (in my opinion).
 |  It is same reason you want DEP to be active for Internet Explorer, or even JPG loaders. If someone finds a buffer overflow in cMUD it might be possible for them to send and execute code on users machines remotely. Local buffers are stored on the stack if I remember correctly. So if you fill a buffer beyond its length you eventually reach the return address of the procedure. If you overwrite the return address so that it instead points to code in the buffer you wrote data to then that data would be executed as code. As the buffer is stored on the stack DEP should detect this and close the application.
 
 The MUD community is probably small enough that it wouldn't be worthwhile exercise to attempt but it definitely is nasty what kind of exploits can be done.
 
 Quite annoying if Armadillo require money for what essentially is a bug fix.
 |  | 
	
	  |  | 
	
		|  | 
	
		| Zugg MASTER
 
  
 Joined: 25 Sep 2000
 Posts: 23379
 Location: Colorado, USA
 
 | 
			
			  |  Posted: Wed Jul 30, 2008 4:32 pm 
 |  
				| Yeah, everyone is annoyed at the Armadillo people and their upgrade costs.  Ever since they were bought by Digital River they have raised their prices and haven't added anything useful to warrant the upgrade cost. 
 As far as DEP, Delphi applications tend to be less prone to this than C/C++ applications.  For example, zMUD/CMUD doesn't use fixed-size buffers for strings like many C applications do.  Strings in Delphi are all dynamic, so there isn't any way to cause an "overflow".  Remember that a lot of the ideas for .NET came from Delphi and a lot of the reasons .NET applications are less likely to have buffer overruns also apply to Delphi.
 
 Sure, it's still possible to write bad code in Delphi.  But the defaults make it more difficult.
 
 What would be nice is if Microsoft implemented DEP a bit differently to accommodate copy protection systems.  For example, only having DEP enabled once the application is running.  This would allow the copy protection system to decrypt the code, but then protect the application while it was running against things like buffer-overflow attacks.
 |  | 
	
	  |  | 
	
		|  | 
	
		| bortaS Magician
 
  
 Joined: 10 Oct 2000
 Posts: 320
 Location: Springville, UT
 
 | 
			
			  |  Posted: Wed Jul 30, 2008 7:06 pm 
 |  
				| Digital River has been assimilating a LOT of payment processors as well. Everything they touch turns to crap. I tend to avoid anything related to them now. 
 Resistance is futile.
  |  | 
	
	  | 
		    
			  | _________________ bortaS
 ~~ Crusty Klingon Programmer ~~
 |   |  | 
	
		|  | 
	
		|  | 
	
		|  |