March 26th, 2006

Neko (lofulah)

Hah, take that Pirate Buster!

Pirate Buster is an annoying piece of software from Trinity Security Systems that allows companies to encrypt various things, and decrypt them on the fly. It keeps people from printing/saving/screen-scraping by throwing up a "About Trinity Security Systems Encryption Technology. [IMAGE-LOGO] ACCS-TECH".

From what I can tell, it senses any attempt to read what's being displayed to the screen: this includes, but probably isn't limited to, all screen capture software (SnagIt, AnyCapture) and VNC software (tightVNC). I couldn't get remote desktop working, so I'm not too sure if that's covered. Either way, props to you guys, Trinity security systems: you got most things covered. Well, rather, everything that you could control.

There's still ways around it though. :D

First giveaway: The image gets replaced by the "About...ACCS-TECH" image as soon as any sort of screen access program starts. And is restored when they are killed off. This means the protection system is actively checking.

And since it's actively checking for stuff, it means we can put it to sleep for a while, so we can do what we want. Hello, process suspend.

Shall leave it up to the users to do some more research and figure out how to suspend processes out of respect for the security system that wasted at least an hour's worth of my time in hacking it.

There's ways around this hack, of course, but they're not pretty. One possibility would be to take Sony's route :P and install a rootkit, masking a process that will watch for any sort of suspending activity. This would be VERY BAD™ for a large number of reasons. Certainly, you wouldn't get into as much trouble as Sony might, but... still, BAD. Secondly, some sort of paired process that would ensure activity on both sides, making it possibly very hard to suspend.. both at once? I don't know.

Dear Trinity Security Systems Encryption Technology/ACCS-TECH,
I would much rather you didn't implement the above. Leave things as they are right now, because as a mac user, this is the only way for me to be able to enjoy the content on my own laptop.

Granted, it's also highly unlikely that I'll ever download another doujinshi like this. :: shrugs::
Neko (lofulah)

C malloc/pointer question

What's the difference between:

image_cover_t* new_cover; /* the new cover *
/* Allocate the new image cover. */
if (NULL == (new_cover = malloc (sizeof (*new_cover)))) {...


int *iptr;
iptr = (int *)malloc(10 * sizeof(int));
if (iptr == NULL){...

Namely, the malloc line... I don't understand why one uses sizeof(address-of-variable) and another uses sizeof(variable-type)? Help?

(Yeah, this is probably absurdly basic, but.. I dunno. This is what I get for learning Java before C, and not really fully understanding memory)

Like.. would, "if (NULL == (new_cover = malloc (sizeof (image_cover_t)))) {..." work too...?