Began in August 2019
This project involves a simulator of a dice game where 3 regular dice and 1 special die are thrown. You pay the amount that you bet and then win the value of your bet twice per regular dice and thrice per special dice whenever the dice shows the number of your choosing.
My friend and I beat this game by using random number generator (RNG) manipulation, which is where the randomness algorithm is cracked by determining the random seed being used. (Nothing is truly random, and computers typically use a chaotic mathmatical function to generate pseudorandom numbers, sometimes factoring in components such as the CPU's temperature to add to the unpredictability.)
The RNG seed is determined by generating a few (three) random values with the generator and inputting them into a C++ program which has information on the randomness algorithm and takes a brute-force approach to determine which seeds could possibly have been used to generate that sequence. This program then outputs one or two potential RNG seeds, which can be tried as the actual seed. Once the actual seed has been guessed, each random call will be successfully predicted, and in the dice simulator you will win every time.
We were able to successfully crack the random()
Processing.JS algorithm.