Beginner Reverse Engineering | Part 2: Compiling and Decompiling (Ghidra + IDA)

Поделиться
HTML-код
  • Опубликовано: 2 окт 2024
  • An introduction to C compilers and decompilers, how compile order and optimization works, and tricks you can use to speed up reverse engineering. Examples given in both Ghidra and IDA.

Комментарии • 49

  • @MalwareTechBlog
    @MalwareTechBlog  3 года назад +50

    Everyone was asking for Ghidra content, so here's the best of both world! Let me know what you want to see next.

    • @mpdragon33
      @mpdragon33 3 года назад +7

      More complex sample for analysis.

    • @watchlistsclips3196
      @watchlistsclips3196 3 года назад +1

      @@mpdragon33 Same with me

    • @sergiomazariego_
      @sergiomazariego_ 3 года назад +6

      your malware reversing methodology, maybe a complete video about you reversing some packed malware, personally, if I can see all your process the better, even if that takes hours haha :)

    • @testme7073
      @testme7073 3 года назад +3

      I'd really love to hear your impressions of malware both from writing it and reversing it.

    • @monicapardeshi
      @monicapardeshi 3 года назад +2

      How to reverse other languages like C++ or Go

  • @retroguy74
    @retroguy74 3 года назад +15

    These "jump into the deep end" type videos are great for learning these types of concepts, or really programming in general. I think the small step, "here is a for loop", etc. is fine, but many people learn better by jumping into the meaty stuff like this right away. Really enjoy it.

    • @ChristopherGray00
      @ChristopherGray00 2 года назад +2

      trying to reverse engineer compiled binaries without knowing basic ASM instructions is pretty stupid, that gives me script kiddie vibes.
      you learn the instruction set first, then you reverse engineer.

    • @Roman-uy7qp
      @Roman-uy7qp Год назад +3

      @@ChristopherGray00 I think some people find it easy to learn by practiscing, not just theory.

  • @yeetyeet7070
    @yeetyeet7070 3 года назад +4

    yess more beginner stuff, love you my dude

  • @jgurtz
    @jgurtz 3 года назад +7

    Nice, very cool to see Ghidra and IDA side by side

  • @Demonslay335
    @Demonslay335 3 года назад +2

    Ah, I never knew the compiler optimized loops in that way, definitely seen my fair share of that in custom-rolled crypto functions. Your last statement about wondering wtf the dev was thinking vs it really being the compiler definitely applies all too often. 😅

  • @GetWisdomTV
    @GetWisdomTV 10 месяцев назад

    Advertisement in disguise of tutorial against an excellent and free opensource product ☹️.

  • @mldalex
    @mldalex 5 месяцев назад

    everything is open source if you can read assembly

  • @hakeemonipede8358
    @hakeemonipede8358 2 года назад

    Please continue

  • @nikos4677
    @nikos4677 3 года назад +1

    finally part 2

  • @XxLIVExX24
    @XxLIVExX24 Год назад

    @MalwareTechBlog In regards to your mention @11:20, my best guess why the compiler chose to reduce the iterations by a factor of 4 instead of 5,6,7 or more, was because it used up all the registers it wanted that could hold variables. In the pseudocode for the optimized code, you can see how the compiler declared variables v3-v7 whom correspond to ecx, edx, esi, eax, & edi. Are there any more registers for the compiler to use? Because if not, then the compiler would need more instructions or memory to hold other variables.

  • @thet0wsif
    @thet0wsif 9 месяцев назад

    That was a really helpful video! basic but deep understanding, thanks!

  • @allurbase
    @allurbase 3 года назад

    The compiler could optimize it even more if it just set eax to 5050, just sayin...

  • @z-corp
    @z-corp Год назад

    Please bring back reverse engineering... From basic to advanced and ollydbg also

  • @ASCENDANTGAMERSAGE
    @ASCENDANTGAMERSAGE 2 года назад

    I think the compiler did four because a lot of vector registers are exactly int*4 (or whatever primitive) in size.

  • @KenPryor
    @KenPryor 3 года назад

    I really appreciate these videos. I like seeing both IDA and Ghidra, so I'm happy with either or both being shown. I like that you're starting out with simple code, as that really helps me understand better than if you were diving into the deep end of with something more complex.

  • @redchameleon613
    @redchameleon613 3 года назад

    Any advice on the best method to add your reverted function back to the application. So, let's say you have reverted one function and want your version of the function to be used by the desktop app, then what do you do? Compile it to a library and then?

  • @granttapp2875
    @granttapp2875 2 года назад

    How have I only just found these videos! Would love some more of these introduction to RE!

  • @МайклСмит-й1ю
    @МайклСмит-й1ю 3 года назад

    please record a few videos on how to decipher strings with malware reverse and how to normalize the runtime graph. what tactics are commonly used in malware analysis would also be interesting to hear. The topic of binary comparison of microsoft patches is also very interesting. Thx a lot bro.

  • @7777-z2e
    @7777-z2e 3 года назад

    how do i decompile pyarmor

  • @zeeshanparvez5235
    @zeeshanparvez5235 Год назад

    What a brilliant video.

  • @daprince6559
    @daprince6559 3 года назад

    ex4 possible

  • @invalid5777
    @invalid5777 3 года назад

    Every day I wait for a new tutorial

  • @devilknowyou7733
    @devilknowyou7733 3 года назад

    Sir I am your big fan

  • @donovanvanderlinde3478
    @donovanvanderlinde3478 3 года назад

    Thank you for the content

  • @euclidyrdear5324
    @euclidyrdear5324 3 года назад

    Hi MalwareTech, i have been wondering your path to becoming a pro reverser. I want to know how you understand the assembly instruction very fast without looking it up on the internet while cracking. I have studied the basics of assembly but cannot interpret it very fast with a glimpse. So do i need to write some program in assembly and use all assembly instructions there first, then come to cracking later?
    PS. Not relating to this video btw

    • @watchlistsclips3196
      @watchlistsclips3196 3 года назад +1

      Just practice yo.You will keep up with that speed some time in future.He is doing programming for many years.He kept on practicing because of that he is where he is now.Do what you want to do.Make mistakes.You will learn something because of that.See his getting started in reverse engineering first video.Every golden point is present there.Just try something.Then try again.If u feel exhausted with trying about something try that in a new way or if you feel exhausted with those ways then figure out what you are missing and learn. with that look what u need to do after.What you need to do is to keep trying no matter what will happen.You will learn something because of that.Focus on learning something.There is no a-z path for you.Your path can be of anyway.See liveoverflow's youtube video on how to get started with hacking.It will definitely help us.Eventhough it is not relevant for you but definitely it will help you to get confidence in what want to do.Just fucking see it.Don't neglect that video and my advice.If you do what i said you will definitely thank me one day.

  • @daprince6559
    @daprince6559 3 года назад

    ex4 possible?

  • @tomiibarrientos9440
    @tomiibarrientos9440 3 года назад

    Thank you for the great content !!!

  • @ahmedmani1051
    @ahmedmani1051 3 года назад

    hmm so optimized complicated code is pretty much impossible to decompile and make any sense of? other then that great video

    • @ChristopherGray00
      @ChristopherGray00 2 года назад

      no? why did you come to such a stupid conclusion?

  • @invalid5777
    @invalid5777 3 года назад

    this is awesome!

  • @codyverdes3289
    @codyverdes3289 3 года назад

    THANK YOU FOR THIS!

  • @justknot4481
    @justknot4481 3 года назад

    can you do some thing in lua ? 🤪😉

  • @syrefaen
    @syrefaen 3 года назад

    Fantastic, I love these. Your examples her are just perfect to get a better understanding!

  • @internetparrot9753
    @internetparrot9753 Год назад

    5:23 please next time PLEASE say total += number

  • @victortobon711
    @victortobon711 3 года назад

    Oye wey no entiendo el ingles

  • @sikobpiko1066
    @sikobpiko1066 Год назад

    can you please send the code browser program....thanks

  • @rewatsingh1380
    @rewatsingh1380 3 года назад

    Your voice is like, Forest Gump