Allegro.cc - Online Community

Allegro.cc Forums » Off-Topic Ordeals » No-CD Crack programming?

This thread is locked; no one can reply to it. rss feed Print
No-CD Crack programming?
Carrus85
Member #2,633
August 2002
avatar

Ok, here is the deal. You know how on the internet you can find tons of "No-CD" Programs that allow you to run games without having the CD-Rom in the drive? I was just wondering, how would one go about programming something like this. For example, I'm one of those people that absolutely hates installing a program completely on my hard drive, yet still being required to insert the CD, scratching my precious disk, really annoys the crap out of me. So basically, I'm asking, how would one go about programming one of these no-cd crack programs? I'm not looking to distribute it, I'm not looking to give it away... I'm just looking to prevent myself from having to insert my CD every time I want to play a different game.

FYI... the particular game that is giving me the headaches is NWN: SOU v.1.32. Gamecopyworld has the No-CD, but I get a CRC error on it. Does anyone know how you would go about programming one of these? ;D

Zaphos
Member #1,468
August 2001

Um, well, I think the only way to do it is to reverse engineer their executables. This means running the .exe through a machine-code -> asm tool or the like, finding the parts that do cd access, and changing them so that that cd access is no longer needed. It's not really something that's trivial, so far as I know.

Edit: Although, one other way to do it is to have some sort of software that emulates a cd-rom drive. This is a more general solution; on linux it is done by simply mounting a cd image as a cd drive, but I'm not sure how one could do it on windows. You'd probably need to have some sort of driver-based hack.

Carrus85
Member #2,633
August 2002
avatar

I mean, theoretically, wouldn't it be possible to just write something along the lines of a "ECHO SERVER" or something stupid like that... just give the program whatever it is looking for. All the program does is check the presence of the CD-ROM... if I can simply intercept the "Return Zero, the CD is not present" and replace it with "Return one, the CD is present", everything will be perfectly fine, right? Not easy to do, I know... but theoretically possible...

And the problem with reverse-engineering, is that it would require you to recompile the executable, no? Not exactly an easy thing to do in many cases...

EDIT: Actually, there is a way to do ISO emulation on windows, Called DAEMON tools... the problem is though, I already have the entire contents of the CD-ROM on my hard disk. To have an ISO would be a replication of that data. I'm trying to reduce Hard disk usage here, not duplicate the data accross the drive twice.

EDIT2: Although a simple ISO emulation doesn't work with SoU... it hangs at load for some reason. Quite strange. I belive it has something to do with the copy protection corrupting the ISO when you rip it from the disk, but I'm not positive.

Derezo
Member #1,666
April 2001
avatar

There's a forum somewhere I found on google that discusses game specific "hacking and cracking" techniques. There was a post in there I found quite informative, which was about 5 or 6 pages long. It was a little beyond me though, so I never got into actually doing it.

Daemon tools would work.. but that does take up a lot of drive space.

I use to use No-CD cracks for warcraft 3.. but they had updates so often and it got very annoying to keep finding good versions.. so I just said screw it and use my CD's.

BlindRead is a good program for getting really good images.. but I've never used iso's with it, might just be the same as any other in that respect.. great for making 1:1 copies of games though...

My stupid WarCraft3:TFT CD has a fatal scratch on it. I really wish I would have backed it up with a good copy.. all I have is a bad copy without copy protection data written.

(All my games are originals.. in November I ditched all my pirates.. then this month I ditched all my mp3's and bought a couple hundred dollars worth of CD's, after I bought a nice stereo system.. low quality (128kbps) mp3's sounded like crap on it.)

"He who controls the stuffing controls the Universe"

Zaphos
Member #1,468
August 2001

With reverse engineering you do not recompile, or, at least, it's not required. You should in theory be able to just change the bits that need changing (which you can identify with a exe->asm tool) in the appropriate fashion, then run the new exe. That said, there should be no problem with recompiling; if you can translate the exe to asm, I don't see why you couldn't do the reverse! The real problem is that the program can add measures against reverse engineering like checksums, which will, though not unbeatable, make your life even more of a pain.

Anyway, I think that the game, if it has decent copy protection, will actually read some values from the CD on boot to check that it is THE cd. I mean, can you have just any old cd in the drive at boot, or does it have to be the right one? Anyway, in theory I suppose you could intercept communication between the cd device driver and the game, memorizing only the info the game sends to the cd and what the driver sends back. Then you could write a fake driver that replicates that limited behavior.

Derezo
Member #1,666
April 2001
avatar

Quote:

I mean, can you have just any old cd in the drive at boot, or does it have to be the right one?

It's gotta be the right one. Using BlindRead and BlindWrite you can make identical copies of originals... or with Daemon tools it'll fake them for you.

"He who controls the stuffing controls the Universe"

Carrus85
Member #2,633
August 2002
avatar

The problem is that SoU doesn't even work from a copy... it is really screwed up. You can copy the disk all you want, and it doesn't function correctly. (or so my computer-semi-litterate friends have been telling me). They have some friggen evil protection on it. I mean, if I could simply copy the disk I wouldn't be that opposed to just making a copy and using that CD until it crashed and burned... I'll give clone-CD a try when I get home... hehehe...

Zaphos
Member #1,468
August 2001

Derezo: I was responding to this: "All the program does is check the presence of the CD-ROM... if I can simply intercept the "Return Zero, the CD is not present" and replace it with "Return one, the CD is present", everything will be perfectly fine, right?" - Carrus.
And the theory I stated was in response to this: "I'm trying to reduce Hard disk usage here, not duplicate the data accross the drive twice." - Carrus

Carrus85
Member #2,633
August 2002
avatar

Zaphos-- note "the CD is ___" not "a CD is ___" It is very important to notice the redundant words in my sentences...

Zaphos
Member #1,468
August 2001

Okay, I misunderstood. But I think my advice is still valid; to do what you want to do you, you need to somehow create a driver that emulates the behavior of a cd driver when the cd is in the drive and being accessed by the game -- this seems simple: record the input-output and copy it.

Unfortunately, I can't find any good references on driver programming in windows; MS seems to want people to be a member of some group to get their driver development kit, and the tutorials I found on the subject seemed to be related to other proprietary solutions or to expect you to be using win95. Furthermore, I don't think being required to change your cd driver to a funky hacked one to play the game is any more convenient than needing to put the cd in the drive.
So it's reverse engineering or CD copying. Oh well!

Carrus85
Member #2,633
August 2002
avatar

Too bad there isn't a way to just "step over" the code in the program when it occurs... so when it pops up with the "We cannot locate teh CD. Press a key to quit" dialog, you just hit alt-f10 or something stupid like that right over the top of it until it gets to the next part of the program... Well, that would work for scripting, but not for Machinecode... oh well...

Better luck next time.

Marcello
Member #1,860
January 2002
avatar

Quote:

bought a couple hundred dollars worth of CD's

so how does it feel to be the proud owner of 5 cds? ;)

Marcello

Andrew Ellem
Member #2,835
October 2002

The general process for cracking a cd-protection scheme, is to simply find the code that does the check and jump over it. Finding the parts of the code that you want to skip is the hard part, since it's all machine code.

One program that lets you step through machine code is SoftICE. It's originally designed for debugging drivers and other kernel-mode stuff, but would work well for regular programst too.

However, I doubt that you're spending as much time swapping CD's as it would take to crack a program yourself. Just try searching harder for a crack.

miran
Member #2,407
June 2002

Why do you need a crack to play a game without the CD? What's wrong with just making an iso of the CD or something and mounting it with Daemon tools?

--
sig used to be here

Chris Katko
Member #1,881
January 2002
avatar

As he mentioned before, ISO's take space.

Btw, I hate to admit it, but this is still illegal thanks to the DMCA. :)

-----sig:
“Programs should be written for people to read, and only incidentally for machines to execute.” - Structure and Interpretation of Computer Programs
"Political Correctness is fascism disguised as manners" --George Carlin

Zaphos
Member #1,468
August 2001

Miran: To summarize the discussion already in this thread: It requires a big hard drive. Also, some cds have copy-protection schemes that make it somewhat a pain to do. Aside from that, nothing.

Etwinox: Discussing how to do it isn't illegal, is it?

Derezo
Member #1,666
April 2001
avatar

Quote:

so how does it feel to be the proud owner of 5 cds?

At about $10 a CD, that's closer to 20 CD's. (13 actually, but I didn't quite make $200. About $170 after taxes)

The CD's I bought ranged in price from $7.99 to $13.99. All brand name labels, too. :)

Price of CDs went down a lot.. otherwise I wouldn't have considered it.

Canadian currency, of course.

Quote:

I hate to admit it, but this is still illegal thanks to the DMCA.

Personally, I don't care. ;D
It's illegal to J-Walk here... but that's not going to stop me from doing it at 3am in front of a police car. ::)

"He who controls the stuffing controls the Universe"

aquasync
Member #3,964
October 2003

One way of doing it would be using a debugger, such as SoftICE. You can set break points on specific IO, or get a window handle to the message box that says "No CD found" and track it in a disassembler.
That said, its pretty difficult, and for something like nwn, its unlikely you'd be able to do it. Other possibilities are simple emulation layers (I used this to get round a broken dongle based protection recently) - the idea is that typically it makes the same request of the cd, and is returned the same reply. A program can intercept the request, save the data and then emulate it w/o the cd later (ideally they only query a small portion of the cd)
But programs that do that typically don't work well with protection like safedisc etc. Its really just a whole lot easier to use a premade no-cd crack.

Maverick
Member #2,337
May 2002

Etwinox said:

As he mentioned before, ISO's take space.

Btw, I hate to admit it, but this is still illegal thanks to the DMCA.

As long as you actually own the CD you have an ISO of, this easily falls under Fair Use (though, using CloneCD or some other software to rip the ISO could be a violation of the DMCA... probably one of the most retarded things about it; it circumvents Fair Use). Of course, you can't give away copies of the ISO or anything.

Running a game with daemon tools doesn't really qualify as circumventing the copy-protection (and, as such, violating the DMCA), since it's entirely extrenal to the program, and simply simulates a physical CD-ROM in software.

Making your own No-CD crack, on the other hand, is definantly illegal under the DMCA.

Zaphos said:

Discussing how to do it isn't illegal, is it?

It isn't supposed to be illegal. But, the DMCA has been used to bully discussions/seminars/etc. on breaking copy protection into stopping before. Though, I kinda doubt ML's webhost will get an e-mail telling them to take his site offline because of this forum thread...

-Maverick

-----
"the polls here don't change as much because I believe so much in free speakin' that I want everyone a chance to vote at least once, and possibly a few dozen times, that way they are really heard." -Matthew Leverton

LSd016
Member #3,561
May 2003

My idea to do it is to mangle GetDriveType() in kernel32.dll. Too bad it would rarely work, but hey, quite generic at least!

I really have problem with Populous 3, which I wanted to play w/out the CD for certain reasons. No crack worked for me. Any idea why it wouldn't? It's Securom-protected, and all the cracks say "this is not a securom protected program".

____________________________________________
[update soon]

Inphernic
Member #1,111
March 2001

LSd016: Try ClonyXXL if you haven't already. If it still says Securom, try UnSecurom (unless, of course, you have tried that too already :P).

ImLeftFooted
Member #3,935
October 2003
avatar

When i reformate my windows machiene, it splits my main drive into two. i really dont know why or how this happened except that the compaq reformatting cd does it. anyway, ive found out that i can just copy the contents of a cd to the imaginary drive (even tho its supposed to be a hdd) and programs run as if the cd was in my computer. I'm not sure if it would work using ur main hdd but its worth a try. and a hell of a lot easier then cracking the program itself:P

kerick
Member #365
May 2000
avatar

I'd say your best bet is going to be finding another crack. Unless you know assembly, have winasm, softice, and a myriad of other tools...yeah, you're not going to want to try to crack it.

Project %:10% --Pre-Alpha

Carrus85
Member #2,633
August 2002
avatar

Ok. Point taken. I'll try to see if I can locate another No-CD crack program. Just so people understand why I'm not burning ISO's of it... It is mainly because for A) the ISO's take up to much hard disk space on an already quite full disk, and B) For some reason teh protection on the ISO prevents it from emulating correct.

Go to: