Black Sunday Hack - Screw You Dave!


DO NOT DO THIS!! It Is A Repost Of A SCAM by DTV!

    This page first contains the FAQ of what happened and then how to fix with hardware. I have been able to fix 22 out of 25 H-cards  as of January 23,2001 , 8:00 PM PST. All cards demonstrated no valid ATR, and upon plugging  into receiver the message "Insert Valid Access Card". NOTE: This does not bring the fuses back to life - it disables the OTP PROM from being selected! I have three fixes to consider here depending on your situation:

FAQ

Repair an ECM'd H Card without oscilloscope (takes a couple of attempts to get a card to work).

Repair an ECM'd H Card with an oscilloscope (for use by experts who plan to fix many).

Modify an existing valid H-card and remove the charge pump enable circutry - card may now be used without emulator.

Email Me - Please only use if you are really having difficulties. I will try and answer your questions as quickly as possible.


FAQ What Happened?
 
 

 Basically, there are six main kinds of modern solid-state memory. I'll quickly run through them all here, then focus on how RAM, ROM, and PROM works, and add some
 commentary on how this all relates to the "Black Sunday" ECM to the end of the list.
 
 RAM (Random Access Memory) This is the one we all know, love, and want more of to stuff into our computers. It comes in two flavors: Static and Dynamic. Static holds
 onto whatever value you set in it until the power goes off, (and sometimes longer than that - Then it's NVRAM) with no further effort needed. Dynamic needs to be
 refreshed periodically, or it "forgets" whatever was written into it. Static is a bit slower to get data into or out of, but requires less hardware. Dynamic is quicker to read
 and write, but requires "refresh" circuitry to keep it from developing amnesia. Any bit of any byte can be set to either 1 or 0 (although for convenience, almost all RAM
 modules are addressed as either an array of bytes consisting of 8 bits, or an array of words consisting of 16, 32, 64, or even 128 bits) Whether static or dynamic flavor,
 RAM is the fastest of all types of memory for write operations. It's also quite fast (but "straight" ROM is sometimes a smidgen faster) to read. H cards have 128 bytes of
 RAM built into the 8051 chip.
 
 EAROM (Electrically Alterable Read Only Memory) Can be thought of as ultra-slow-to-write RAM. Individual bits within a byte can be toggled to either 1 or 0 at will, but it
 takes (relatively speaking) forever. Also slow to read. Not (to my knowledge) used in H cards.
 
 EEPROM (Electrically Erasable Programmable Read Only Memory) Individual words (or bytes, depending on how it's arranged) can be erased to FF, then
 reprogrammed to the desired value by simply applying the right voltages to the right places for the right amount of time. Like EAROM, can be considered ultra-slow
 RAM. This is the part of the H card that programmers operate on, and unloopers dump IMG files to. "Flash Memory" is something of a cross between RAM and
 EEPROM - It has the fast access of RAM, with (usually) the power-off data-retention capability of EEPROM. Bit-Rot usually isn't a problem in either EAROM or EEPROM,
 since most applications using either type "refresh" things often enough to keep it from being noticable. (Bit-Rot is explained a bit more under EPROM)
 
 EPROM (Erasable Programmable Read Only Memory) The entire contents of the chip can be erased (set back to all 1s) by exposing the silicon wafer to intense
 short-wave ultraviolet light, and then the chip can be reprogrammed using a special device. Not used in H cards. These are the chips you see with the little window in
 them. (frequently covered by a sticker of some kind, to keep light out) Impossible to write without specialized (usually in a separate box, very rarely built into the device
 the EPROM is part of) circuitry. Medium-fast to read. Subject to "Bit-Rot" - an unpredictable, long-term (on the order of 10-15 years) effect where some bits may "forget"
 what they're supposed to be if the device doesn't get reprogrammed occasionally.
 
 PROM (Programmable Read Only Memory) Cannot be reset. These are the true "write-once" memory chips. From the factory, a PROM memory module has every
 addressable bit set to the value "1", or "on". To program such a beast, you *usually* need a specialized, stand-alone programming device, but occasionally, the circuitry
 needed is included in the device that uses this type of memory. Programming is accomplished by setting some of the bits to "0" or "off" to give the patterns needed to
 make up a byte's value. Once any given bit has been set to 0, it will remain 0 forever. Theoretically, that is - "Bit-Rot" can come into play in PROM, just like EPROM. The
 16 bytes from 8000-800F in the H card appear to be PROM. Usually decently fast to read, and (relatively speaking) slower than molasses in January to write.
 
 ROM (Read Only Memory) Cannot be written to at all, and cannot be erased/changed short of physical damage to the wafer that it was built on. Comes from the factory
 pre-programmed, and that's the way it stays, forever and ever, world without end, amen. Impossible to write, usually quite speedy to read, frequently rivalling RAM. Like
 PROM, may be subject to "Bit-Rot", but again, we're talking several years before it becomes a significant problem.
 
 
 And now, a few words about the operation of RAM/ROM/PROM, and how they relate to the excrement that has impacted the air-moving device since the Black Sunday
 ECM came down from the bird.
 
 A byte of RAM memory is a set of 8 cells that can each hold a one or a zero. Which cells have 1s in them determines the value of the byte when you read it. With RAM,
 you can change the values any time you like. You can think of that byte as 8 switches that can be turned on or off in different combinations to give you various values.
 
 A byte of ROM is similar, in that it has 8 cells that can each hold a 1 or a 0. Unlike RAM, these 1s and 0s are fixed. Instead of the
 "switches" that RAM has, you can think of each bit-cell in a byte of ROM as having either a wire (for a 1) or no wire (for a zero). They can't be changed once made. The
 wire (or lack of one) is a permanent thing. (Subject to the limitations of "Bit-Rot", described above under the heading EPROM)
 
 A byte of PROM has characteristics of both RAM and ROM. Like RAM, you *CAN* write to it, under certain circumstances. Like ROM, once written, it's *FOREVER*. Think
 of a byte of PROM as being 8 microscopic fuses. When the chip is made, all the fuses are "good". If you could see it at the microscopic level, it would look something
 like this: ( each | is a fuse that isn't blown - it has the value "1" )
 
 
 | | | | | | |
 
 
 and would have the value FF, or 255 in decimal.
 
 Now, let's say you want the byte to have the value B7 (That's 183 in decimal, and in binary, 10110111) To write that value to it, you deliberately burn out two fuses in the
 byte, leaving it looking like this: (| = unblown fuse = 1, : = blown fuse = 0)
 
 | : | | : | | |
 
 From that point, it is entirely possible to write to the byte again, but there's a catch. You can only "blow" more fuses. You can't "un-blow" fuses that are already blown.
 (That's where the "write-once" description comes into play) This means that a number that needs one of the fuses that's already blown out is going to be impossible to
 write. (You can write it, but when you read it back, it isn't going to be the value you wrote)
 
 So why is this a problem?
 
 Normally, byte 8000 of the H card holds the value 33 (in Decimal, 51. In binary, 00110011) and the byte looks like this:
 
 : : | | : : | |
 
 But after being hit by DTV's Black Sunday ECM, the byte is set to 00 - it now looks like this:
 
 : : : : : : : :
 
 There are no fuses left to blow out. They're all gone. That means that forever and always, byte 8000 of your ECMed card is going to say "I'm holding the value 00" when
 asked.
 
 Why does this loop the card? VERY early after the card gets powered up and reset, the 8051 machine-language equivalent of this code executes:
 
 In C: if (*(unsigned char *)0x8000 != 0x33)
   for(;;); /* Loop until the power fails or we get a reset signal */
 
 In BASIC: 10 if peek(8000) = 21 then goto 30: REM 21 is the decimal value of 33 hex 20 goto 20 : REM Loop until the plug is pulled or reset happens 30 REM Keep on
 truckin'. All is well.
 
 This check is in the card's ROM, so it can't be bypassed or changed. Reprogramming the card won't do anything useful, since the ROM doesn't even get looked at, let
 alone messed with, by programmers (or
 unloopers, for that matter) and even if it did, it wouldn't do anything useful, since ROM can't be changed (short of actually damaging it). The check can't be bypassed by
 something like the idea used in the 303 mod, since at the time the check gets done, the card hasn't even considered the idea of seeing if it's in an IRD or not.
 
 So how can it be fixed?
 
 The simple answer: I'm sorry to be the bearer of bad news, but the fact is, it can't. Congratulations. If you got hit, your H card is (at least for now) nothing but an
 expensive blue ice scraper. Life sucks. Thank Dave. It's only TV.
 
 The more extended answer: If you've got the micro-tools to "rebuild" the blown fuses on the chip, you could go that route, but unless you're a chip manufacturer, or have
 access to that type of equipment somehow, you ain't got a prayer. We're talking about electron microscopes to see the little fuses, microscopic tools for accurately
 depositing single atoms onto the silicon wafer itself, etc. In other words, trying to do it is going to require way more money, knowledge, equipment, and effort than most
 any of us are capable of applying to the problem.
 
 Mention has been made of a "boot loader" that *MIGHT* be able to get around the problem, but I'm not going to hold my breath on it.
 Effectively, it would have to be a sort of "mini-unlooper" that can automatically glitch past the check every time a reset happens (and a reset can happen at any time, for
 any reason, or for no reason at all), then allow the card to go back into normal operating mode. Even if such a device is created, the ATR strings I've seen reported on
 "Black Sunday" cards aren't "normal", so they may throw the IRD into fits. Only time will tell. Hang on, folks... It's likely to be a bumpy ride!
 
 
 But what about the cards that Dave has fixed since the ECM??? Why can't we do the same thing?
 
 This one refers to the sporadic reports coming in of cards that were "fixed" by making a call to Dave.
 
 As of this moment, this writer believes that the "reset" cards suffered some less-drastic problem that was either totally unrelated to the ECM (Simple coincidence that it
 happened when it did) or was a "Hmmm... I'm not sure this is *REALLY* a bogus card, but something is suspicious, so I'll knock it out just to be sure. But to be safe, I'll
 leave it so 'daddy' can fix it." action performed by the hit.
 



Repair an ECM'd H Card without oscilloscope


Tools required:

Sharp knife
Magnify glass would help
Pin
After the OTP is disabled you may need an unlooper depending on whether you have screwed with GLITCH.
 

Step 1 > Access the die.

The H Card has a plastic film on the top. This is used to protect the die and adds durability. This cover is easily separated and pealed off with the use of a sharp knife. Start on an edge and carefully separate the thin transparent coating from the card like shown below:


 
 

Step 2 > With the coating removed, hold the H card to the light and mark where you can see the die. It is easy to find as the card looks "imprinted" there. Be sure to use a sharp knife at an angle and carefully cut the thin paper-like cover exposing the die. There are fine wires underneath so stay as close as you can to the edge. Do the top of the card first, then the sides. When you have the chip die exposed check carefully to ensure you haven't damaged any small wires.


 

You should be able to see a small die and a few wires leading to the contacts below.
 

I could not get a good picture of the die so I made this picture of the shapae of the die for the next step.
 

Step 3 > Disable the gating logic.


 
 

As your card was ECM'd simply disabling the charge pump is not enough. The OTP enable gate must be removed which causes the original EEPROM to be present instead.


 

Using a very sharp knife carefully scratch the OTP enable circuitry. This should remove the enable connection and render the OTP non selectable. The EEPROM will now be used instead. Make sure not to scratch too hard or you could crack the die :-( and don't scratch to far into the die as you want that happy circuitry! :-)
 

Step 4 > Cover the die die by taping the flap back. Place H Card in programmer/unlooper and check for a valid ATR. If you get an ATR or anything other than "Reset Failed" then proceed to unloop the card. If your card returns no data to a reset then go back to step 3 and try again.

Good Luck!



Repair an ECM'd H Card with an oscilloscope (for use by experts who plan to fix many).



 

Follow the steps 1 & 2 above except use a DSO (Digital Storage Oscilloscope) to find the charge pump/OTP enable gate
 

Step 3 > Finding the OTP or DSO.

Drill a hole in your programmer so you can expose the chip die when the card is inserted. Insert the card exposing the die and apply power. Probe with a pin on your probe in the OTP area until you find the signal:

(sorry about the blurr but I was holding the camera while holding the scope probe and having someone here click the mouse).

Have your scope set up for 2V/div and 10uS/cm.

You will have found the OTP enable line when you see the signal above (you won't find much more activity inside as the card is in a continual loop doing virtually nothing.

When you find this signal push hard to break the gates involved in switching the OTP in place of the EEPROM.

You should now have an ATR on reset. Program/Unloop the card as needed.



Modify an existing valid H-card and remove the charge pump enable circutry


This is VERY important for people who still have a valid H card and don't want to run an emulator. Dave can't kill your card if he can't write to the OTP!

Follow Steps #1 and 2 to gain access to the die. You can either try and blindly scratch off the charge pump logic:
 



 
 

or an easier way is to find the exact location and destroy the gate. The charge pump circuitry is easy to find as it gates 12V to the PROM VPP line (program). The signal you are looking for is shown below:


 

Simply push the pin attached to the scope probe into the die carefully until the 12V signal is gone.
 




I can be E-mailed at blacksunday@blacksunday.freeservers.com

I am working very hard with others to try and make this easier and hopefully tomorrow we will have a template you can print out and use on the die.
 

BE CAREFUL AND TAKE YOUR TIME - RUSHING COULD DESTROY YOUR CARD. MAKE SURE YOU PROTECT YOUR VALID H CARDS!
USE INFO AT OWN RISK! EMAIL IF YOU HAVE QUESTIONS!
 

This hack was brought to you by Inspector #12.