Last active
August 29, 2015 13:56
-
-
Save vbfox/9166527 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace HackNSlash | |
{ | |
using System; | |
using System.ComponentModel; | |
using System.IO; | |
using System.Linq; | |
using System.Runtime.InteropServices; | |
using System.Security.Cryptography; | |
using System.Text; | |
using System.Text.RegularExpressions; | |
class Program | |
{ | |
const string FULL_TEXT = "AND WITH THIS INCANTATION I DO SO ENSORCELL MATTERS SUCH THAT THE" | |
+ " MAGIC OF THIS APPLICATION PRODUCES A RESULT THAT MUST INVARIABLY" | |
+ " ENGENDER MAGNIFICENT AMPLIFICATION OF THE DESIRED OUTCOMES THAT " | |
+ "WE PRODUCE. AND WITH THIS INCANTATION I THEE BOND INTO REALMS FOR" | |
+ "EVER INTWINING OURSELVES TO OUR COMBINED DESTINIES WHICH PRODUCE " | |
+ "A KIND OF INFINITE REWARD IN THE CONSTRUCTION OF MECHANISMS TO AI" | |
+ "D OUR DISCOVERY OF KNOWLEDGE AND TRUTH. AND WITH THIS INCANTATION" | |
+ " I REVEAL MYSELF TO BE CAPABLE OF CHALLENGES OF THE MIND AND SPIR" | |
+ "IT WHICH STRENGTHEN AND EMBOLDEN MY CAPACITY FOR TAKING CONTROL O" | |
+ "VER THAT WHICH WAS ALWAYS OUR BIRTHRIGHT THOUGH SOMESTIMES WE FOO" | |
+ "L EVEN OURSELVES TO PROTECT THAT WHICH CANNOT BE PROTECTED. WITH " | |
+ "THIS INCANTATION I OPEN THE LOCK CLASPED SIMPLY TO PROVIDE OPPORT" | |
+ "UNITY FOR DEMONSTRATION OF MY POWER. AND WITH THIS INCANTATION I " | |
+ "FOREVER OPEN THE BOUNDARIES OF UNDRESTANDING SUCH THAT I ALWAYS R" | |
+ "EALIZE THE POWERS I HAVE OVER HIDDEN BUT NOT INACCESSIBLE TRUTHS." | |
+ " AND WITH THE MECHANISMS OF THIS INCANTATION I CAN BREAK THE BOND" | |
+ "S THAT WERE NEVER REALLY THERE DESPITE THE INSISTENCE OF THOSE PR" | |
+ "ESENTING THEMSELVES AS WIZARDS. AND WITH THIS INCANTATION I OBSER" | |
+ "VE THE FINITE IN THE INFINITE THAT HAS PRODUCED MUCH WONDER AND M" | |
+ "AGIC IN OUR WORLD AND COMMIT TO THE PURSUITE OF UNDERSTANDING. AN" | |
+ "D WITH THIS INCANTATION I DO DECLARE THAT BIRTHRIGHT HAS NO STAND" | |
+ "ING IN THE CHAMBERS OF WISDOM. AND WITH THIS INCANTATION I DO PRE" | |
+ "SENT MATTERS SUCH THAT IT IS OBSERVABLE THAT NO CREATURE SHOULD B" | |
+ "E RESTRAINED BY THE FEAR OF OTHERS."; | |
const int SUBSTRING_LEN = 4; | |
static string CreateSentence(byte[] uid) | |
{ | |
var result = FULL_TEXT.Substring(0, SUBSTRING_LEN); | |
var uidBytesUsed = 0; | |
int afterLastMatch; | |
do | |
{ | |
var xorFromUid = uid.Skip(uidBytesUsed).Take(2).Aggregate(0, (a, b) => a ^ b); | |
var last4Chars = result.Substring(result.Length - SUBSTRING_LEN); | |
var matches = new Regex(Regex.Escape(last4Chars)).Matches(FULL_TEXT); | |
var numberOfOccurences = matches.Count; | |
var match = matches[xorFromUid % matches.Count]; | |
result += FULL_TEXT.Substring(match.Index + SUBSTRING_LEN, SUBSTRING_LEN); | |
afterLastMatch = match.Index + SUBSTRING_LEN*2; | |
uidBytesUsed += 2; | |
} while (uidBytesUsed < uid.Length); | |
if (!result.EndsWith(".")) | |
{ | |
var charsToAdd = FULL_TEXT.Substring(afterLastMatch).TakeWhile(c => c != '.'); | |
result += new string(charsToAdd.ToArray()) + "."; | |
} | |
return result; | |
} | |
[DllImport("kernel32.dll", SetLastError = true)] | |
static extern bool GetVolumeNameForVolumeMountPoint(string lpszVolumeMountPoint, StringBuilder lpszVolumeName, uint cchBufferLength); | |
static string GetVolumeNameForVolumeMountPoint(string lpszVolumeMountPoint) | |
{ | |
var lpszVolumeName = new StringBuilder(50); | |
var apiResult = GetVolumeNameForVolumeMountPoint(lpszVolumeMountPoint,lpszVolumeName, (uint)(lpszVolumeName.Capacity + 1)); | |
if (!apiResult) | |
{ | |
throw new Win32Exception(); | |
} | |
return lpszVolumeName.ToString(); | |
} | |
static byte[] GetUniqueId() | |
{ | |
var winDir = Environment.GetFolderPath(Environment.SpecialFolder.Windows); | |
var winDrive = Path.GetPathRoot(winDir); | |
var mountPoint = GetVolumeNameForVolumeMountPoint(winDrive); | |
var sha1 = new SHA1CryptoServiceProvider(); | |
sha1.Initialize(); | |
return sha1.ComputeHash(Encoding.ASCII.GetBytes(mountPoint)); | |
} | |
static void Main() | |
{ | |
var uid = GetUniqueId(); | |
Console.WriteLine(CreateSentence(uid)); | |
Console.ReadLine(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment