Return to Unfiction unforum
 a.r.g.b.b 
FAQ FAQ   Search Search 
 
Welcome!
New users, PLEASE read these forum guidelines. New posters, SEARCH before posting and read these rules before posting your killer new campaign. New players may also wish to peruse the ARG Player Tutorial.

All users must abide by the Terms of Service.
Website Restoration Project
This archiving project is a collaboration between Unfiction and Sean Stacey (SpaceBass), Brian Enigma (BrianEnigma), and Laura E. Hall (lehall) with
the Center for Immersive Arts.
Announcements
This is a static snapshot of the
Unfiction forums, as of
July 23, 2017.
This site is intended as an archive to chronicle the history of Alternate Reality Games.
 
The time now is Tue Nov 12, 2024 1:11 am
All times are UTC - 4 (DST in action)
View posts in this forum since last visit
View unanswered posts in this forum
Calendar
 Forum index » Archive » Archive: General » ARG: SubCity Central
Cracking the VW codes
View previous topicView next topic
Page 1 of 1 [11 Posts]  
Author Message
DM Corleone
Boot

Joined: 20 Jul 2004
Posts: 50
Location: Chicago, IL, USA

Cracking the VW codes

I have written a few JavaScripts for cracking the VW codes.

I posted them at the www.thx-1138.org forum. I can post them here also if anyone is interested. Or, I can Private Message them to you as well.

-Don
_________________
The Consumer Has The Factor Of Advantage!

SUBJECTE 6132 PREFIX GNK (TRUE PROVIDER)


PostPosted: Wed Aug 18, 2004 1:37 am
 View user's profile
 Back to top 
SpaceBass
The BADministrator


Joined: 20 Sep 2002
Posts: 2701
Location: pellucidar

I'd love to see them if you don't mind putting them up as an attachment or something. Very Happy That, or a direct deeplink to them at thx would rule.
_________________
Alternate Reality Gaming
http://www.unfiction.com/


PostPosted: Wed Aug 18, 2004 2:23 am
 View user's profile Visit poster's website
 Back to top 
DM Corleone
Boot

Joined: 20 Jul 2004
Posts: 50
Location: Chicago, IL, USA

I posted them using the CODE display. Each is only about 15-20 lines long.

I'm not sure how to do a "direct deeplink."

-Don
_________________
The Consumer Has The Factor Of Advantage!

SUBJECTE 6132 PREFIX GNK (TRUE PROVIDER)


PostPosted: Wed Aug 18, 2004 2:30 am
 View user's profile
 Back to top 
AnthraX101
Entrenched

Joined: 18 Mar 2003
Posts: 797

Here they are, from DM Corleone:

Code:
<html>
<head>
<title>VW to Solve - 5 Digit ++ Ver. 1.3 ++</title>
<script LANGUAGE = "JavaScript">
   function vwToBinary (vw) {
      vw = vw.toLowerCase();
      vwBin = "";
      for (i=0; i<vw.length;i++) {
         bit = ((vw.charAt(i)=="v")?0:1);
         vwBin += bit;
         }
      return vwBin;
      }
   function binaryToDecimal (binText) {
      var decVal = 0;
      for (y=binText.length;y>0;y--) {
      decVal += parseInt(binText.charAt(binText.length-y))*Math.pow(2,y-1);
         }
      return decVal;
      }
   function decimalToText (input) {
      var textCode = "vxm.gboqpyhwlzt.cfnjrd.uis.a.e@@@@"
      output = textCode.charAt(input-1);
      return output;
      }
   </script>
</head>
<body>
<script LANGUAGE = "JavaScript">
   vwCode = prompt ("Enter A Line of VW Text:");
   for(x=0;x<(vwCode.length/5);x++) {
//      document.write(x+" "+vwCode.substring((x*5),(x*5+5))+" ");
      binCode = vwToBinary(vwCode.substring((x*5),(x*5+5)));
//      document.write(binCode+" ");
      decCode = binaryToDecimal(binCode);
//      document.write(decCode+" ");
      textCode = decimalToText(decCode);
      document.write(textCode);
      document.write(" ");
//      document.write("<br>");
      }
   </script>
</body>
</html>


Code:
html>
<head>
<title>VW to Solve - 6 Digit ++ Ver. 2.1 ++</title>
<script LANGUAGE = "JavaScript">
   function vwToBinary (vw) {
      vw = vw.toLowerCase();
      vwBin = "";
      for (i=0; i<vw.length;i++) {
      bit = ((vw.charAt(i)=="v")?1:0);
      vwBin += bit;
      }
      return vwBin;
      }
   function binaryToDecimal (binText) {
      var decVal = 0;
      for (y=binText.length;y>0;y--) {
      decVal += parseInt(binText.charAt(binText.length-y))*Math.pow(2,y-1);
      }
      return decVal;
      }
   function decimalToText (input) {
      var textCode = ".abcdefghijklmnopqrstuvwxyz@@@@"
      input = Math.ceil((input)/2);
      output = textCode.charAt(input);
      return output;
      }
</script>
</head>
<body>
<script LANGUAGE = "JavaScript">
   vwCode = prompt ("Enter A Line of VW Text:");
   for(x=0;x<(vwCode.length/6);x++) {
//      document.write(x+" "+vwCode.substring((x*6),(x*6+6))+" ");
      binCode = vwToBinary(vwCode.substring((x*6),(x*6+6)));
//      document.write(binCode+" ");
      decCode = binaryToDecimal(binCode);
//      document.write(decCode+" ");
      textCode = decimalToText(decCode);
      document.write(textCode);
      document.write(" ");
//      document.write("<br>");
      }
</script>
</body>
</html>


Code:
<html>
<head><title>VW to Solve - 7 Digit ++ Ver. 1.2 ++</title>
<script LANGUAGE = "JavaScript">
function vwToBinary (vw) {
   vw = vw.toLowerCase();
   vwBin = "";
   for (i=0; i<vw.length;i++) {
   bit = ((vw.charAt(i)=="v")?1:0);
   vwBin += bit;
      }
   return vwBin;
   }
function binaryToDecimal (binText) {
   var decVal = 0;
   for (y=binText.length;y>0;y--) {
   decVal += parseInt(binText.charAt(binText.length-y))*Math.pow(2,y-1);
      }
   return decVal;
   }
function decimalToText (input) {
   var textCode = ".abcdefghijklmnopqrstuvwxyz@@@@"
   input -= 64
   output = textCode.charAt(input);
   return output;
   }
</script>
</head>

<body>
<script LANGUAGE = "JavaScript">
var digit = 7;
vwCode = prompt ("Enter A Line of "+digit+"-Digit VW Text:");
for(x=0;x<(vwCode.length/digit);x++) {
//   document.write(x+" "+vwCode.substring((x*digit),(x*digit+digit))+" ");
   binCode = vwToBinary(vwCode.substring((x*digit),(x*digit+digit)));
//   document.write(binCode.length+" ");
//   document.write(binCode+" ");
   decCode = binaryToDecimal(binCode);
//   document.write(decCode+" ");
   textCode = decimalToText(decCode);
   document.write(textCode);
   document.write(((x+1)/40==(Math.round((x+1)/40)))?"<br>":" ");
   }
</script>
</body>
</html>


Code:
<html><head><title>VW String Length Factoring Program ++ ver 1.3 +++</title></head>
<body>
<script LANGUAGE = "JavaScript">
   vw = prompt("Enter a line of VW Text:");
   factor = new Array (vw.length);
   for (a=0;a<(vw.length/40);a++) {
      document.write(a+": ");
      for (b=0;b<40;b++) {
         document.write(vw.charAt((a*40)+b));
         }
      document.write("<br>");
      }
//   document.write("Text: "+vw+"<br><br>");
   document.write("Length: "+vw.length+"<br><br>");
   for (i=1;i<=vw.length;i++) {
      factor[i] = ((vw.length/i == Math.round(vw.length/i)) ? 1 : 0);
      }
   for (i=1;i<=vw.length;i++) {
      if (factor[i]==1) {
         document.write(i+" x "+vw.length/i+" = "+vw.length+".<br>");
         }
      }
   </script>
</body>
</html>


AnthraX101
_________________
VGhlcmUgaXMgbm8gc3Bvb24u
ll----ll--ll--ll----l---ll---llll---ll--l--ll---llll-ll-l-ll-llll--l-.


PostPosted: Wed Aug 18, 2004 8:58 am
 View user's profile
 Back to top 
AnthraX101
Entrenched

Joined: 18 Mar 2003
Posts: 797

Here are some perl scripts I used, based on Stormalong's work:

(The following should convert every 6 character code into a standard cryptogram. If you change $piece = substr($line, 0, 6, ""); to some other count, it should work for the other lengths)
Code:
#!/usr/bin/perl

$line = $ARGV[0];

$line =~ s/W/1/g;
$line =~ s/V/0/g;

$temp = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz12345678901111111111111111111111111111111111111111111111111111111";
#$temp = "ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba";
$count = 0;
$low = 100;
$high = 0;

while ($line ne "") {
$piece = substr($line, 0, 6, "");
$val = `echo "ibase=2; $piece" | bc`;
chop $val;
@list[$count] = $val;
$count = $count + 1;
}
$count = 0;

foreach $val (@list)
{
#$val = ($val+$rot)%52;
$c = substr($msg, $val-1, 1);
if (!($trans[$val] =~ /./)) {
$trans[$val] = substr($temp, $val-1, 1);
$count = $count + 1;
if ($val > $high) { $high = $val; }
if ($val < $low) { $low = $val; }
}
@count[$val] = @count[$val] + 1;
print "$trans[$val] $val\n";
$result .= $trans[$val];
}
print "$result\n";
print "Count: $count High: $high Low: $low\n";
$count = 0;
foreach $test (@count)
{
print "$count: $test\n";
$count = $count+1;
}


AnthraX101
_________________
VGhlcmUgaXMgbm8gc3Bvb24u
ll----ll--ll--ll----l---ll---llll---ll--l--ll---llll-ll-l-ll-llll--l-.


PostPosted: Wed Aug 18, 2004 9:03 am
 View user's profile
 Back to top 
DM Corleone
Boot

Joined: 20 Jul 2004
Posts: 50
Location: Chicago, IL, USA

Thanks, Anthrax for posting my and your programs.

Mine can be run on any newer browser. Just cut and paste the code into NOTEPAD (or similar simple editor) and save as an html file.

-Don
_________________
The Consumer Has The Factor Of Advantage!

SUBJECTE 6132 PREFIX GNK (TRUE PROVIDER)


PostPosted: Wed Aug 18, 2004 1:25 pm
 View user's profile
 Back to top 
DM Corleone
Boot

Joined: 20 Jul 2004
Posts: 50
Location: Chicago, IL, USA

I just completed a new JavaScript program that force-decodes all VW messages. It gives four outputs: 5-digit, 6-digit(26x2), 6-digit(5x5) and 7-digit. Three of the outputs will be rubbish, one should be the correct solve.

If anyone is interested, please let me know. I haven't posted it anywhere yet. I will post it if there is interest.

Also, I hope to update this multi-solver if and when SEN uses new Filters.

-Don
_________________
The Consumer Has The Factor Of Advantage!

SUBJECTE 6132 PREFIX GNK (TRUE PROVIDER)


PostPosted: Mon Aug 23, 2004 12:32 am
 View user's profile
 Back to top 
ProfMoriarty
Veteran


Joined: 19 Aug 2004
Posts: 103

I think that would be most beneficial. Please post Smile And thanks!

PostPosted: Mon Aug 23, 2004 12:50 am
 View user's profile AIM Address MSN Messenger
 Back to top 
DM Corleone
Boot

Joined: 20 Jul 2004
Posts: 50
Location: Chicago, IL, USA

Here is the Multi-solver. Simply copy and paste it into notepad (or similar simple editor) and save it as <filename>.html.

Run it in any newer browser. It'll choke on spaces and/or returns, so edit them out of the VW code beforehand.

Let me know if you run into any problems with it.

Code:

<html>
<head>

<title> VW Code Solver - Tri-Digit ++ ver 1.1 ++ </title>

<!-- Many Thanks to CALEB and STORMALONG for their Code-Solving Abilities -->

<script LANGUAGE="JavaScript">

function vwToBinary (vw) {
   vw=vw.toLowerCase();
   var vwBin = "";
   for (a=0;a<vw.length;a++) {
      bit = ((vw.charAt(a)=="v")?1:0);
      vwBin += bit;
   }
   return vwBin;
}

function binaryToDecimal (binText) {
   var decVal = 0;
   for (b=binText.length;b>0;b--) {
      decVal += parseInt(binText.charAt(binText.length-b))*Math.pow(2,b-1);
   }
   return decVal;
}

function decimalToText (input,mode) {
   switch (mode) {
      case 5:
         var textCode = "Ze.a.siu.drjnfc.tzlwhypqobg.mxv@@@@@";
         input = ((input<0 || input > 30) ? 0 : input);
         break;
      case 6.1:
         var textCode = "Zabcde.....fghij.....klmno.....pqrst.....uvqxyz....z@@@@";
         input -= 10;
         input = ((input<0 || input >51) ? 0 : input);
         break;
      case 6.2:
         var textCode = "Zabcdefghijklmnopqrstuvwxyz@@@@";
         input = Math.ceil(input/2);
         input = ((input<0 || input>26) ? 0 : input);
         break;
      case 7:
         var textCode = "Zabcdefghijklmnopqrstuvwxyz@@@@";
         input -= 64;
         input = ((input<0 || input>26) ? 0 : input);
         break;
   }
   output = textCode.charAt(input);
   return output;
}

</script>
</head>

<body>

<script LANGUAGE="JavaScript">

vwCode = prompt ("Enter A Line Of VW Text:");

for (z=0; z<4; z++) {
   switch (z) {
      case 0:
         document.write("<h1>VW 5-Digit Solve</h1>");
         digit = 5;
         m = 5;
         break;
      case 1:
         document.write("<h1>VW 6-Digit 5x5 Solve</h1>");
         digit = 6;
         m = 6.1;
         break;
      case 2:
         document.write("<h1>VW 6-Digit 26x2 Solve</h1>");
         digit = 6;
         m = 6.2;
         break;
      case 3:
         document.write("<h1>VW 7-Digit Solve </h1>");
         digit = 7;
         m = 7;
         break;
   }

   for (y=0;y<(vwCode.length/digit);y++) {

//      document.write(y+": "+vwCode.substring((y*digit),(y*digit+digit))+ " ");

      binCode = vwToBinary(vwCode.substring((y*digit),(y*digit+digit)));
//      document.write (binCode+" ");

      decCode = binaryToDecimal(binCode);
//      document.write(decCode+" ");

      textCode = decimalToText(decCode,m);
      document.write(textCode);

      document.write(((y+1)%60 == 0)?"<br>":" ");
//      document.write("<br>");
   }
}

</script>
</body>
</html>


If you want to watch it work, remove the double slashes (//) toward the end of the program.

-Don
_________________
The Consumer Has The Factor Of Advantage!

SUBJECTE 6132 PREFIX GNK (TRUE PROVIDER)


PostPosted: Mon Aug 23, 2004 1:13 pm
 View user's profile
 Back to top 
DM Corleone
Boot

Joined: 20 Jul 2004
Posts: 50
Location: Chicago, IL, USA

Another Tool

Here is another tool for solving the VW codes.

It displays the length of the text, and the factors (either 5, 6 or 7) of the length (to help determine the length of the binary words).

It then converts the VW text to Decimal numbers with v=1, w=0.

It will output the results for either a 5-digit, 6-digit or 7-digit code. You have to choose which one fits.

Code:

<html>
<head>

<title> VW To Decimal (Short Output With Factors) ++ ver 1.3 ++ </title>

<script LANGUAGE="JavaScript">

function vwToBinary (vw) {
   vw=vw.toLowerCase();
   var vwBin = "";
   for (a=0;a<vw.length;a++) {
      bit = ((vw.charAt(a)=="v")?1:0);
      vwBin += bit;
   }
   return vwBin;
}

function binaryToDecimal (binText) {
   var decVal = 0;
   for (b=binText.length;b>0;b--) {
      decVal += parseInt(binText.charAt(binText.length-b))*Math.pow(2,b-1);
   }
   return decVal;
}

</script>
</head>

<body>

<script LANGUAGE="JavaScript">

vwCode = prompt ("Enter A Line Of VW Text:");

document.write("<h3>Length: "+vwCode.length+"</h3>");

for (x=5;x<=7;x++) {
   document.write((vwCode.length%x==0)?"<h3>Factor: "+x+"</h3>":"");
}

document.write("<hr>");

for (digit=5; digit<=7; digit++) {

   document.write ("<h2>Factor: "+digit+"</h2>");

   for (y=0;y<(vwCode.length/digit);y++) {

//      document.write(y+": "+vwCode.substring((y*digit),(y*digit+digit))+ " ");

      binCode = vwToBinary(vwCode.substring((y*digit),(y*digit+digit)));
//      document.write (binCode+" ");

      decCode = binaryToDecimal(binCode);
      document.write(decCode);
      document.write((((y+1)%20)==0)?"<br>":" ");
   }
}

</script>
</body>
</html>


I hope this works for you.

-Don
_________________
The Consumer Has The Factor Of Advantage!

SUBJECTE 6132 PREFIX GNK (TRUE PROVIDER)


PostPosted: Wed Aug 25, 2004 2:27 pm
 View user's profile
 Back to top 
DM Corleone
Boot

Joined: 20 Jul 2004
Posts: 50
Location: Chicago, IL, USA

Here is a newer version of the decimalizer program.

It works with groups from 4 to 12. V=1.

It might bog down your browser. I hope it works well for you.

Code:

<html>
<head>

<title> VW To Decimal (Short Output With Factors) ++ ver 1.4 ++ </title>

<script LANGUAGE="JavaScript">

function vwToBinary (vw) {
   vw=vw.toLowerCase();
   var vwBin = "";
   for (a=0;a<vw.length;a++) {
      bit = ((vw.charAt(a)=="v")?1:0);
      vwBin += bit;
   }
   return vwBin;
}

function binaryToDecimal (binText) {
   var decVal = 0;
   for (b=binText.length;b>0;b--) {
      decVal += parseInt(binText.charAt(binText.length-b))*Math.pow(2,b-1);
   }
   return decVal;
}

</script>
</head>

<body>

<script LANGUAGE="JavaScript">

vwCode = prompt ("Enter A Line Of VW Text:");

document.write("<h3>Length: "+vwCode.length+"</h3>");

for (x=4;x<=12;x++) {
   document.write((vwCode.length%x==0)?"<h3>Factor: "+x+"</h3>":"");
}

document.write("<hr>");

for (digit=4; digit<=12; digit++) {

   document.write ("<h2>Factor: "+digit+"</h2>");

   for (y=0;y<(vwCode.length/digit);y++) {

      binCode = vwToBinary(vwCode.substring((y*digit),(y*digit+digit)));
      decCode = binaryToDecimal(binCode);
      document.write(decCode);
      document.write((((y+1)%20)==0)?"<br>":" ");
   }
}

</script>
</body>
</html>


-Don
_________________
The Consumer Has The Factor Of Advantage!

SUBJECTE 6132 PREFIX GNK (TRUE PROVIDER)


PostPosted: Tue Aug 31, 2004 1:00 am
 View user's profile
 Back to top 
Display posts from previous:   Sort by:   
Page 1 of 1 [11 Posts]  
View previous topicView next topic
 Forum index » Archive » Archive: General » ARG: SubCity Central
Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
You cannot post calendar events in this forum



Powered by phpBB © 2001, 2005 phpBB Group