Botanias matrix wings

Discussion in 'Offtopic' started by alfiealfie, May 2, 2016.

  1. tyler489

    tyler489 Well-Known Member

    Messages:
    1,873
    Likes Received:
    202
    Local Time:
    12:03 AM
    Its built into the mod..
    Is it suppost to be capitalizedd?
     
  2. Arcanuo

    Arcanuo Old School Poster

    Messages:
    424
    Likes Received:
    160
    Local Time:
    1:03 AM
    Couldn't I in theory, force the running of the finished piece to spawn, and get the name that way?
     
  3. coolgi3000

    coolgi3000 Logician of the gods

    Messages:
    1,064
    Likes Received:
    282
    Local Time:
    1:03 AM
    I probly just don't know what overwrite code is. I thought it was an external code written to reproduce the effects without needing to know the ligit phrase to name the tiara. If it is that than you would have to add it as if you were adding a new mod to the server.
     
  4. Arcanuo

    Arcanuo Old School Poster

    Messages:
    424
    Likes Received:
    160
    Local Time:
    1:03 AM
    What it should be, if I'm remembering correctly, is he'll override on his own so to gain the name.
     
  5. alfiealfie

    alfiealfie Taste the flames

    Messages:
    465
    Likes Received:
    98
    Local Time:
    7:03 PM
    I'm using an override to track what it does and runs it through when I type in the name I overrided in order to got the process the game goes through in order to get / verify the name
     
  6. chugga_fan

    chugga_fan ME 4M storage cell of knowledge, all the time

    Messages:
    5,861
    Likes Received:
    730
    Local Time:
    1:03 AM
    I did that, just print out to the log file whenever you run through each step, you get a bunch of useless junk though, which comes to this, there's a CHANCE that you actually got the right name and it isn't correct, if you're just bruteforcing based off the SHA-256, you need to phyically use a 49 character string, that has a large mix of ACSII characters, so gl, with that
     
  7. alfiealfie

    alfiealfie Taste the flames

    Messages:
    465
    Likes Received:
    98
    Local Time:
    7:03 PM
    put of curiosity anyone know what the page that repeats ASUDA-SAN ASUDA-SAN is? On github
     
  8. chugga_fan

    chugga_fan ME 4M storage cell of knowledge, all the time

    Messages:
    5,861
    Likes Received:
    730
    Local Time:
    1:03 AM
    achievement.botania:desuGun.desc=ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN ASADA-SAN
    # ^ Don't localize
    in the localizations file
     
  9. alfiealfie

    alfiealfie Taste the flames

    Messages:
    465
    Likes Received:
    98
    Local Time:
    7:03 PM
    Different easter egg then couldn't help but notice asada-San asada-san is 19 characters so it got me hopeful, me I'll keep trying my way but there's allot of crap to sort through
     
  10. chugga_fan

    chugga_fan ME 4M storage cell of knowledge, all the time

    Messages:
    5,861
    Likes Received:
    730
    Local Time:
    1:03 AM
    it's from the matrix, that's been confirmed, not an anime, but nice try
     
  11. alfiealfie

    alfiealfie Taste the flames

    Messages:
    465
    Likes Received:
    98
    Local Time:
    7:03 PM
    XD but how has it been confirmed is what I want to know, that would suggest someone knows and is being stingy with the answer, making us work geez
     
  12. chugga_fan

    chugga_fan ME 4M storage cell of knowledge, all the time

    Messages:
    5,861
    Likes Received:
    730
    Local Time:
    1:03 AM
    vazkii said it's 19 chars long and is from the matrix
     
  13. alfiealfie

    alfiealfie Taste the flames

    Messages:
    465
    Likes Received:
    98
    Local Time:
    7:03 PM
    Vazkii might be lying, did go through all the trouble of encrypting it
     
  14. coolgi3000

    coolgi3000 Logician of the gods

    Messages:
    1,064
    Likes Received:
    282
    Local Time:
    1:03 AM
    If they find out that it's available somewhere on the internet (not necessarily here) maybe they will change it. think they would do that? :cool:
    of coarse it would mean that some people who "earned" it would have to find it again (depending on the method used, and if Vazkii changes the encryption)
     
  15. alfiealfie

    alfiealfie Taste the flames

    Messages:
    465
    Likes Received:
    98
    Local Time:
    7:03 PM
    Oh god your right, pms to the rescue!
     
  16. aD0UBLEj

    aD0UBLEj Well-Known Member

    Messages:
    138
    Likes Received:
    17
    Local Time:
    6:03 AM
    Google seems to imply this is very difficult (time consuming) to crack. Interesting though.

    If it is about neo, what is to say it is even a quote, it could be some paraphrased line, although I guess it is made to actually be solvable with a lot of work.
     
  17. The_Icy_One

    The_Icy_One Procrastinates by doing work

    Messages:
    1,044
    Likes Received:
    210
    Local Time:
    6:03 AM
  18. chugga_fan

    chugga_fan ME 4M storage cell of knowledge, all the time

    Messages:
    5,861
    Likes Received:
    730
    Local Time:
    1:03 AM
  19. The_Icy_One

    The_Icy_One Procrastinates by doing work

    Messages:
    1,044
    Likes Received:
    210
    Local Time:
    6:03 AM
    Pity, that would've made life easier. Are we sure Vazkii isn't lying to us about the length, though? She is obviously a little trolly :p
     
  20. chugga_fan

    chugga_fan ME 4M storage cell of knowledge, all the time

    Messages:
    5,861
    Likes Received:
    730
    Local Time:
    1:03 AM
    if i wanted to try that many hashes i'd have a file the size of 10 gigs on my computer, not going to be able to purge anything that size so i won't be able to test[DOUBLEPOST=1462567725,1462491188][/DOUBLEPOST]Ok, so i have a program that outputs exactly what we want, strings that pass the test, for the original one only though, so won't help us, but here

    Code:
    using System;
    using System.Collections.Generic;
    using System.Diagnostics;
    using System.IO;
    using System.Linq;
    using System.Text;
    
    namespace Unhash
    {
    	static class Program
    	{
    		const int minChar = 32;
    
    		const int maxChar = 122;
       
    	// array of possibles
    	static char[] charChoice = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ".ToCharArray();
    		// limit maxStrLength to make sure that max hash value does not exceed long.MaxValue (2^63 - 1)
    		const int maxStrLength = 19;
    	const int minStrLength = 1;
    
    		static long[] minHashValues;
    
    		static long[] maxHashValues;
    
    		static Program()
    		{
    			minHashValues = new long[maxStrLength + 1];
    			for (int strLength = 0; strLength <= maxStrLength; strLength++)
    				minHashValues[strLength] = Pow(31, strLength) / (31 - 1) * minChar;
    
    			maxHashValues = new long[maxStrLength + 1];
    			for (int strLength = 0; strLength <= maxStrLength; strLength++)
    				maxHashValues[strLength] = Pow(31, strLength) / (31 - 1) * maxChar;
    		}
    
    		static void GuessHash(int hash, int maxLength = 256, int minLength = 1)
    		{
    			Stopwatch sw = Stopwatch.StartNew();
    			var timeLimit = new TimeSpan(0, 15, 0);
    
    			if (maxLength > maxStrLength)
    				maxLength = maxStrLength;
    		if(minLength < minStrLength)
    		minLength = minStrLength;
    
    			long currentHash = (uint)hash;
    			long step = 1L << 32;
    
    			const int bufferSize = 32 * 1024;
    			using (var writer = new StreamWriter("output.txt", false, new UTF8Encoding(false), bufferSize))
    			{
    				for (int strLength = minLength; strLength <= maxLength; strLength++)
    				{
    			Console.WriteLine(strLength.ToString() + " current length");
    					long maxHash = maxHashValues[strLength];
    					if (currentHash > maxHash)
    						continue;
    
    					long minHash = minHashValues[strLength];
    					while (currentHash < minHash)
    						currentHash += step;
    
    					while ((currentHash <= maxHash) && (sw.Elapsed < timeLimit))
    					{
    						GuessLongHash(writer, currentHash, new char[strLength], strLength - 1);
    						currentHash += step;
    					}
    				}
    			}
    		}
    		static void GuessLongHash(StreamWriter writer, long hash, char[] chars, int charPos)
    		{
    			if (hash <= maxChar)
    			{
    				char ch = (char)hash;
    		if(hash == minChar || hash.IsWithin(48, 57) || hash.IsWithin(65, 90) || hash.IsWithin(96, 122))
    		{
    					chars[charPos] = ch;
    					writer.WriteLine(new string(chars));
    		}
    				return;
    			}
    
    			char c = (char)(hash % 31);
    			while (c < minChar)
    				c += (char)31;
    
    			while (c <= maxChar)
    			{
    				chars[charPos] = c;
    				GuessLongHash(writer, (hash - c) / 31, chars, charPos - 1);
    
    				c += (char)31;
    			}
    		}
    
    		static long Pow(int value, int exponent)
    		{
    			long result = 1;
    			for (int i = 0; i < exponent; i++)
    				result *= value;
    			return result;
    		}
    
    		static void Main(string[] args)
    		{
    			const int hash = 0x7867EB0B;
    			GuessHash(hash);
    		Console.WriteLine("Done");
    		Console.ReadKey();
    		}
    	static bool IsWithin(this long value, long minimum, long maximum)
    	{
    			return value >= minimum && value <= maximum;
    	}
    	}
    }
    here's a c# program that i shamelessly stole from a stackoverflow thread and modified for this purpose
     

Share This Page