Reverse Engineering/Game Patching Tutorial: Full Res RollerCoaster Tycoon with Ghidra+x64dbg+Python

  Рет қаралды 282,326

jeFF0Falltrades

jeFF0Falltrades

Күн бұрын

GitHub Repo: github.com/jeFF0Falltrades/Ga...
Time Markers:
00:00:00 - Introduction
00:01:57 - Target audience and caveats note
00:03:10 - Start of tutorial
00:07:08 - Loading the file into Ghidra/First steps of RE workflow
00:14:27 - Static analysis of window creation functions (CreateWindowExA)
00:25:42 - Quick detour to learn about Window Style values
00:37:07 - Dynamic analysis of window creation functions in x32dbg
00:48:38 - Static analysis of default window height/width values
00:58:21 - Dynamic analysis of default window height/width values
01:03:30 - Static analysis of window constraints and patching for windowed mode
01:12:15 - Patching to enable full screen mode
01:15:00 - Python patching script review and wrap-up
Corrections:
00:34:30: When viewing GetSystemMetrics, 0x20 and 0x21 are seen passed into this function in Ghidra, but the MSDN page is in decimal, so those values (32 and 33 decimal) are actually specifying SM_CXSIZEFRAME and SM_CYSIZEFRAME, the sizing borders of the window. I mistakenly confused them for SM_CYVSCROLL/SM_CXHSCROLL.
Hey everyone, I appreciate you joining me for this inaugural tutorial.
I'm usually playing with malware, but I thought a game patch was a more fun and light endeavor for beginners, and I hope that this video strikes that balance of being fun and informative.
I hope to do more of these sometime, if there is an appetite.
Reach out any time with questions or feedback.
Twitter: / jeff0falltrades
Free Learning Resources (Let me know if you have more, and I will update this list):
* Programming and Operating System Concepts:
* Harvard's CS50 Course: online-learning.harvard.edu/c...
* MIT OpenCourseWare - Introduction to C and C++: ocw.mit.edu/courses/electrica...
* Beej’s Guide to C Programming (H/T Echo): beej.us/guide/bgc/
* Reverse Engineering:
* /r/reverseengineering Beginner Resources: / a_modest_proposal_abso...
* CS6038 (Spring 2020) - Malware Analysis - University of Cincinnati - Coleman Kane: • CS6038 (Spring 2020) -...
* hasherezade's 1001 nights: hshrzd.wordpress.com/how-to-s...
* Reverse Engineering for Beginners (H/T Echo): beginners.re/
* Tools:
* Intro to RE with Ghidra (wrongbaud): hackaday.io/course/172292-int...
* x64dbg Documentation: help.x64dbg.com/en/latest/
* Books:
* Practical Reverse Engineering: www.amazon.com/Practical-Reve...
* The Ghidra Book: The Definitive Guide: www.amazon.com/Ghidra-Book-De...

Пікірлер: 524
@das_evoli
@das_evoli 2 жыл бұрын
I have no idea why this looks so fun to do. You feel like a damn detective
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
Same thrill of solving a puzzle (and/or crime - especially reversing malware 😁). Thanks for watching and glad you enjoyed!
@MatVeiQaaa
@MatVeiQaaa Жыл бұрын
I am doing a bit of that stuff and it actually feels like treasure hunt, like you are in some fucking mysterious ancient catacomb solving its mysteries lmao. Very fascinating.
@MatVeiQaaa
@MatVeiQaaa Жыл бұрын
@Abraham Johnathan I had this idea for a while, but the issue I have with that is that it’s just a game. Usually I solve some actual problem which people need to be solved with what I’m doing.
@MatVeiQaaa
@MatVeiQaaa Жыл бұрын
@Abraham Johnathan Easy to get in to, ridiculously difficult to master :) It's a great thing to do, good luck and have fun!
@webdevkaizen1867
@webdevkaizen1867 5 ай бұрын
Enjoy the "fun" while you can
@siljamickeify
@siljamickeify Жыл бұрын
I LOVE that you keep your mistakes in the tutorial!! It is soo valuable for a learner to see what is difficult even for the teacher! Wonderful tutorial, both in content and style.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
I do believe in keeping in the mistakes and identifying them because it helps me learn too! And it’s true, there’s always so much to know and learn that there are bound to be mistakes, and that’s okay - I really appreciate when someone corrects me and helps educate me. Now that said, I would be lying if I didn’t say I also edit out a couple of hours of mistakes like my voice cracking, me cursing because I forgot something or misspoke, me forgetting to turn my phone off, me blanking on a keyboard shortcut, etc. - Y’all don’t need to know how much of a mess I am personally 😂
@siljamickeify
@siljamickeify Жыл бұрын
@jeFF0Falltrades if you edit out a lot, then it is even more impressive! The bits you left in are not only important to give a general sense of something being hard. You actually show the process of gaining information. Otherwise it is easy for a beginner to dismiss the teachers process as just being magic, I.e. there is no process, you either get it or don't get it. That can be so demotivating! But you show the process, which is truly motivating. "I can also do that! Maybe even a little bit faster than the teacher!"
@RandomUser2401
@RandomUser2401 7 ай бұрын
@@jeFF0Falltradesso the issue where the game was only painted/rendered in tiles resolved it self automagically with the patch?
@jeFF0Falltrades
@jeFF0Falltrades 7 ай бұрын
@@RandomUser2401 So some spoilers, but I’ll actually be talking more in depth about this in my upcoming vid - I realized we didn’t really dive into the “why” behind the blackness shown in the intro in this vid, but in short - yes, the patch fixes the error, and the reason we see that blackness is due to the screen not being refilled with colors properly after the window is destroyed if the max resolution of the machine is bigger than the max threshold expected. More details to come 😉
@RandomUser2401
@RandomUser2401 7 ай бұрын
@@jeFF0Falltrades wow, so nice! That‘s so much more than the best answer I could‘ve imagine. Awesome, looking very forward to this video! Keep up the great reveng videos👌🏻
@StefanNoack
@StefanNoack Жыл бұрын
34:27 you forgot to convert to decimal. 0x20 corresponds to the border size (entry 32) not the scrollbars. Which also explains why the value is doubled, since borders are on both sides. It doesn't matter, though :)
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thank you! Someone else pointed this out and I totally did - I even said at the start of that segment “These are the values in decimal on this page” or something 🤦‍♂️ I edited the description a while back to include this correction. Thanks for watching!
@tov7913
@tov7913 Жыл бұрын
1 and a half year later and it is still a great video! I always wondered how patches for older games were made and this video literally answers this question on point!
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thanks for watching!
@jatodd3746
@jatodd3746 2 ай бұрын
Now 3 years since video release, and still great.
@NavnikBHSilver
@NavnikBHSilver Жыл бұрын
I have very little experience with assembler code of any kind, yet as a dev, and with the way you explained it, it was actually fairly comprehensive and mirrors a lot of typical high-level debugging, except you're dealing with unknown source code. I am likely not going to use what you demonstrated here any time soon, but knowing it is an option, and a path I could take if I feel dedicated to a goal, is very cool and exciting.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
That is awesome feedback, Navnik - As long as you had fun and came out of this having more knowledge than you started with, I am more than happy. If it comes in handy for you some day - even better! Thanks for watching!
@tahargermanni6205
@tahargermanni6205 9 ай бұрын
@@jeFF0Falltrades Hi Jeff, could you please help me to bypass the registry in app that the manufacturer is not existing anymore.
@dracenmarx
@dracenmarx Жыл бұрын
It was very entertaining to watch! Just one improvement suggestion: It would be good to name variables, functions and memory addresses in the moment you identify them. Then the code browsing in Ghidra is much easier.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thank you for the candid feedback! Others have remarked this on this particular video and it made me realize in retrospect that I missed the opportunity to do so in this one (I was so excited to publish this as my first vid that I think my mind was all over the place). That said, I’ve tried to improve that in my other videos so I hope you’ll find the feedback well received! Thanks so much for watching!
@TakadoGaming
@TakadoGaming 3 жыл бұрын
I'm really glad I found your channel! Looking forward to more sometime soon!
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Me too! Thanks so much, and hope to put out more soon!
@michaelhoefler5118
@michaelhoefler5118 3 жыл бұрын
Really really great content! I hope to see more in the future! Love the clear explanations
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Thank you so much; I’m so glad you enjoyed. I plan to put out some more content as soon as I can - A bit busy with a new kid on the way for now, but I have some ideas that are staged for some future videos :-)
@Eirenband
@Eirenband 2 жыл бұрын
What a great video. So far this is the only RE video I've come across that showed a full and concise analysis with a working patch at the end.
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
So happy you enjoyed it! I have a new vid cooking now; Hoping to upload by end of Jan :-). Thanks so much for the kind words.
@govnaizmesare
@govnaizmesare 3 жыл бұрын
Great video! Would like to see more content like this. There's one small mistake however, the GetSystemMetrics is passed a hex value in the Ghidra overview, so instead of 20 and 21 it should be 32 and 33, which relates to the thickness of the window border and not the arrows.
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Oh wow you are absolutely correct - I even say “They’re in decimal on this page” out loud and I still mucked that up! Thank you for pointing this out! I have added a correction in the description of the video. I really appreciate you catching this and watching!
@steventwigg2369
@steventwigg2369 2 жыл бұрын
The intro montage of Roller Coaster Tycoon deserves an award.
@sanderbos4243
@sanderbos4243 Жыл бұрын
Amazing tutorial, I'm sure I'll be rewatching it again fully in the future! :)
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thanks so much - so glad you enjoyed it and hope you continue to get something out of it. Something new coming to the channel this week, too ;-)
@naveenjkondeti4214
@naveenjkondeti4214 3 жыл бұрын
Nice, Always wanted to get into reverse engineering. Seems like starting with videogames could be fun way to start..
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Thanks for watching! Yeah, that’s partly why I wanted to start with this problem - it’s a bit easier to wrap your head around than starting with something like malware analysis. I hope this is helpful to you!
@ricardonacif5426
@ricardonacif5426 3 жыл бұрын
Guidedhacking.com is a great start for that.
@HarperLee1840
@HarperLee1840 Жыл бұрын
You tutorial is fun and easy to digest! Hope there's more of it.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thanks and so glad you enjoyed it! There are definitely more to come 😄
@TheAces1979
@TheAces1979 Жыл бұрын
Bookmarked this. You're an excellent instructor! Many thanks!
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
You are so kind, thank you! So glad you got something out of it. Hope to have a new video out shortly! So glad you enjoyed.
@JeremyKingTech
@JeremyKingTech 2 жыл бұрын
Great stuff! Thanks for the video! I've been on a journey to learn RE for a project and your guide has been super helpful demonstrating logic/workflow to deduce functions. Cheers!
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
Thanks so much! So glad you enjoyed and happy to see you moving through that journey! Stay tuned for some more RE content coming up in Jan :-)….
@valhalla_dev
@valhalla_dev 3 жыл бұрын
Fantastic content buddy, I learned a ton about the mentality/methodology as well as the practical manner that patches are applied.
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Appreciate you watching it through man - thanks for the kind words and hope you enjoyed it.
@padraiglogue3568
@padraiglogue3568 11 ай бұрын
Exceptionally high quality videos you're making here, you have a knack for teaching clearly! I'd love to see you run through some windows kernel exploits. Time to binge watch the rest of your channel
@jeFF0Falltrades
@jeFF0Falltrades 11 ай бұрын
Thank you so much! And thanks for the recommendation - I would love to do an exploit video sometime but have to tread carefully due to YT’s rules on educational videos/malicious intent etc…have had issues in the past. But I’ll try to cobble something together sometime.
@username17234
@username17234 2 жыл бұрын
Very useful video, a valuable resource for sure, I was surprised to see it was the only video in the channel.
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
Thank you for the kind words! I’m working on a new one now, but some work and family matters (which I’ll talk about a bit in the next video), have made it prohibitive to upload often this past year. When I do put something out, I want the quality to be there :-). Thanks so much for watching.
@toweri_li
@toweri_li Жыл бұрын
The first time I am watching how an executable is debugged / patched on Windows - as opposed to Commodore 64 ROM in late 80's - and I actually understood this! This speaks volumes on your capability to explain a fairly complex process to a 100% genuine noob in undestandable way! Go ahead, pat yourself on the back. You truly deserve it! :)
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Ah man, thank you so much for the kinds words! So glad you were able to get something out of it; Thanks so much for watching!
@bommijn
@bommijn Жыл бұрын
Was fun to follow allong, thanks for the video :) Learned allot as well.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
So glad to hear it! Thanks so much for watching!
@marcelyamamoto9901
@marcelyamamoto9901 2 жыл бұрын
Man this was amazing, please do more! Im very intrested in start with reverse engineering too, ur video was a nice motivation! Thank you for it and the resources!
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
Not sure why I missed this when you first posted it, but thank you! I’ve got another couple of ideas planned and am going on holiday here shortly, so hoping to upload another one here soon 🤞
@marcelyamamoto9901
@marcelyamamoto9901 2 жыл бұрын
@@jeFF0FalltradesRelax man, no stress ;) Yesss, already preparing the popcorn 🥳🥳
@Tehploe
@Tehploe 10 ай бұрын
This was a lot of fun! Great video.
@jeFF0Falltrades
@jeFF0Falltrades 10 ай бұрын
So glad you enjoyed! Thanks so much for watching and for the kind words!
@OthmanAlikhan
@OthmanAlikhan 3 жыл бұрын
Thanks for taking the effort in making a rather lengthy and quality video. I've learned quite a few things from watching =)
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Thank you so much for watching and for the kind words. I really tried to make this as accessible as possible - I’m glad to hear it was helpful!
@ByronHadley1
@ByronHadley1 3 жыл бұрын
Five star stuff. Thanks so much for sharing. Easy to follow and extremely educational!
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Thank you so much, Byron! So glad to hear you thought so. Looking forward to making more once I finish a couple of projects :-)
@The_Makers_Prerogative
@The_Makers_Prerogative Жыл бұрын
I enjoyed following your workflow, Excellent Video!
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
So glad you enjoyed! Thanks for watching!
@lennard21M
@lennard21M 7 ай бұрын
I rarely watch such long videos but I enjoyed this one until the last minute. Thank you for sharing with us. Great content :) I learned a lot
@jeFF0Falltrades
@jeFF0Falltrades 7 ай бұрын
Thank you so much for watching and for the kind words! So glad you enjoyed! I am currently at the tail end of prep for a new, very similar video - I hope you enjoy that too 😊
@lennard21M
@lennard21M 7 ай бұрын
@@jeFF0Falltrades Oh great, I'm looking forward to it. I'll definitely take a look. I'm new to reverse engineering and can really use videos like this :) I have a lot of fun with it
@jeFF0Falltrades
@jeFF0Falltrades 7 ай бұрын
@@lennard21M It’s a great time (if not frustrating). So glad to hear it
@raccdust
@raccdust Жыл бұрын
Great video, very well explained and made easy to understand as a beginner of reverse engineering like myself!
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
So glad to hear!! I’m in the midst of recording a new one for beginners at RE now ;-). Stay tuned! Thank you for watching!
@nola25_
@nola25_ Жыл бұрын
Thank you for this educational video! I really learned a lot from it. You explained it well and kept pointing out your mistakes, which is essential for a good understanding (especially for beginners like me). I would really like to see more on patching/cracking games.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thanks so much for watching and even more for the great feedback! I’ve had a LOT of requests for more game-related reversing, so that one is heavy on my mind for the next videos - I’ll try to find something creative like this but RCT was such a gem; It’s going to be hard to top.
@jmikhailov
@jmikhailov 2 жыл бұрын
Thank you for keeping the threshold of content's quality so high
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
Thank you for watching and so happy you enjoy!
@BillEngwall
@BillEngwall 3 жыл бұрын
What a champ Jeff, I am new to reverse engineering. Came from reddit, stayed for full hour. Loved it, understood it and it was very interactive too. Thanks a lot!! Earned a sub ;)
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
The highest praise I could get is knowing this helped someone getting started: Thank you so, so much CureofQuarantine! So glad you enjoyed, and excited to do more soon.
@MeteorMetro
@MeteorMetro 2 жыл бұрын
Thank you! Have been trying to get into this a few times, but have been struggling with Ghidra and couldn't find the resources until now. Great Video!
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
So glad you liked it! Thanks for watching!
@erickuhn3500
@erickuhn3500 2 ай бұрын
Well done! I enjoyed watching this video a lot.
@jeFF0Falltrades
@jeFF0Falltrades 2 ай бұрын
Thank you so much and glad to hear! If you haven’t seen the spiritual successor to this one (the latest RCT vid on the channel), you’d likely enjoy that one as well - much stranger but more interesting 😂 Thanks so much for watching and glad you enjoyed!
@Pi7on
@Pi7on Жыл бұрын
Very informative, thanks for documenting the whole process!
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thanks for watching and so glad you got something out of it! More coming soon :-)
@Pi7on
@Pi7on Жыл бұрын
@@jeFF0Falltrades glad to hear it! I'm definitely keeping an eye out for your vids! Personally I love watching people reverse engineering a game to fix an abscure bug. Do you know mattkc and exilelord? They made a video on lego island and guitar hero respectively, documenting their journey reversing the game. I love this stuff
@mohssineelharfi5909
@mohssineelharfi5909 2 жыл бұрын
sure thing, I enjoyed it a lot, thx for this awsome content
@9wattcat
@9wattcat Жыл бұрын
Nice video! Nog den första reverse engineering videon på KZbin som har varit rolig att kolla på :)
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Tusen tack! Det var ju målet då jag skapade kanalen, och det är så häftigt å se så många folk som njuter av ämnet. Tack för att du tittar!
@sigxfs
@sigxfs Жыл бұрын
Awesome tutorial. I have experience reverse engineering and tweaking games with Cheat Engine but I've never taken the plunge into Ghidra as it always seemed intimidating, this video was a great introduction to it. I really appreciate you showing the x64dbg breakdown aswell, super useful.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
So glad you enjoyed and thanks for the kind words! If you ever want to dive in deeper, feel free to check out the x86 reversing series I posted here last month.
@subtractaddy
@subtractaddy Жыл бұрын
Wow! Thank you so much for such a clear and approachable tutorial video! One of the hardest things with trying to learn something new and technical like reverse engineering, is feeling like you can do it. I am inspired now so thank you :D
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
So glad to hear you enjoyed, and even more happy to be part of your journey in finding out: YES! You can do it. And that goes for everyone here; believe me, if I can, you all can. Keep learning.
@omdangy
@omdangy Жыл бұрын
Brilliant tutorial! You're a very good teacher, thank you
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thank you so much for your kind words - I hope it was helpful to you!
@sandrovolery1168
@sandrovolery1168 Жыл бұрын
Aight we've gone full circle. From a game, written in assembly, decompiled to C-code xD Nice video
@jakydibee8569
@jakydibee8569 2 жыл бұрын
really interesting video!!, much better dive right into the analysis than watch endless just theoretical tutorials
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
Glad to hear it! Hoping to do more when the holiday season comes around.
@JellyLancelot
@JellyLancelot Жыл бұрын
Truly an awesome video, so interesting and such an engaging topic.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
So glad you enjoyed! Hope you continue to enjoy the channel, and thanks so much for watching
@gamehero7198
@gamehero7198 7 ай бұрын
this video is awsome exactly what i was looking for, i know stuff about C, C++, asm and basic workings of windows, compiling and memory, but reversing was always such an overwhelming task, im just 20 mins into the video and allready blown away on how good this is
@jeFF0Falltrades
@jeFF0Falltrades 7 ай бұрын
So glad you enjoy! I’m working on another (very similar one) at the moment - and if you’d like to really dive in, I have an x86 assembly course posted as well. Have fun and let me know if you have any questions!
@gamehero7198
@gamehero7198 7 ай бұрын
@@jeFF0Falltrades such a quick response :D im amazed, yeah i would definitely be interested in an asm course, i mean theres not so much good documentation on it out there (i know basic x64 asm), im only 3 years into programming as of now (or better speaking 1,5-2, 1 year i was just fooling around), wich some might consider early to dive into such, more deeper fields but i just think its so much more fascinating than just plain java script or stuff like that, that to me just seems like talking english to a computer, computer science is the way to go for me :D
@jeFF0Falltrades
@jeFF0Falltrades 7 ай бұрын
@@gamehero7198 Haha you caught me during some downtime during travel. Awesome! Well, take it at your own pace and def don’t stress out over learning everything at once. There’s always more and more to learn later. Enjoy your studies too; I was a CS major and loved every bit of it (esp writing only a max of 2 essays in uni 😂)
@gamehero7198
@gamehero7198 7 ай бұрын
@@jeFF0Falltrades I mean Im self taught, I spend to much time at the computer and to little at school 😅. So yeah, my goal is currently to land a job in development. I'm currently aiming at web development. Seems like web devs are always needed but my end goal is earning a living coding C or C++ mainly, but I first wanna add something to my resumee 🤷🏻‍♂️😅
@alexandrepereira6522
@alexandrepereira6522 Жыл бұрын
Thanks KZbin for suggesting me this video (and of course you to have created it). One thing that I think would have helped a lot newbies like me to understand a bit more is renaming functions/variables while debugging.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thanks for the great feedback! Some others have commented the same and I’d like to think I did a better job in my other videos - I was so excited to get this first one done I totally blanked on it haha. Thanks for watching!
@mahmoudabdullah4153
@mahmoudabdullah4153 3 жыл бұрын
that's a great video, thank you for sharing it. I'm waiting for more.
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Thank you for watching! I’m hoping to make more soon!
@santiagocalvo
@santiagocalvo 11 ай бұрын
No idea how I got here but I'm subscribing, great video!!!
@jeFF0Falltrades
@jeFF0Falltrades 11 ай бұрын
No idea either, but glad you are here!
@Wielorybkek
@Wielorybkek 6 ай бұрын
very interesting video! I'm a programmer but I've never touched any of this low level stuff, it was really cool to learn how it works. I did not understand everything but I got the idea of what you were doing and it was satisfying to see the final solution.
@jeFF0Falltrades
@jeFF0Falltrades 6 ай бұрын
That’s great feedback! If you’re interested in learning more of the details at a slower pace, I’d recommend checking out my x86 assembly course posted on this channel. I’ll also have another, similar video I’m hoping to publish before year end :-) Thanks for taking the time to leave a comment and so glad you enjoyed.
@Wielorybkek
@Wielorybkek 6 ай бұрын
@@jeFF0Falltrades Haha if only I had time to learn. :D But thanks for the recommendation, I appreciate the effort.
@jeFF0Falltrades
@jeFF0Falltrades 6 ай бұрын
@@Wielorybkek So long as you’re having fun, that’s what counts 👌
@ferna2294
@ferna2294 Жыл бұрын
Beautiful. This will be very useful. Thank you so much!
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
I hope so! Thanks so much for watching!
@omerbennahum1903
@omerbennahum1903 Жыл бұрын
Beautiful demo. Thanks!
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Glad you enjoyed! Hope to do more soon!
@nerdyape4738
@nerdyape4738 3 жыл бұрын
AMAZING WORK ! please keep going
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Thank you so much! I plan to!
@RandyFortier
@RandyFortier Ай бұрын
Great video, and very interesting to see the process. One recommendation would be to change the names of the variables and functions in Ghidra as you go. It will make the program become more readable over time, as you discover what everything does.
@jeFF0Falltrades
@jeFF0Falltrades Ай бұрын
Thank you Randy! Yeah, this being my first one of these videos, I failed there, likely due to overexcitement 😁 - this was one of the primary pieces of feedback I got for this one, and I took it to heart. Happy to say I’ve gotten better with subsequent videos. Thanks so much for watching and for the kind words!
@RandyFortier
@RandyFortier Ай бұрын
@@jeFF0Falltrades It is pretty rare to find this content, so I was glad to find it. The quality is very good! I look forward to watching some of the other videos!
@jeFF0Falltrades
@jeFF0Falltrades Ай бұрын
@@RandyFortier Thank you so much! And agreed; that’s really why I’ve kept with it. That and the incredible community that’s been built up around it :-)
@guitarcallum
@guitarcallum Жыл бұрын
This was a fantastic video, thank you soo much!
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
So glad you enjoyed! Thank you for watching!
@nemtudom5074
@nemtudom5074 6 ай бұрын
I just yesterday figured out basic hex editing to reverse engineer how Heroes of might and magic 3's scoreboard works, so this video came at just the right time to fuel my newfound interest Thanks
@jeFF0Falltrades
@jeFF0Falltrades 6 ай бұрын
Great to hear! I’m finishing up another game modding tutorial as we speak, so stayed tuned! Thanks for watching
@pedrogabrielnogueira1068
@pedrogabrielnogueira1068 3 ай бұрын
I'm just saying what i think of the beginning of the video: This looks amazing. You are going to solve a real problem for a game with patching. Awesome. Valuable content.
@jeFF0Falltrades
@jeFF0Falltrades 3 ай бұрын
Thank you so much! I hope you enjoy this, and if you do, I hope you enjoy my other vids - which arguably have only gotten better in quality with time (not by much but I’d like to think a little 😂) Thanks so much for watching and for your kind words!
@Ataraxia_Atom
@Ataraxia_Atom Жыл бұрын
This is freaking awesome! I loved this game
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
It really does so much for the nostalgic soul - Thanks so much for watching!
@deathscreton
@deathscreton Жыл бұрын
Recently saw this on Reddit and ended up consuming the whole video during my workday. There was a time I tried my hand at creating a no-cd patch for Ancient Conquest: Quest for The Golden Fleece and hit walls. I may have to give this another shot, thanks to this vid.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Awesome! So glad you enjoyed and glad it inspired some tinkering! Can’t tell you how many times I walked away from a project out of frustration, only to come back and have a blast with it with fresh eyes - I hope you get some learning and fun out of it. Thanks for watching!
@garyhoffman7677
@garyhoffman7677 3 жыл бұрын
Awesome job mate, keep it up
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Thanks so much, Gary. My first foray into something like this, and I’m really happy about how it’s been received. Happy New Year!
@akaez2807
@akaez2807 2 жыл бұрын
Great job Excellent explanatory
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
Thank you so much - and thanks for watching!
@waden9933
@waden9933 4 ай бұрын
Thank you so much! I wanted to learn more about reverse engineering this game and everything made sense. Great work with this! As an added bonus I wanted to get it running on my Steamdeck and by copying the regedit files to my system I was able to get the game running perfectly on Linux! Thanks again!
@jeFF0Falltrades
@jeFF0Falltrades 4 ай бұрын
Oh sick!! So happy to hear that you got it working, and well done on your behalf! Thanks so much for watching and if you ever have any RE type questions, feel free to shoot me a comment/DM.
@waden9933
@waden9933 4 ай бұрын
@@jeFF0Falltrades WIll do!
@user-xe6wc8yt7u
@user-xe6wc8yt7u Жыл бұрын
I watched this video like a blockbuster movie! Plz, more videos like this!
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
More on the way soon! Have some ideas ready to go - just need to find the time to plan and record them :-). Thanks for watching and feel free to check out the other couple of vids here if they interest you!
@user-xe6wc8yt7u
@user-xe6wc8yt7u Жыл бұрын
@@jeFF0Falltrades Glad to hear it) Next is 3 hour long video about solitaire)
@talbaraz8916
@talbaraz8916 2 жыл бұрын
this is a great video, very interesting sat through the whole video :)
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
So glad you enjoyed!
@AlphaYellow
@AlphaYellow 5 ай бұрын
I have a really longtime goal of patching most of the mid to late 90s and early 2000s 3D games that never got any kind of unofficial patches (both known and unknown ones, seems like there's a popularity and nostalgia bias in relation to the modding community for old games), but that's proving to be way more difficult than I thought, your tutorials are helping me quite a bit though, thanks
@jeFF0Falltrades
@jeFF0Falltrades 5 ай бұрын
So glad to hear it! So many good games in the graveyard that could potentially be resurrected! Hope you enjoy this and my other tutorials
@Muninn0
@Muninn0 5 ай бұрын
great video, enjoyed to watch your journey :)
@jeFF0Falltrades
@jeFF0Falltrades 5 ай бұрын
So glad you enjoyed! FYI: Something of a spiritual successor to this video is going to be published next week ;-). Thanks for watching!
@Muninn0
@Muninn0 5 ай бұрын
@@jeFF0Falltrades great so, i just found your channel in the right time then :D looking forward to it
@jeFF0Falltrades
@jeFF0Falltrades 5 ай бұрын
@@Muninn0 I just hope you enjoy it as much as this one - thanks so much 🙏
@djglitch2.031
@djglitch2.031 Жыл бұрын
I was looking for a way to reverse engineer programs to understand how some functions work when building other things. I didn't know that exe decompilers already existed. Saves me a bunch of time.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
They do and they are (or can be) wonderful. Thanks for watching!
@djglitch2.031
@djglitch2.031 Жыл бұрын
@@jeFF0Falltrades Can you make a tutorial on how to install one though? Cause it downloads a zip and I tried looking for some to no avail, unless you can add a tutorial video to the desc. that's already made. It's also very confusing on how to install programs that are in zip files in general.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
@@djglitch2.031 You know that’s not a bad idea - I’m realizing I have it preinstalled in all my vids - Next time I make a vid with Ghidra I can do a full install of it. It’s not difficult to understand once you know how Ghidra works via Java, but yeah - I do remember I had to take a few extra steps to make a shortcut to it and such and make it “act like a normal program”. Thanks for the feedback!
@djglitch2.031
@djglitch2.031 Жыл бұрын
@@jeFF0Falltrades Np, I like the helpful programs that always seems to be in zip formats which get really annoying to work out for newbies like me.
@le9038
@le9038 Жыл бұрын
That was pretty fun! thank you! ]
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
So glad you thought so! Thank you for joining us!
@stkke93
@stkke93 Жыл бұрын
Evening intended to play a nostalgic game ended up with you working instead (you workaholic!) Also! for it to be too late when you were done .... classic Hat off for you.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Hahaha my wife still pokes fun at me because I spent much more time on the RE than I did playing (I think I played a single game the day after the upload, and then my nostalgia was fulfilled) 😆. No regrets; It was such a fun experiment. Thanks for watching!
@DrixoGaming
@DrixoGaming 3 жыл бұрын
Well just saying it's was realy good to watch even i don't have any tips to give but i was wanted to say how i appreciat the flow and everything it was interresing.
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Thank you so much, Dj-Xo! I’m so happy you enjoyed.
@tompotter4511
@tompotter4511 2 жыл бұрын
Very nice work! Be great if you could tackle some more problems. Thanks for the resources to. Very helpful!
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
Thanks very much! Planning some various topics to explore in future videos :-)
@V_ice
@V_ice Жыл бұрын
these videos are a god send
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
So glad you enjoy them!
@XxXjujio2013XxX
@XxXjujio2013XxX Жыл бұрын
Thanks for the video. I... just... one day I gonna see it, but not today.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Take your time...I’ll be here ¯\_(ツ)_/¯ 😁
@PlasticCogLiquid
@PlasticCogLiquid Жыл бұрын
Nice work!
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thanks - and I hope you enjoyed!
@DeniusZZR
@DeniusZZR Жыл бұрын
WOW! Thanks so much!
@reindeerfinn9249
@reindeerfinn9249 2 жыл бұрын
Awesome tutorial!
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
Thank you! Hope to publish a new one by the end of this month 🤞
@danielstocker2578
@danielstocker2578 2 жыл бұрын
Nice one, thanks !
@orgozlan323
@orgozlan323 3 жыл бұрын
Awesome vid . Thank you !
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Thank you, Or! So glad to hear you liked it.
@neraprojects
@neraprojects Жыл бұрын
Thank you! Awesome!
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thanks for watching!
@lugadug9475
@lugadug9475 Жыл бұрын
Thank you dude, with your help, i patched old game called "Neighbours from Hell", so now i can play without "old" fullscreen mode(800x600 window size)
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Heck yeah! It’s always so nice to hear about people like you who go out and apply this, esp when it comes to patching old school games. Congrats, great job, and thanks for watching!
@Antonio-yy2ec
@Antonio-yy2ec 2 жыл бұрын
This video is pure gold
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
Your comment is pure gold, my dude. Thanks for watching and glad you enjoyed
@onerimeuse
@onerimeuse Жыл бұрын
99% assembler code, all by one dude no less. Just one guys passion project.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
This is why I love video games - so much passion, blood, sweat, and tears poured into giving people an escape to have fun and enjoy life.
@ilhamriskiwibowo
@ilhamriskiwibowo 2 жыл бұрын
This is amazing work, bcs use python too for patching. I learn from open roller coaster tycoon too.
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Hey everyone and thanks so much for watching and for all of the great feedback! Please be sure to check out some of the other comments for tips, resources, and submitted feedback. I hope you enjoy!
@padwan1000
@padwan1000 3 жыл бұрын
Hi, awesome video. I like to ask you where is a good place to really learn C language. I think C is so cool but the learning process, at least to me had been painful, as you have much more knowledge you have to know a good resource for better learning from language. Thanks.
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Hi Marcos, and thanks so much! I put a few resources in the video description here, but it depends on how you best learn: If you learn better through videos and a university-course like environment, try Harvard’s CS50 course: cs50.tv/ If you prefer reading and self-learning, this is a good book as well: C Programming: A Modern Approach, 2nd Edition www.amazon.com/dp/0393979504/ref=cm_sw_r_cp_api_glc_fabc_UGX8Fb9B8FBGF Also be sure to check the resources I posted, as a few of them have lists of other resources. Hope that helps! Thanks for watching!
@padwan1000
@padwan1000 3 жыл бұрын
@@jeFF0Falltrades Thanks for your reply and a book recommendation, I like to watch some teach classes in video, but I don't refuse a good programming book. I'll take a good look at this book and let you know what I think about it.
@padwan1000
@padwan1000 3 жыл бұрын
@@jeFF0Falltrades Hi, again. There’s another hacker channel o even another hacker resource which you recommend I follow to get more hacking knowledge? Any recommendation will be welcome. ps: the book that you was recommend is awesome, pleasure reading and easy to understand. Thanks.
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
@@padwan1000 Hi again! I always like to recommend Colin Hardy's KZbin channel - He's been doing this a lot longer than me, and he's brilliant at it.
@gopro2027
@gopro2027 Жыл бұрын
I miss game modding so much. I wanna do it for a job but not really sure where I can do that at. I just liked the puzzle part of it, it was so rewarding.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
There are a good amount of jobs involving reversing or even game-specific reversing and mods as part of game dev/anti-cheat teams! Not to mention the malware analysis route - Hope you find something that suits you regardless! And thanks for watching!
@timfennis91
@timfennis91 Жыл бұрын
Thanks for making this video. I've always been curious about reverse engineering and this was definitely a very good introduction. If I had to offer any criticism I would agree with some others that naming the variables would have been great, and for me personally the tempo could have been higher. You obviously worried a lot that this video would be too difficult for your audience but I think it's fine.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thank you for the feedback! Some others mentioned the same, and I agree - I’ve gotten better at this with my more recent videos (I think I was just too excited when filming this first one that it just fell right out of my head to label everything). Thanks for watching!
@dennisanderson8663
@dennisanderson8663 5 ай бұрын
I remember using Dragons RCT trainer. Whoever wrote that is awesome because the number of things you could do to your rides was insane.
@jeFF0Falltrades
@jeFF0Falltrades 5 ай бұрын
I talked about this in my latest RCT video from last week, but I am just gobsmacked by the skill of the early reversers who build tools like the OG RCT trainers with far fewer good RE tools we have today. It’s incredible.
@bigapple89
@bigapple89 Жыл бұрын
Great video. I wish you showed a bit more of the gameplay in its new fullscreen glory
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
My wife loves to poke fun at me because I barely got a chance to play following this (I did play for a good few days though) - I was too excited about this whole exploration that I was so much more focused on getting the video out. So glad you enjoyed!
@contasfinalcontasfinal
@contasfinalcontasfinal 6 ай бұрын
cool, I dint understood everthing but was a good video
@jeFF0Falltrades
@jeFF0Falltrades 6 ай бұрын
Glad you enjoyed, and if it interested you, I’ll have a very similar one coming out soon :-). Thanks for watching!
@tetraphobie
@tetraphobie Жыл бұрын
I was looking for an introductory Ghidra tutorial and came across your video. Really like how you explain your thought process making the whole process very easy to follow and understand. I'd certainly recommend this video to any C/C++/assembly programmer interested in reverse engineering as an accessible entry point. Saw that Ghidra has a debugger now. I wonder how good it is compared to x64dbg. :)
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
So glad you enjoyed! I really appreciate the feedback. I have another video idea I am working on right now that I hope to improve in terms of a “reversing beginner’s tutorial” based on lessons learned from publishing this video. And FWIW, I still enjoy using x64dbg for now; But probably just because I know where everything is :-)
@tetraphobie
@tetraphobie Жыл бұрын
​@@jeFF0Falltrades That's very cool! I'll likely give it a watch when it's out. Best of luck with your work! :)
@tetraphobie
@tetraphobie Жыл бұрын
Small update: inspired by your video I tried doing some reverse engineering of an old MS-DOS app with Ghidra. But it turns out Ghidra has incomplete support for 16-bit real mode and gets confused by segment registers and far pointers. Either that or I'm missing something. Oh well. 😂
@saultube44
@saultube44 4 ай бұрын
Thanks, very clarifying
@jeFF0Falltrades
@jeFF0Falltrades 4 ай бұрын
So glad to hear it! Feel free to check out my other RE tutorials and course if you’re interested in more details.
@vuurniacsquarewave5091
@vuurniacsquarewave5091 Жыл бұрын
I'm pretty sure giving readers some kind of a bitfield-like explanation for those values that are added up, essentially flags, would be a lot easier to digest, not to mention being able to switch value representations to binary on the fly might help... but great video! I've only ever worked with 8 and 16-bit CPUs in assembly and it's fun to see how you communicate with the OS on a modern platform.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thanks for the feedback! I took both of these down for consideration in some upcoming primers for beginners - they’re both great points. Thanks for watching!
@vuurniacsquarewave5091
@vuurniacsquarewave5091 Жыл бұрын
@@jeFF0Falltrades I don't think it's a you problem but rather a Microsoft documentation problem. Surely if someone is patching a disassembly there are ways to OR those property flags together and have the assembler take it from there, but it might be cleaner from Microsoft's side, to show the bitfield in addition to a 32-bit hexadecimal value.
@Garymaster4321
@Garymaster4321 Жыл бұрын
Very well done video, thanks for the easy learning experience
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
So glad you enjoyed! Thanks for watching and sharing your comments!
@fuckbitchesgehmoney
@fuckbitchesgehmoney 9 ай бұрын
I've just started that cs50 course you have in the desc. and I found it quite intresting as to how many concepts overlap with engineering just in the first lecture.
@l3lackoutsMedia
@l3lackoutsMedia 2 жыл бұрын
This is the first reverse engineering ghidra video, that seems to click instantly for me.
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
Glad to hear it!! Thanks for watching and hope to have a new video out soon.
@benjcalderon
@benjcalderon 3 жыл бұрын
awesome video! thank you for this 😃 I'm thinking about reverse engineering the software to program a HAM Radio... probably a big bite for starting but this gives me a lot of info to using ghidra and the debugger bight actually come quite handy!
@jeFF0Falltrades
@jeFF0Falltrades 3 жыл бұрын
Hey thanks a lot Benjamín! I hope it helps you in your journey to doing some RE on the HAM radio software! That sounds awesome, btw - if you post anything about it, please let me know!
@nekotnekot7531
@nekotnekot7531 5 ай бұрын
Fascinating :)
@jeFF0Falltrades
@jeFF0Falltrades 5 ай бұрын
So glad you enjoyed! I’ll be recording a very similar video this week :-). Stay tuned and thanks for watching!
@Nick-lu5bn
@Nick-lu5bn 2 жыл бұрын
What a great tutorial! Thanks, I successfully patched GOG version of RCT with your help, albeit with minor complications. I don't know, maybe it's trivial matter, but I think that the following would be useful. 1:16:45 You talk about relative address without clarifying how to actually get it. Luckily, by poking around in Ghidra's Code Browser I found what I need. One can patch instruction (Ctrl+Shift+G), replacing absolute address of an old function (0x005840f8, for example) with address of a new one (0x005840a5). I can't say I understand how "CALL 0x005840a5" becomes E8 33 7A FF FF, but it still works.
@jeFF0Falltrades
@jeFF0Falltrades 2 жыл бұрын
Thanks so much for the feedback, for watching, and nice job on patching! I also realized - in working on my next video - that I did not spend enough time talking about RVAs vs offsets vs absolute addresses (this will be pivotal in the new video) so I promise I will hit on that in the next one. Regarding your question about that instruction, there are a couple of reasons I can imagine you are seeing the hex addresses you are (i.e. 0xFFFF7A33): One might be that you are seeing a relative address jump, so you are seeing a 16-bit address relative to the instruction (so all the highest bits are 0s), or it could be a placeholder value before the real address is linked. In the context of what you were doing, I think it’s probably the latter. Thanks for watching and for the great feedback!
@cheez3d
@cheez3d Жыл бұрын
Not sure if someone already pointed this out, but at 45:35 you don't really have to use Ctrl+G in order to see what's at the addresses, because it is already shown to you above the dump views when the instruction referencing the address in question is selected in the CPU view. Example: dword ptr [rct.00C3E0A8]=20
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Good spot - yes, I should have highlighted the little “current step” box you’re referring to, but wanted to get into the habit of using the dump view to peruse around while keeping the CPU view the same. This is a good tip, though, and I’ll try to remember to highlight that section of the GUI next time we open the debugger. Thanks for watching!
@sergeyfiantsev2854
@sergeyfiantsev2854 5 ай бұрын
great guide. thank you.
@jeFF0Falltrades
@jeFF0Falltrades 5 ай бұрын
Thank you for watching!
@blagoevski336
@blagoevski336 Жыл бұрын
I fell asleep not knowing that that i didn't turn off my phone and slept through this entire video.
@abhispark
@abhispark Жыл бұрын
Great RE 101 kudos.
@jeFF0Falltrades
@jeFF0Falltrades Жыл бұрын
Thank you!
@TeamUnpro
@TeamUnpro 5 ай бұрын
Fantastic tutorial, hope you dont suffer from burnout issues like I do lol, the vids 2 years old so I suppose you're still kicking, so keep at it :) Subbed
@jeFF0Falltrades
@jeFF0Falltrades 5 ай бұрын
Nope! In fact, just about to record a very similar video this week! Still loving doing this channel, as opposed to my last one which did very much become a burnout. Thanks so much for the sub and for watching!
@TeamUnpro
@TeamUnpro 5 ай бұрын
Looking forward to the vid!@@jeFF0Falltrades
Reverse Engineering and Weaponizing XP Solitaire (Mini-Course)
2:50:50
jeFF0Falltrades
Рет қаралды 51 М.
蜘蛛侠这操作也太坏了吧#蜘蛛侠#超人#超凡蜘蛛
00:47
超凡蜘蛛
Рет қаралды 48 МЛН
Она Постояла За Себя! ❤️
00:25
Глеб Рандалайнен
Рет қаралды 6 МЛН
Зу-зу Күлпәш. Стоп. (1-бөлім)
52:33
ASTANATV Movie
Рет қаралды 875 М.
How to reverse engineer & patch a Game Boy ROM
12:35
stacksmashing
Рет қаралды 141 М.
Why Roller Coaster Tycoon is a Game Development Masterpiece
11:59
Tech Stories
Рет қаралды 962 М.
Reverse Engineering RollerCoaster Tycoon | How does it work?
38:54
Nathan Baggs
Рет қаралды 222 М.
how NASA writes space-proof code
6:03
Low Level Learning
Рет қаралды 2 МЛН
Reverse Engineered old Compression Algorithm for Frogger
16:29
LiveOverflow
Рет қаралды 252 М.
So I started decompiling LEGO Island...
21:19
MattKC
Рет қаралды 852 М.
MMORPG Bot Reverse Engineering and Tracking
9:46
LiveOverflow
Рет қаралды 669 М.
蜘蛛侠这操作也太坏了吧#蜘蛛侠#超人#超凡蜘蛛
00:47
超凡蜘蛛
Рет қаралды 48 МЛН