Hacking This Game To Always Win (Buckshot Roulette)

  Рет қаралды 13,181

Nathan Baggs

Nathan Baggs

4 ай бұрын

Let's hack Buckshot Roulette so we always win
Buckshot Roulette - mikeklubnika.itch.io/buckshot...
Gef - github.com/hugsy/gef
Ghidra - github.com/NationalSecurityAg...
💭 All views are my own 💭

Пікірлер: 58
@nathanbaggs
@nathanbaggs 3 ай бұрын
Want early access to new videos and some behind the scenes content? Consider becoming a channel member kzbin.info/door/QvW_89l7f-hCMP1pzGm4xwjoin
@JonoTaberner
@JonoTaberner 4 ай бұрын
Took me way too long to figure out why this video felt weird, and then I realised - no white shirt. 😂
@nathanbaggs
@nathanbaggs 4 ай бұрын
I just want to let people know I own more than one shirt (:
@Haddcore
@Haddcore 4 ай бұрын
We're getting to see an edgier side of Nathan
@ChrisR3tro
@ChrisR3tro 4 ай бұрын
That stuff about bovine related data really cracked me up
@nathanbaggs
@nathanbaggs 4 ай бұрын
🐄
@DiamondWolfX
@DiamondWolfX 4 ай бұрын
I wonder if the double shuffle is a bug they never caught because it doesn't have any unexpected effects
@DoomRater
@DoomRater 4 ай бұрын
One of the 4 live 4 blank loadouts is preshuffled before it is shown in the third round.
@DaniTheGuy_
@DaniTheGuy_ 3 ай бұрын
0:49 Fun fact: One of the first ever Buckshot Roulette fan-made android ports had this bug of weird colors and blood splatter (even in the start menu)
@omegahaxors3306
@omegahaxors3306 4 ай бұрын
You could hack the Dealer to always shoot at itsel- oh wait it already does.
@Voxelstice
@Voxelstice 4 ай бұрын
the gef link in the description points to the game itself instead of the gef program itself also in godot the game assets (including scripts) are in the game's pck file. godot gives people the option to encrypt it, but it's a bit complicated that most people dont even bother taking the extra kilometer. even then, you can find that key in the game's binary pretty cool video anyway
@nathanbaggs
@nathanbaggs 4 ай бұрын
Thanks for pointing that out, fixed! And thanks for the godot insight
@eVITORIOe
@eVITORIOe 2 ай бұрын
That was pretty awesome ! I enjoyed seeing you using linux for a twist :)
@nathanbaggs
@nathanbaggs 2 ай бұрын
Thanks! Good to mix things up every now and then
@wad671
@wad671 4 ай бұрын
This is why I am exporting my game differently, I ship a copy of godot editor, and the project directory. Launching the game is just a command line parameter for the godot editor on each os. No obfuscation, you can easily edit the entire game, see all of the original scripts, etc. Why not ship the same tools that I use ?
@Bobbias
@Bobbias 4 ай бұрын
That's very nice of you. Being able to dive into the code and see exactly how someone implemented stuff can be a great learning experience.
@GGRS
@GGRS 4 ай бұрын
Another great vid Nathan, thanks :)
@f.d.9326
@f.d.9326 4 ай бұрын
Wow, this is insane level of RE knowledge. Good job and thanks for sharing
@gathlolol4618
@gathlolol4618 4 ай бұрын
It's some of the most basic knowledge???
@ferna2294
@ferna2294 4 ай бұрын
yeah yeah we read you, programmer, now go back to Rust.@@gathlolol4618
@bruninhalol4363
@bruninhalol4363 4 ай бұрын
A newbie question, idk gdb but I imagine this with any debugger, is there some way to kinda get the class structure in memory since you found the this pointer? I mean like, compile godot and extract the debug info and bolt on over to that memory to easily see it's structure instead of dumping bytes? sorry if it's hard to understand me, it's something I thought about
@jjh8r420
@jjh8r420 4 ай бұрын
Nah ur right. It's called ptype (print type) in gdb. And yeah, only with a debug build.
@nathanbaggs
@nathanbaggs 4 ай бұрын
You can use “add-symbol-file” in gdb to bring in other symbols, so you might be able to combine that with a debug build of godot
@jhax
@jhax 4 ай бұрын
Great stuff
@stevensteverson
@stevensteverson 4 ай бұрын
Is it possible the two calls to shuffle combine with the copy-on-write to provide to shuffled arrays that are used for different things?
@nathanbaggs
@nathanbaggs 4 ай бұрын
It’s certainly possible, as with any RE I do I stopped looking after I got the answer I needed (:
@zeronightx
@zeronightx 4 ай бұрын
awesome
@danielgysi5729
@danielgysi5729 4 ай бұрын
I believe there are tools specifically to extract scripts and other assets from godot binaries. I suppose this sort of low level stuff isn't too hard for you anyway though
@nathanbaggs
@nathanbaggs 4 ай бұрын
I wanted to see how far I could get with just the binary
@DatsRyan
@DatsRyan 4 ай бұрын
Nice
@soviut303
@soviut303 4 ай бұрын
I wonder if the shuffle is called twice because it's checking if some value is the same as before and re-shuffling if that's the case. Perhaps if it could be called multiple times if a particular value keeps coming up?
@UndeadAlex
@UndeadAlex 4 ай бұрын
Please Nathan bring back the holy white shirt
@LukeAvedon
@LukeAvedon 4 ай бұрын
Sooo cool. I want to be this good.
@HumanityAsCode
@HumanityAsCode 4 ай бұрын
I wonder if it wanted you to use the Vulkan renderer instead of OpenGL
@nathanbaggs
@nathanbaggs 4 ай бұрын
I didn’t really cover it but the vulkan renderer is the default one and works fine on windows and presumably ok on native Linux. WSL uses a software implementation of OpenGL and I don’t think there exists one for vulkan
@tank45b29
@tank45b29 4 ай бұрын
@@nathanbaggs When i run my game on windows with opengl3 the same blood screen apears, but when i don't specify any graphics API, the game runs with perfect image.
@CiaranCoffey
@CiaranCoffey 4 ай бұрын
I'm completely guessing, but I feel the double shuffle is just to add more randomness including getting back to the starting state. great video, lots of good detail.
@omegahaxors3306
@omegahaxors3306 4 ай бұрын
Sound about right, because i'm pretty sure a shuffle function which returns the same array would be considered broken.
@bok..
@bok.. 4 ай бұрын
I wish my brain worked like yours sometimes, but I am happy with my brain as well!
@grenadier4702
@grenadier4702 4 ай бұрын
Can one use objdump for disassembly?
@nathanbaggs
@nathanbaggs 4 ай бұрын
Yup, I’m just more used to gdb
@Galundor01
@Galundor01 4 ай бұрын
Are you even human? Holy shit, i wish i was at your level of reverse engineering
@tomtravis858
@tomtravis858 4 ай бұрын
Amazing video but you could've just used GDRE to convert it to a usable Godot engine project file and directly modify the scripts.
@mrxgn
@mrxgn 4 ай бұрын
i like your videos a lot nathan... but in my feeling on the recent uploads , you're very talky at the camera (combined with the editing). your knowledge and expertise shine through without jump cuts, etc
@ssznajder
@ssznajder 4 ай бұрын
you're a boss
@FJB-bl8xg
@FJB-bl8xg 4 ай бұрын
try cheat engine
@nathanbaggs
@nathanbaggs 4 ай бұрын
I’ve never used cheat engine but my understanding is it’s used to find addresses of values that change. Not sure that would help here as I didn’t know the values of the shell objects till I’d pulled it all apart and by that time I already knew the addresses (:
@jomo_sh
@jomo_sh 4 ай бұрын
@@nathanbaggs you can set breakpoints to addresses and see what accesses are being made, you can also see register values etc. It is actually a very comprehensive tool
@ferna2294
@ferna2294 4 ай бұрын
I used it to know what was the hidden score of the mini game in RE7 where they cut your fingers. However, it was a number, not 2 different unknown values like this game.@@nathanbaggs
@gryzman
@gryzman 4 ай бұрын
please stop changing camera sides.. It confuses me. Otherwise, try writing a game in Godot. It's simple and fun. You'll learn even more ;)
@odb7393
@odb7393 4 ай бұрын
Nerd 🙄
@jomo_sh
@jomo_sh 4 ай бұрын
"Nerds" are making everything you use, everything related to engineering is "nerd" for you I guess.
You Can Only Play This Game By Hacking It
12:03
Nathan Baggs
Рет қаралды 332 М.
Buckshot Roulette - All Endings | Full Game
23:42
Levas
Рет қаралды 2,5 МЛН
Её Старший Брат Настоящий Джентельмен ❤️
00:18
Глеб Рандалайнен
Рет қаралды 7 МЛН
Is it Cake or Fake ? 🍰
00:53
A4
Рет қаралды 17 МЛН
Hacking This Game To Remove Jump Scares (Observation Duty)
10:19
Nathan Baggs
Рет қаралды 14 М.
Reverse Engineering This Insane Glitch (Ocarina of Time)
12:46
Nathan Baggs
Рет қаралды 59 М.
Why Don't You Make Your OWN Game Engine?
7:23
Skeffles
Рет қаралды 5 М.
How One Developer Continues To Defy The Impossible
18:31
Nathan Baggs
Рет қаралды 137 М.
What if Byzantine Empire Blessed (870 - 1440) - CK3 Timelapse
8:20
Jir Mirza TimeMaster
Рет қаралды 260
How the Buckshot Roulette Dealer AI works (and how you can use it to win)
24:46
Unfixable Apple Exploit - How It Really Works
28:43
Nathan Baggs
Рет қаралды 15 М.
Buckshot Roulette but it's from the smoker's perspective
0:57
Saphyre
Рет қаралды 1,2 МЛН
How To Manipulate Process Memory On Windows
31:33
Nathan Baggs
Рет қаралды 3,1 М.
Reverse Engineering RollerCoaster Tycoon | How does it work?
38:54
Nathan Baggs
Рет қаралды 225 М.