jeFF0Falltrades
jeFF0Falltrades
  • 16
  • 394 602
Analyzing Real Malware in our DIY Sandbox | master0Fnone Episode 2.2: Sandbox in a Box
(Part 2 of 2)
If you've ever wanted to analyze malware on your own without spending a fortune, this is your time.
In this free master0Fnone class, you will learn to:
1. Build a simple malware analysis lab for FREE, using 2 virtual machines (Remnux and Windows 10) and several free analysis and monitoring tools
2. Snapshot your lab and make it exportable so you can bring it anywhere
3. Examine some real malware samples in your newly-built sandbox, test out the tools we installed, and discover how to pull indicators of compromise and artifacts for detections and determining what the malware is trying to accomplish
4. Challenge you to take what you've learned and use it to achieve an entry on the "Wall of Fame" by analyzing the included "CrackMe" program and finding all the flags!
The jeFF0Falltrades master0Fnone Class series is a collection of free online courses dedicated to making learning complex topics - like malware analysis - more accessible (and fun) to everyone.
Please leave feedback and questions here as comments, or DM me on Mastodon (social links listed on the channel).
Check the pinned comment for any updates to the content.
Let me know what you would like to see in future videos!
Project Homepage and CrackMe Challenge Instructions: github.com/jeFF0Falltrades/Tutorials/tree/master/master0Fnone_classes/2_Sandbox_in_a_Box
CrackMe Challenge Form: forms.gle/nE2yFZowxhCKBPw37
Thank you to these incredible artists whose works were featured in this video:
Thumbnail image derived from this work by gstudioimagen1 on Freepik
www.freepik.com/free-vector/video-game-futuristic-room_29109107.htm#fromView=search&page=1&position=19&uuid=8b0f8e16-7e5b-4638-819c-942747cfa8af
00:00:00 - Intro to Part 2
00:02:59 - Start XWorm analysis
00:05:24 - Analysis workflow/checking the script
00:08:31 - Setting up monitoring tools
00:13:58 - Running the XWorm sample
00:15:51 - Examining dropped scripts
00:16:45 - Watching the malware run in memory
00:19:33 - Extracting the payload using pe-sieve
00:21:02 - Using procmon to find the keylogger log
00:22:47 - Decompiling and extracting the configuration in dnSpy
00:25:19 - Modifying INetSim to analyze C2 communication
00:29:45 - Examining strings in memory using System Informer
00:36:07 - Wrapping up XWorm; Start examining macros from maldoc
00:39:20 - Macro analysis w/ OLE tools and ViperMonkey on Remnux
00:41:29 - Extracting an embedded EXE w/ ViperMonkey
00:42:34 - Examining the payload with Detect-It-Easy
00:43:09 - Analyzing the loader program
00:48:11 - Examining the loaded malware
00:52:27 - Analyzing network traffic from the malware
00:57:57 - Dumping the payload w/ pe-sieve and analyzing w/ dnSpy
00:59:08 - Using RAT King Parser to dump the RAT config
01:02:36 - End AsyncRAT; Start Adwind
01:07:16 - Examining the files dropped by Adwind
01:11:12 - Using jd-gui and Bytecode-Viewer to decompile JARs
01:15:48 - Quick look at jadx
01:16:30 - Improv Python decoding!
01:17:03 - Dumping Java classes using Bytecode-Viewer
01:18:02 - End Adwind; Start Royal Ransomware
01:19:57 - Debugging the ransomware w/ x64dbg/x32dbg
01:23:04 - Examining command-line flags for Royal
01:25:21 - Reverse engineering the -id flag
01:27:45 - Ransomware'ing ourselves (safely)
01:28:58 - Examining the ransomware's enumeration traffic
01:32:25 - Wrapping up Royal Ransomware
01:32:56 - Your turn! Go forth and do the CrackMe challenge!
zhlédnutí: 520

Video

DIY Malware Analysis Lab for Free (with CrackMe Challenge!) | master0Fnone Ep. 2.1: Sandbox in a Box
zhlédnutí 1KPřed dnem
(Part 1 of 2) If you've ever wanted to analyze malware on your own without spending a fortune, this is your time. In this free master0Fnone class, you will learn to: 1. Build a simple malware analysis lab for FREE, using 2 virtual machines (Remnux and Windows 10) and several free analysis and monitoring tools 2. Snapshot your lab and make it exportable so you can bring it anywhere 3. Examine so...
Coding The Rat King: A Multi-Family Malware Configuration Parser
zhlédnutí 2,4KPřed 3 měsíci
In this tutorial/code review, I'll walk you through my journey over the last couple of months to take our original ASyncRAT config parser/extractor and modify it to work with several related, cloned, and derivative Remote Access Trojan (RAT) families of malware. Even though this wasn't a scheduled video and it was done pretty much on a whim, I hope it will be insightful in the learning journey ...
jeFF0Falltrades in 2024
zhlédnutí 1,4KPřed 6 měsíci
I wanted to provide an update on the channel, as well as review your feedback, and talk about goings-on in my personal and professional life, and how all of this will influence my approach to the channel this upcoming year. TL;DR: Lots going on, but the fun will keep going, with some new ideas and topics on the horizon. Also, you all are full of good ideas, good feedback, and good vibes. Truly ...
[Game Mod Code Deep Dive] Modding RollerCoaster Tycoon into a Peele Horror Film
zhlédnutí 1,4KPřed 7 měsíci
This is Part 2/2 of the tutorial: Part 1 covers the reversing of RCT's graphics/sound systems and the building of the horror mod, while Part 2 deep dives into the Python and shellcode used to automate this mod (linked in the repo below). This tutorial showcases how to write a RollerCoaster Tycoon mod in Python that implements the following "horrific" changes to the gameplay: Any roller coaster ...
Modding RollerCoaster Tycoon into a Peele Horror Film (Game Modding/Reverse Engineering Tutorial)
zhlédnutí 6KPřed 7 měsíci
This tutorial showcases how to write a RollerCoaster Tycoon mod in Python that implements the following "horrific" changes to the gameplay: Any roller coaster crash/explosion will trigger the following: 1. A spinning skull animation at the crash site (animation can be changed) 2. A horror soundtrack which plays in the background (track can be changed) 3. Guests in the park will turn towards the...
Reverse Engineering master0Fnone Class | Episode 1.3: x86 Assembly Demystified
zhlédnutí 6KPřed rokem
Episode 1, Part 3 Trying to break into RE, but feeling overwhelmed? Looking for a better foundational understanding of what you're already practicing? Somewhere in between? This "master0Fnone Class" is for you - no matter where you assess yourself to be, you _can_ learn RE, and it doesn't have to be a slog. The jeFF0Falltrades master0Fnone Class series is a collection of free online courses mad...
Reverse Engineering master0Fnone Class | Episode 1.2: x86 Assembly Demystified
zhlédnutí 4,3KPřed rokem
Episode 1, Part 2 Trying to break into RE, but feeling overwhelmed? Looking for a better foundational understanding of what you're already practicing? Somewhere in between? This "master0Fnone Class" is for you - no matter where you assess yourself to be, you _can_ learn RE, and it doesn't have to be a slog. The jeFF0Falltrades master0Fnone Class series is a collection of free online courses mad...
Reverse Engineering master0Fnone Class | Episode 1.1: x86 Assembly Demystified
zhlédnutí 18KPřed rokem
Trying to break into RE, but feeling overwhelmed? Looking for a better foundational understanding of what you're already practicing? Somewhere in between? This "master0Fnone Class" is for you - no matter where you assess yourself to be, you *can* learn RE, and it doesn't have to be a slog. The jeFF0Falltrades master0Fnone Class series is a collection of free online courses made to make learning...
Reverse Engineering and Weaponizing XP Solitaire (Mini-Course)
zhlédnutí 56KPřed rokem
As a beginner, reverse engineering can be a daunting and frustrating endeavor - But it's a lot more fun if you can learn via hacking and modding games to create your own cheats and maybe even inject a few (harmless) pranks into the code! Whether you watch it all the way through, or just in bits and pieces, join me in this master (of none) class as we try to recapture the fun and amazement of be...
Baby’s First Malware Config Parser: Mini-Course w/ dnSpy+CyberChef+Python
zhlédnutí 8KPřed 2 lety
NOTE: See the updated Rat King Parser - the spiritual successor to this parser - here: czcams.com/video/yoz44QKe_2o/video.html Whether you’re just getting started in malware analysis or a seasoned pro looking to learn some new techniques, join me in this “mini-course” as we build a malware configuration parser for ASyncRAT in 3 ways - including writing an automated parser completely from scratc...
Reverse Engineering/Game Patching Tutorial: Full Res RollerCoaster Tycoon with Ghidra+x64dbg+Python
zhlédnutí 288KPřed 3 lety
Reverse Engineering/Game Patching Tutorial: Full Res RollerCoaster Tycoon with Ghidra x64dbg Python

Komentáře

  • @LinuxIsBetter43
    @LinuxIsBetter43 Před 9 hodinami

    02:23:07 I think both the commentator and you meant to say 127 "bits" instead of bytes. Yep, still slowly working my way through =)

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 8 hodinami

      @@LinuxIsBetter43 For the #US stream length? I believe it’s bytes - a string of <128 bytes results in 1 length byte, otherwise it gets 2. Let me know if you were referring to something else - thanks for watching and congrats on chugging right along!

    • @LinuxIsBetter43
      @LinuxIsBetter43 Před 8 hodinami

      @@jeFF0Falltrades You are correct. I just confused myself. Strings are measured in bytes, but in his comment there was binary in parenthesis, so it got in my head =)

    • @LinuxIsBetter43
      @LinuxIsBetter43 Před 8 hodinami

      @@jeFF0Falltrades I do have a question though. Later on you go to say that if 80 flag is set, then the actual length will be the following byte. What happens if the string is even longer than 255 bytes? Do we get another 80 flag and another length bit?

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 8 hodinami

      @@LinuxIsBetter43 No worries - I wouldn’t have been surprised in the least if I had misspoken because…well just keep watching my videos and you’ll see that it’s not uncommon 😂

    • @LinuxIsBetter43
      @LinuxIsBetter43 Před 8 hodinami

      @@jeFF0Falltrades No worries. BTW, RE my question above, AI says that it would be preceded by the 80 flag, and then the next 4 bytes are the length of the string (I asked about 300 byte of string for example), so it said there would be something like 80 2C 01 00 00. Idk maybe incorrect, here we see only 1 byte after 80, but maybe it's not writing them for optimisation purposes.

  • @jeFF0Falltrades
    @jeFF0Falltrades Před 15 hodinami

    Hello! Welcome to the pinned comment for this video, and thanks for watching! Updates: 00:24:00: I followed-up on this thought and RAT King Parser now supports parsing XWorm configs! Check out my GitHub for more info.

  • @ellisfrancisfarros3935

    Dude, thank you so much. I was having trouble finding good resources to learn about SRE as a normie. Channels like yours are so helpful for normies like me. It seems close to impossible to be able to know where to begin when it comes to SRE.

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 2 dny

      @@ellisfrancisfarros3935 So glad you’ve enjoyed it! I hope it’s eased your entry into the domain and I hope you continue to learn! Thanks for watching 🙏

  • @LinuxIsBetter43
    @LinuxIsBetter43 Před 5 dny

    1:15:04 I thought that was pretty unclear as well: memoryStream.Length is 64 and that -16 is 48, but since bytes 0 through 31 are the hash, and 32 through 47 are IV, the data starts at byte 48. They are adding one, so that becomes 49. So they create an array of length 49 to store 16 bytes of data? Seems like a mistake to me. If you look in the debugger, array4 is populated only 0-9. Also not clear why array5 is of size 13. EDIT: It looks like for different InitializeSettings value these arrays are populated to different lengths, so 49 seems to be the biggest one that can populate all of them, so they hardcoded that. Not sure about the details though.

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 5 dny

      Yeah I've racked my brain with this every time I see an AsyncRAT sample. I've looked at the source code itself, debugged, and run it by others, and still don't have a great explanation. Even the LLMs I've put the code through always say: "This line seems like a mistake" X-D You're right in that memoryStream will vary with the input, so some values are 64 bytes, others 128, and still others 736 bytes, for example. So array3 still gets allocated to different sizes depending on the length of input - not any hardcoded value - and that size is always a bit more than needed for the actual decrypted data. I'm of the mind that either: 1) They intentionally did this to leave a buffer at the end of array3 (though it doesn't make sense because at most array3.Length bytes will be read every time) 2) It's a mistake 3) I'm missing something crucial here haha

    • @LinuxIsBetter43
      @LinuxIsBetter43 Před 5 dny

      @@jeFF0Falltrades Sounds good. To me it looks like they were a bit lazy, so they took a relatively big buffer to prevent memory leaking=). I want to thank you for the great content as well!

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 5 dny

      @@LinuxIsBetter43 Yep, you are probably onto something 😂 And thanks so much for your kind words and engagement! So glad you enjoyed!

  • @je581
    @je581 Před 6 dny

    Great video! Just subscribed. Definitely some gems in here I had not seen! Only things I would suggest are Hyper-V as your hypervisor or VMWare if you like, now that it's free for personal use. VirtualBox stability issues abound, especially when restoring snapshots and importing VMs. Also recommend a tracer for intermediate/advanced users, like Tiny Tracer (also by hasherezade) or DrMemory. Having the API calls are super helpful

  • @im_vinodchoudhary
    @im_vinodchoudhary Před 7 dny

    Great Video on Reverse Engineering

  • @dewmi4403
    @dewmi4403 Před 9 dny

    Appreciated! keeping the legacy!

  • @lukefidalgo8154
    @lukefidalgo8154 Před 10 dny

    just did the crackme, and it looks like the last question in the google forms is broken? I definitely did math right but google forms won't accept the any answer

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 10 dny

      You are absolutely correct - thanks for reporting this! It was a validation typo. Good news is 1) It's fixed now and 2) This must mean you are among the first to get the crackme completed!

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 10 dny

      There it is! Congratulations and well done!!!

    • @lukefidalgo8154
      @lukefidalgo8154 Před 10 dny

      @@jeFF0Falltrades thank you! It was really fun solving the challenges!

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 10 dny

      @@lukefidalgo8154 Glad to hear it! I'm always nervous leading up to a release b/c I have a lot of fun making them and testing them out, and there's always the "Ah damn, is this going to be something that's just fun for *me*?" X-D So glad you enjoyed!

  • @wittingsun7856
    @wittingsun7856 Před 11 dny

    Good job, it would be amazing a video with more advanced topics explained clearly (like manual unpacking, handling anti analysis techniques, obfuscation...) 👏🏻

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 11 dny

      @@wittingsun7856 Great suggestion! I wanted to start with the basics, but I think a follow-up video with more advanced techniques is called for, too. I’ll add that to the list :-)

    • @wittingsun7856
      @wittingsun7856 Před 11 dny

      @@jeFF0Falltrades I'm happy to hear this, it definitely can't miss 😎

  • @xiaonguyen6693
    @xiaonguyen6693 Před 11 dny

    wont running e.g. procmon or ida be detected by a lot of malware?

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 11 dny

      @@xiaonguyen6693 Great question! Some families might have “stoplists” of processes they might monitor for and stop working if they detect them running written into the malware program, as an anti-sandbox measure. But it’s very easy to bypass this as the analyst: In fact, there’s a blog post on Medium by Mohammed Dief that’s a good example of this where he just changes a few attributes of the procmon executable to bypass a video game (of all things) program that checks for procmon as an anti-debug measure. So what I would say is: If it looks like a piece of malware is not running fully or you’re not getting results you expect, either throw it in a debugger like we do with Royal ransomware here to find out more OR, more simply, just experiment with your monitoring tools to see if closing one of them changes the behavior of the malware. That’s the benefit of using a hands-on lab, vs. a fully automated one. Thanks and good thinking!

  • @Jarvx
    @Jarvx Před 11 dny

    The most amazing re channel on the whole youtube, still watching the series but just wanted to point that out :)

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 11 dny

      @@Jarvx Stahppppp 🥰 Seriously thanks for watching and being here 🙏

  • @micha7863
    @micha7863 Před 12 dny

    Once again, awesome job, thanks.

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 12 dny

      @@micha7863 Thanks so much and thanks for being here 🙏

  • @its_fzx5275
    @its_fzx5275 Před 12 dny

    I really liked the first couple of episodes about the basics in this series perhaps could you make a video where your reverse engineer a game like gta vice city or any old game but tailored for beginers? i know you have the roller coster video but I think a more beginner friendly one would be better + the game is really old Thanks for taking the time to read the comment

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 12 dny

      Yeah I think we’ll be due for another game-based video soon as many people (myself included) have so much fun with those, and they are great for learning the basics while keeping things fun. Thanks for the suggestion!

  • @CrusaderMen
    @CrusaderMen Před 13 dny

    Thank you I love your content

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 13 dny

      @@CrusaderMen Thank *you*! I hope you enjoy this one too

  • @0ri0nexe
    @0ri0nexe Před 13 dny

    The king posted ! Stop what ur doing and open your best disassembler ;) Jokes aside i like how you introduction more and more useful tools each video

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 13 dny

      @@0ri0nexe Man you made my day hahaha. I’m in the middle of finishing up editing Part 2 (which I can say DEFINITIVELY will be out tomorrow AM, Eastern Time), and I really needed this motivation. Thanks for being a great hype man and I am glad you find the tools useful! I’m so happy to finally share my lab setup as it’s been good to me all these years.

    • @0ri0nexe
      @0ri0nexe Před 13 dny

      ​@@jeFF0Falltrades Two videos in a row, what a time to be alive.

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 13 dny

      @@0ri0nexe 🤣

  • @lukefidalgo8154
    @lukefidalgo8154 Před 13 dny

    Just as I bought Practical Malware Analysis (the alien book), this video comes out! Some really good timing! :P

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 13 dny

      YES!!! I'm so happy for you because that book is a treat. And you'll find my set up is very akin to the one in the book, so I hope this complements it well :-). Also, if you're interested, No Starch Press just this month came out with another book called "Evasive Malware" that I call out in this video. I haven't read through all of it yet, but what I have read has been really good! Thanks for watching and I hope you enjoy both this and PMA!

    • @Jarvx
      @Jarvx Před dnem

      The alien book is top tier :)

  • @micha7863
    @micha7863 Před 13 dny

    Great job! Appreciate it veeery much. Also congrats on becoming a dad. BTW: I have tested VBox 7 Unattended installation for Win10 and I always had problems with the VM - freezes/slow running (problem is confirmed by other users having the same issue).

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 13 dny

      Thanks so much on both accounts, and thanks for being here!

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 13 dny

      @@micha7863 thanks for attesting to the unattended installation stuff as well - as you’ll see (if you haven’t already) it DOES cause issues for me as well 🥴

    • @micha7863
      @micha7863 Před 13 dny

      @@jeFF0Falltradesoh ok, i was commenting while watching, thanks again!

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 13 dny

      I figured haha. Didn't mean to spoil it for you, but yeah, had quite a few "live" troubleshooting instances with VirtualBox/Windows

  • @jeFF0Falltrades
    @jeFF0Falltrades Před 13 dny

    To my loyal and wonderful subs: I apologize again for the delay on this one - our 10,000 sub celebration is now an 11,000 sub celebration, which is awesome, but I am sorry it took this long to push this out and I hope the wait was worth it ❤️ Check this pinned comment for corrections and updates and thanks for watching! EDIT: Thanks to @BrakeSec for the suggestion, I added a simple helper script so you don't have to worry about commenting out the netplan configuration yourself; It's added to the repo!

  • @b213videoz
    @b213videoz Před 15 dny

    1:37:39 well that's easy: all you really had to do was so set up a WRITE breakpoint on the SCORE (its address you did figure out and that was a hard part), so the timer would decrease the SCORE and hit your breakpoint on doing so.

  • @b213videoz
    @b213videoz Před 20 dny

    I wonder if you have Svenska classes, Jeff. The way you explain I might even get it 😊

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 20 dny

      @@b213videoz Nej det vill du inte 😉😂 There are much better Swedish teachers, I’ll just stick to my machine languages thanks 😆 Thanks for watching as always!

  • @b213videoz
    @b213videoz Před 23 dny

    25:08 I do not understand why this line is even there, the very same instruction already executed: EAX has retained its value as LEA did not affect EAX. You just so very casually skipped it and didn't explain at all. 25:45 once again so casually & happily skipped 1) what is that 0x34 for ? 2) how does it relate to +3 and that stack label 3) au_stack_4f ?!! - nothing, no explanation whatsoever Come on, this video is for complete beginners, right ? I was able to tug along but only because I know this stuff already (kind of) - if I didn't your happy casual skippings & omissions would have got me completely confused. Yes, you do explain most things well - but hey, really important stuff you just skip.

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 23 dny

      Thanks again for this (and I mean sincerely - I appreciate candid feedback and I get scared when I only hear praise or general feedback) and your other comments. I'll also add these clarifications to the pinned comment in hopes that will help others who may have been confused by these segments: 25:08: Apologies for not calling it out; You're right in that it's important for beginners to understand the "why", and I think I was focused on switching to demo'ing it in the debugger and glossed over the extra instruction: This kind of "duplicative instruction" can happen due to compiler optimizations - Different compilers can hold themselves to different "guarantees" and rules around how they compile code, and I think in this instance, we humans can see that the extra instruction is not needed, but the compiler decided for some reason to include it. Why? It's very difficult to say without knowing a LOT about how the compiler is written to work. It could be accounting for optimizations in speed, or scheduling of instructions, or because it uses some standard pattern of instructions for this type of loop, and applies those rules regardless. 25:45: Apologies again as I was not as focused on the decompilation view vs the disassembly view in this segment. To answer your questions: The 0x34 is added to ESP because that happens to be where this array was placed on the stack by the compiler: 0x34 == 52 in decimal, which divided by 4 bytes is 13, so you can think of it as there are 13 other 4-byte segments between ESP and the array, which are other values on the stack. But put more plainly, the array starts at 0x34 past ESP, so we must add 0x34 PLUS our index*4 bytes (because every int is 4 bytes) to access each element of the array. Now (2) and (3) of your question are interesting: The additional "+ 3" of the decompilation you see there does not appear in other decompilers I used, and it's likely just a case of the decompiler "hallucinating" - meaning that it tried to decompile this segment, but realized the way it decompiled the address to the array was out of alignment, and so it compensated by just tacking on a "+ 3" to make the math work. Sounds silly, but this is why decompilers are not perfect. To see this practically, you can check the values in the debugger: The decompiler says that auStack_4f should be at EBP-0x4f But in the debugger, if EBP is at address 0x9FFB98, EBP-0x4f would be at 0x9FFB49, which is right after the first byte of a DWORD, so the decompiler adds 3 more bytes to align the array to the start of the next DWORD (4-byte) address. In reality, the array starts at EBP-0x44 in the debugger. That value makes more sense because according to our disassembly and decompiler math: auStack_4f + 3 should equal ESP+0x34 auStack_4f+3 should actually be auStack_44 because when we make that change, the math works: ESP == EBP-0x78 auStack_44 == ESP+0x34 == EBP-0x44== EBP-0x78+34 == EBP-0x44 == EBP-0x44 So why did the decompiler misinterpret the disassembly? Again, could be a number of reasons based on the decompiler logic/optimizations. I know that was a long answer to a short question, but please let me know if that helps, and I will add this to the correction pinned comment as well - Thank you again for calling out some great clarifying points!

  • @b213videoz
    @b213videoz Před 23 dny

    8:00 the only scary thing about pointers is... C syntax 😁 Seriously, just take a look at "unrefinded" Gidra's decompilation "C-like code", it's scary! Even assembly code is far more human readable than that. To get a grasp of pointers it's helpful to play with them in Pascal languages: Delphi, Free Pascal, Turbo Pascal. Concepts and use cases are 1:1 those of C but the actual syntax is human readable.

  • @b213videoz
    @b213videoz Před 23 dny

    50:09 not true: it also sets (or resets) overflow flag and possibly some more 1:00:28 what?! the stack is growing DOWN (not up), and it would help if your pictures showed that. The way you show it is VERY confusing. It would make far more sense to show stack as it is from TOP-to-bottom, that is higher addresses at the top - lower addresses at the bottom. Thank God you at least don't use AT&T syntax.

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 23 dny

      Thanks for providing this and the other comments (I'll post replies to those on their own threads so others can see) - It's really nice to have someone actually take the time to call out confusing or erroneous stuff, because I can get in tunnel vision when filming, or biased by experience, so I appreciate you calling these out. 50:09 - Yeah you're right, that's misleading as written/said. I based a lot of this portion off of 3 older x86 references, so I wonder if I read something wrong or just messed it up myself, but regardless, you're correct about other flags being impacted, and I'm going to go back and change the chart (and I'll post a correction in the pinned comment) and simplify this to: CMP is identical to SUB, but it only sets status flags (several of them, as you mentioned), as opposed to storing a result, or something to that effect. 1:00:28: Yeah I should not have said "the stack grows up" here, as that goes against how most people will learn about stack and heap - In the case of the graphic I'm using, the stack does technically grow "up", but you're right that it's confusing and only applicable in this diagram. The reason I oriented the graphic like this - which is the inverse of what most texts about stack and heap do - is I wanted it to look visually identical to how we would view it in the debugger, and I think I will keep it that way. But I will also add another clarification in the pinned comment on this. I am planning on pushing some changes to the repo this week at some point, so I'll make a note to update the diagram with the changes above. Thanks and I'll go reply to your other comments here shortly!

  • @aryangurung3401
    @aryangurung3401 Před měsícem

    we need more videos. Your way to teaching is really good

    • @jeFF0Falltrades
      @jeFF0Falltrades Před měsícem

      Working on it, I promise! Got derailed over some dayjob and personal matters but I’m grinding to get this next one done! Thanks so much for the kind words!

  • @KoenPol123
    @KoenPol123 Před měsícem

    This course seams very interesting, but I don't know if it will help me complete my goal. I want to mod wii games and you need to know how to reverse engineer to do that. Only are wii games written in powerpc asm. Is this course still helpfull to follow and where will the biggest differences be then?

    • @jeFF0Falltrades
      @jeFF0Falltrades Před měsícem

      I think it may still be helpful in that it may help you work on an agnostic “workflow” for reverse engineering, e.g. how to use tools to home in on patterns. PowerPC assembly has some different syntax, but will be fairly similar to looking at x86 or really any assembly language. But, that said, I know it’s also a time investment with the course - maybe you can bounce around a few chapters, and see if they help you in your goals? I’d recommend looking at some PowerPC disassembly first so you can compare and see how much this x86 content will help you in analyzing it. Best of luck regardless!

    • @KoenPol123
      @KoenPol123 Před měsícem

      @@jeFF0Falltrades Wow, thank you so much for the quik response. I have already some knowledge of powerpc assembly. I looked into the start of your video where you talked about the language processing system. I don't know for sure but it looks a lot like the assembly/disassembly of powerpc asm. The linking proces seems the same because powerpc asm also works with object files and elf files but I don't know if that means that the disassembly is the same for both x86 and powerpc asm. Is it the same?

    • @jeFF0Falltrades
      @jeFF0Falltrades Před měsícem

      @@KoenPol123 No problem! And no they are not the same - PowerPC assembly has some differences in the language (things like the number and name of registers, and just general instructions), but the toolchain for building EXEs and ELFs using a PowerPC compiler is very, very similar to using gcc or other C compilers. So, the higher-level you are, the more similar they will seem, but at the lower levels of assembly and machine code, PowerPC and x86 start getting very different :-)

    • @KoenPol123
      @KoenPol123 Před měsícem

      @@jeFF0Falltrades Oh sorry, I meant that the disassembly proces of powerpc and x86 seems the same if I look at the start of the video. I have luckily enough knowledge to know that all assembly languages are very different.

    • @jeFF0Falltrades
      @jeFF0Falltrades Před měsícem

      @@KoenPol123 Ah! Yes, you are correct on all accounts then - the disassembly process is fairly similar, which is why I hope this series might still be useful to you :-)

  • @christianlijs1346
    @christianlijs1346 Před měsícem

    Wow. After watching the whole series I was stoked to try and do the crackme. I managed to understand the program quite well, and even though I eventually looked at a write-up to actually get the flag, I knew exactly what to do and had traversed the rest of the program no problem, so I am calling that a win! Thank you again so much jeff for giving me the confidence to properly start trying reverse engineering, it has been extremely fun.

    • @jeFF0Falltrades
      @jeFF0Falltrades Před měsícem

      Congratulations! Not only is finishing the series itself an accomplishment, but that understanding throughout the crackme is incredible. You should be proud and I hope you continue to practice and - most of all - have fun with it!

  • @yishithvilas4876
    @yishithvilas4876 Před měsícem

    That is called power of knowledge

  • @ahmedshawky8274
    @ahmedshawky8274 Před 2 měsíci

    Wdy

  • @arthurpochart1122
    @arthurpochart1122 Před 2 měsíci

    jeff you are such a talented creator. thank you. your content is the highest quality ive found.

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 2 měsíci

      You are so kind! I hope you continue to enjoy and I appreciate you being here!

  • @john_says_hi
    @john_says_hi Před 2 měsíci

    thanks for making these videos, great to see your process for doing this, you got me reinterested in RCT! just installed reshade and trying to improve the graphics, good times!

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 2 měsíci

      That’s awesome! If you document that work anywhere, please send it to me! Thank you for watching!

  • @hanro50
    @hanro50 Před 2 měsíci

    If it is written in x86 assembly, that means it is technically source available....

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 2 měsíci

      As they say: “Everything is open source if you are patient enough to learn assembly” 😂

    • @hanro50
      @hanro50 Před 2 měsíci

      @jeFF0Falltrades indeed. 🤣 Had to do x86 assembly once. Wouldn't recommend it.

  • @Jarvx
    @Jarvx Před 2 měsíci

    Hey man, I just wanted to say your channel is an absolute gem regarding RE and it's to be quite honest one of the best resources out here on youtube and I'm really wondering how your channel is not bigger. Keep up great work!

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 2 měsíci

      You are too kind, this comment made my day! I’m just happy to have as many that are in this community today :-) Getting prepped to record another video this month! Hope you enjoy that one as well. Thanks so much for watching.

  • @R00kTruth
    @R00kTruth Před 2 měsíci

    the easiest way for Anyone, and I mean absolutely Anyone, to learn assembly and reverse engineering at the same time, is to write some simple c code snippets, then to debug them.

  • @Gaspa79
    @Gaspa79 Před 2 měsíci

    I can't believe the hidden flag was on the last place I looked. I was getting discouraged. Thanks for making this, I really hope you make more. I'd buy you a coffee if you had superthanks enabled on the video.

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 2 měsíci

      What the heck?! Thank you for telling me because I thought I had it enabled! Should be working now - not that I ever expect it, but I also have a BMAC link on the channel. Thank you so much for watching and so glad to hear you enjoyed! We actually have another one of these coming up this month, focused on malware analysis, with another challenge!

    • @Gaspa79
      @Gaspa79 Před 2 měsíci

      @@jeFF0Falltrades Done. I ended up using buy me a coffee instead since I saw that the cut for that is 5% whereas youtube's is 30%. Thanks again!

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 2 měsíci

      @@Gaspa79 You didn’t have to do that but not only do I appreciate the donation, but the extra step of looking at the cut percentage is truly kind. Thank you so much and I hope you continue to enjoy the content!

  • @Gaspa79
    @Gaspa79 Před 2 měsíci

    Honestly I'm so sorry that there's been only 3 episodes of this masterpiece, but I'm so grateful for those 3 anyway. Thanks for the content

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 2 měsíci

      Another one coming up next month! Slightly different topic but very excited to get the next one going 😁 So, so happy to hear you enjoyed!

    • @christianlijs1346
      @christianlijs1346 Před měsícem

      @@jeFF0Falltrades I have only nearly finished the first episode but I am stoked that there are more coming. Thank you so much for these videos!

    • @jeFF0Falltrades
      @jeFF0Falltrades Před měsícem

      @@christianlijs1346 So happy to hear this!!! I’m working on a second master0Fnone course now and comments like this motivate me so much. Thanks for watching and I hope you enjoy the rest!

    • @christianlijs1346
      @christianlijs1346 Před měsícem

      @@jeFF0Falltrades I had a feeling it would motivate you or at the very least make you happy, but just know that's exactly how I feel when I come across a video like this! Thank you, and I might just let you know how the other videos go for me.

    • @jeFF0Falltrades
      @jeFF0Falltrades Před měsícem

      @@christianlijs1346 Thank you so much!

  • @rusi6219
    @rusi6219 Před 2 měsíci

    guys...his name is jeff

  • @citizen1791
    @citizen1791 Před 2 měsíci

    this is a really great video but near the end i thought you were going todo something like, an exe that if you launch it apply the patches to the game but don't make permanent changes to the original exe. i don't know if you already have a video on your channel but it would be great for modding

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 2 měsíci

      Yeah I think I get what you’re saying - we didn’t do that as much in this video/script, but if you check out my RollerCoaster Tycoon videos, those scripts do exactly that - take patches and apply them to a copy of the original EXE while leaving the original intact. This one just happened to be more focused on the DLL injection. Thanks for the feedback and for watching!

  • @bkfownu83djcj38djd
    @bkfownu83djcj38djd Před 3 měsíci

    Awesome content mate. I love you.

  • @HapkinsPL
    @HapkinsPL Před 3 měsíci

    good job !!!

  • @keyholderofpurgatory
    @keyholderofpurgatory Před 3 měsíci

    im gonna watch this without missing 1 second. You are really valuable person in this life, thanks for sharing this with us.

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 3 měsíci

      Take frequent breaks and drink water, haha. Thank you so much - that is such high praise.

  • @JWAM
    @JWAM Před 3 měsíci

    ...dude. :)

  • @alir8zana635
    @alir8zana635 Před 3 měsíci

    great video as always your channel is the best for deep dives on cybersecurity Congragulations on the third kid

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 3 měsíci

      Thank you so much on all accounts! Hope you enjoyed

  • @7DuRd3n
    @7DuRd3n Před 3 měsíci

    amazing bro <3

  • @jeFF0Falltrades
    @jeFF0Falltrades Před 3 měsíci

    Thanks for being here! As always, I’ll post any updates or corrections to this pinned comment. Hope you enjoy! Update 12APR24: <24 hours after this is posted, improvements are already being made to the parser - thanks to some of your suggestions! I'll only be posting major updates to this comment, but check out the "Issues" tab of the GitHub repo in the description to see all of the changes made over time to the parser. Update 24APR24: One of the most significant updates to this parser was the ability to brute-force the config when the VerifyHash() function marker is not present - check out the changes here: github.com/jeFF0Falltrades/rat_king_parser/commit/339744aae63b48f019e3552e6e8e579b09e08382

    • @wilfridtaylor
      @wilfridtaylor Před 3 měsíci

      Thanks for releasing these. Helping me skill up from Software Engineer to Reverse Engineer :).

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 3 měsíci

      @@wilfridtaylor I hope you find them helpful man! Good luck in your journey!

  • @mirabletest
    @mirabletest Před 3 měsíci

    is it common for client machines to have python installed?

    • @jeFF0Falltrades
      @jeFF0Falltrades Před 3 měsíci

      Depends on the environment, but more often on analyst workstations than enterprise users.

    • @dots5641
      @dots5641 Před 3 měsíci

      VBS or powershell would work better in general windows enterprise. since it comes with all windows, and can even utilize dotnet :)

    • @mirabletest
      @mirabletest Před 3 měsíci

      @@dots5641 was thinking either c++ or .net, python seems a stretch, but it always depends on target

  • @locastable
    @locastable Před 3 měsíci

    second