How hackers reverse Math.random()
Zanzlanz
0:00 / 0:00
How hackers reverse Math.random()
1 161 468 просмотров · 8 месяцев назад
Zanzlanz
101 тыс. подписчиков
1 161 468 просмотров · 8 месяцев назад
Cryptographers out there: you have my respect!! This stuff gets wild!
If you like what you see and hear, join the credits! / zanzlanz
Games featured in demos:
"Clover" by BugMater: (Requires Flashpoint) flashpoint://run/6d6649bf-2188-43b5-90b3-0ebea635199a
"Mines" by Tony K Lam: (Requires Flashpoint) flashpoint://run/0ecea02c-6440-48b9-bf90-edfa9fac9682
"Spin the Wheel" by me: (Available for patrons) https://zanzlanz.com/patreon-bonuses/...
"Slots" by Robotube Games: (Requires Flashpoint) flashpoint://run/5c71ef0c-8268-4050-8d73-3f161bd9a537
Chapters:
00:00 Intro
00:23 Intro to RNG
00:42 Linear Congruential Generator (LCG)
03:06 Generator Generator
03:46 Inverting LCGs
05:37 XOR-Shift
07:36 Inverting XOR-Shifts
08:58 Other XOR-Shifts
09:52 Flash's RNG
10:23 Inverting Flash's RNG
11:20 Demo: Clover.swf
12:07 Demo: Minesweeper.swf
13:57 Demo: Spin the Wheel.swf
14:32 Demo: Slots.swf
15:05 Thanks for Watching!
Music:
(All made by me, including some older released stuff. I did a reference to "Moon Men" by Jake Chudnow, famously used by Vsauce. WIPs available for download on the patron Discord)
Intro music made specifically for this video - WIP available to patrons
0:46 "Crater" (2013) https://zanzlanz.bandcamp.com/track/c...
1:14 Unreleased WIP 2019 "Soup Straw" - WIP available to patrons
4:01 Made for this video, an homage to "Moon Men" by Jake Chudnow - WIP Available to patrons
5:14 Unreleased WIP 2016 - WIP available to patrons
6:15 Unreleased WIP 2018
7:17 Unreleased WIP 2016
9:02 "Mirror Road" • Zanzlanz - Mirror Road (music video coded ...
12:02 "Piece of Cake" made for: • I analyzed 100 games to see why they are fun! - WIP available to patrons
13:20 Song composed for • 2022 Projects - Create new world ⏷
Outro music made for this series, heard first in • I coded 100 games in 20 years! - Available to patrons
Citations/References:
This video topic was majorly inspired by @koong04TV, who put together a working Flash RNG inversion demo! See Randomno's post here: https://github.com/ruffle-rs/ruffle/i...
RuneLite: https://runelite.net/
Dangokyo's original attempt at inverting Flash's RNG: https://github.com/dangokyo/CVE-2017-...
George Teşeleanu's paper improving the Flash RNG inversion: https://eprint.iacr.org/2019/086.pdf (Apologies for mispronouncing your name! I tried using a translator text-to-speech to learn the pronunciation, but I guess that process is flawed haha)
Flash decompiler: https://github.com/jindrapetrik/jpexs...
List of good LCG values: https://www.ams.org/journals/mcom/199...
PHP's popularity: https://w3techs.com/technologies/over...
Paper about PHP's LCG security flaws: https://www.usenix.org/system/files/c...
Shoutout to @PwnFunction for demonstrating Z3: • How To Predict Random Numbers Generated By...
Scott Contini's post about inverting Xorshift128+: https://littlemaninmyhead.wordpress.c...
Community investigating flaws in Minecraft's Xoroshiro128++: https://minecraftathome.com/minecraft...
Thanks so much for watching!
#programming #gamedev #cryptography