Register on the forum now to remove ALL ads + popups + get access to tons of hidden content for members only!
vintage erotica forum vintage erotica forum vintage erotica forum
vintage erotica forum

Go Back   Vintage Erotica Forums > Information & Help Forum > Help Section > Tutorials

Follow Vintage Erotica Forum on Twitter
Best Porn Sites Meet Our Girls Register FAQ Members List Calendar Mark Forums Read

Notices
Tutorials Step by step Guides and How to's with screengrabs.


Reply
 
Thread Tools Display Modes
Old 11-11-2011, 02:44 AM   #1
Firebringer
Senior Member
 
Join Date: Sep 2007
Posts: 142
Thanks: 5,338
Thanked 957 Times in 131 Posts
Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+
Default Decoding Digital Red AVI Files

In my quest (some might say obsession) to find new Veronica Vanoza material, I stumbled across her in a Strip Poker game from a company called Digital Red. The name of the game is "All Star Strip Poker - Girls at Work". I downloaded the DVD image hoping to be able to pull content from the disc.

Luckily for me, I found some neatly packaged AVI files in a data directory!! Unluckily, they didn't seem to play on a standard media player (WMP). Figuring that there might be some special codec used to play them, I installed the game on a virtual machine.

The game installed fine and I was able to play it, but I still couldn't play the AVI files outside the game. Decided to take a look at the raw binaries, expecting to see the standard AVI header: RIFFxxxxAVI (where xxxx is the length of the data). Noticed that instead I found (in hex) 0xad 0xb6 0xb9 0xb9 ... Looks like "RIFF" with some kind of simple bytewise encoding scheme -- obfuscation instead of encryption. Took a guess that an XOR scheme was probably used and XORed 0xad with 0xff -- low and behold: "R". Did the same for the next three bytes and "RIFF" emerged from the confusion!!!

So, a quick piece of c code later and I had a binary to de-obfuscate the AVI files. I present, in it's entirety, my simple source used to decode Digital Red AVI files.

Code:
#include <stdio.h>

void main() {
  int i;

  i = getchar();
  while(i != EOF) {
    printf("%c", (i ^ 255) & 255);
    i = getchar();
  }
}
Compile with any c compiler (I used gcc under Linux). Pipe the file into the binary (a.out) and pipe the result to the new file and voila!!!

Example: a.out < e01.avi > e01_fixed.avi


There are several other sexy babes out on these games, so if you run across them, please decode away!!!

firebringer

Last edited by Inglorious; 07-02-2012 at 09:29 PM.. Reason: dead link removed
Firebringer is offline   Reply With Quote
The Following 11 Users Say Thank You to Firebringer For This Useful Post:


Old 12-26-2016, 09:19 PM   #2
bladess
Junior Member
 
Join Date: Dec 2016
Posts: 1
Thanks: 1
Thanked 3 Times in 1 Post
bladess 0
Default

Hi Firebringer,

Nice discovery!

I've been trying to use your code to extract a few Digital Red avi s myself, but it only starts to decode the file, and after 20-50 kB of data it terminates (I have avi files ranging from 5MB to 100 MB).

Did you come across this kind of a problem?
(I was compiling your code under Win with minGW and also with Visual Studio 2015 without success, and I've started to wonder if the EOF is interpreted differently here than in Linux. )

Any help is appreciated,
Thank you!
bladess is offline   Reply With Quote
The Following 3 Users Say Thank You to bladess For This Useful Post:
Old 01-05-2017, 08:38 PM   #3
Firebringer
Senior Member
 
Join Date: Sep 2007
Posts: 142
Thanks: 5,338
Thanked 957 Times in 131 Posts
Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+Firebringer 5000+
Default

Quote:
Originally Posted by bladess View Post
Hi Firebringer,

Did you come across this kind of a problem?
(I was compiling your code under Win with minGW and also with Visual Studio 2015 without success, and I've started to wonder if the EOF is interpreted differently here than in Linux. )
I was able to decrypt all the Veronica material without problem. Using STDIN, the EOFs shouldn't be a problem with windows. I'd suggest you change the "%c" to a "%d" and look for common values when the file ends -- obviously just let it print to the screen rather than redirecting to a file. That should help you determine if it's an input problem, a character problem, or an output problem.

You can also look up any kind of Windows xor program. I know that they are commonly used to evaluate potential malware, so shouldn't be too hard to come by.

Good luck! Glad to see this old code still providing some kind of value to the community!
Firebringer is offline   Reply With Quote
The Following 2 Users Say Thank You to Firebringer For This Useful Post:
Old 01-06-2017, 04:24 PM   #4
retroanalyst
in memoriam erdnuss
 
retroanalyst's Avatar
 
Join Date: Jun 2009
Location: Germany
Posts: 2,077
Thanks: 63,588
Thanked 25,781 Times in 1,879 Posts
retroanalyst 100000+retroanalyst 100000+retroanalyst 100000+retroanalyst 100000+retroanalyst 100000+retroanalyst 100000+retroanalyst 100000+retroanalyst 100000+retroanalyst 100000+retroanalyst 100000+retroanalyst 100000+
Default

Quote:
Originally Posted by bladess View Post
I've been trying to use your code to extract a few Digital Red avi s myself, but it only starts to decode the file, and after 20-50 kB of data it terminates (I have avi files ranging from 5MB to 100 MB).

Did you come across this kind of a problem?
(I was compiling your code under Win with minGW and also with Visual Studio 2015 without success, and I've started to wonder if the EOF is interpreted differently here than in Linux. )
Indeed, this is the problem. By default, the stdio functions in Windows compilers convert "\n" to "\r\n" on write, since the latter (carriage return + linefeed) is what Windows uses to separate lines in text files.

Of course this treatment corrupts binary files, but there is a solution: you can force binary I/O with the _setmode() function in MinGW, like so:

Code:
#include <fcntl.h>
_setmode(_fileno(stdin),_O_BINARY);
_setmode(_fileno(stdout),_O_BINARY);
See http://www.willus.com/mingw/_binary.shtml.
retroanalyst is offline   Reply With Quote
The Following 3 Users Say Thank You to retroanalyst For This Useful Post:
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump




All times are GMT. The time now is 03:56 AM.






vBulletin Optimisation provided by vB Optimise v2.6.1 (Pro) - vBulletin Mods & Addons Copyright © 2017 DragonByte Technologies Ltd.