MALWARE ANALYSIS - VBScript Decoding & Deobfuscating

Поделиться
HTML-код
  • Опубликовано: 9 фев 2021
  • If you would like to support the channel and I, check out Kite! Kite is a coding assistant that helps you code faster, on any IDE offer smart completions and documentation. www.kite.com/get-kite/?... (disclaimer, affiliate link)
    For more content, subscribe on Twitch! / johnhammond010
    If you would like to support me, please like, comment & subscribe, and check me out on Patreon: / johnhammond010
    PayPal: paypal.me/johnhammond010
    E-mail: johnhammond010@gmail.com
    Discord: johnhammond.org/discord
    Twitter: / _johnhammond
    GitHub: github.com/JohnHammond

Комментарии • 1,2 тыс.

  • @tomnorman6877
    @tomnorman6877 3 года назад +1887

    I came to see what this was. Was going to watch for 5mins... stayed till the end and wanted more 😄

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

      lol! same

    • @anthonyschwartz6114
      @anthonyschwartz6114 3 года назад +8

      Same, I even drug my wife in about 15 mins in and had to restart. Lol

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

      Same, i clicked midway and watched a few seconds, then ran it to the beginning and watched it all thoroughly! Good content, John!

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

      Lol! same. I thought it was just a boring schinzel about a code.

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

      Sorry to hear that. The first 10 minutes of the video is a painful waste of time.
      2:44 "I am running on Windows right now, so I don't think I can run a .vbs..." But right under: "Programs that can open VBE files". It runs on Windows.
      I was so sorry for Mr. Hammond.

  • @abcq1
    @abcq1 3 года назад +1758

    This video is just an artistic description of how much John hates tangent functions

    • @dionyzus2909
      @dionyzus2909 3 года назад +31

      I'm having to relearn trigonometry related stuff, because I'm studying computer graphics. Man, i forgot how I hated this part of geometry at school. Gotta stay on top of it though

    • @MrJeb123
      @MrJeb123 3 года назад +40

      I guess you could say this code kept going off on tangents...

    • @z_prospective160
      @z_prospective160 3 года назад +10

      interesting way to throw off virus detection... var random_int = 344; var tangent_of_random_int = Tan(random_int); var cotangent_of_random_int = 1 / Tan(random_int); over and over...

    • @z_prospective160
      @z_prospective160 3 года назад +14

      All of that was nonsense though... the real script was just stored as a string of ascII characters separated by a "@@@@@" delimiter.. and then that string was executed.. Once again a vulnerability exists where a script allows execution of string data as code... Mainly an issue for interpreted languages.. But I guess compiled languages could have this too but the compiler would also need to be included with the runtime, right?

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

      @@tibettenballs4962 What is wrong with you?

  • @trebelojaques458
    @trebelojaques458 2 года назад +291

    Realising that entire ascii value-ish blob of nonsense was the actual malware, which was executed as string joins, has been a truly astonishing upload.
    I've never expected this'd be my morning

    • @bensons999
      @bensons999 2 года назад +29

      That's very common with malware, most of everything else in this one was just to try not to be flagged by antivirus.

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

      That's not astonishing at all.

    • @willgordon5737
      @willgordon5737 4 месяца назад

      That's how they escape getting detected by anti virus software. Becz the code is executed by another code all in the memory.

  • @Dusk-MTG
    @Dusk-MTG 3 года назад +442

    When he sad "Now we're getting to the real malware", that's when I started not understanding anything anymore

    • @AkariInsko
      @AkariInsko 3 года назад +45

      when he sad 😔

    • @NeexT0P
      @NeexT0P 3 года назад +9

      @@AkariInsko LOL

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

      😂😂

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

      Lol this kid still won't fix it XD

    • @ryanflynn386
      @ryanflynn386 3 года назад +8

      Yeah I was having fun watching him decode it, until he was actually reading the malware, then I was like oof I have no idea what's going on haha

  • @davidringo4672
    @davidringo4672 3 года назад +480

    Probably the tangent stuff was intended to send a malicious person on a tangent. This was fascinating to watch.

    • @PalCan
      @PalCan 2 года назад +13

      Haha my thoughts exactly.
      Malicious programmer: and let's send them on various tangents , then declare a bunch of functionas, redefine them and never call them.

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

      i was expecting the eval function to reference those variables for calculation

  • @slikshot6
    @slikshot6 3 года назад +69

    Thank god im not the only one what looks up these functions, reads the documentation, and the first words out of my mouth are "but wtf does that even mean"

  • @donjon61
    @donjon61 3 года назад +337

    "I'll secure my malware by obscurity". Nice

    • @jefflittle8913
      @jefflittle8913 2 года назад +8

      New variation on "security by obscurity" - sending the reader off on tangents...

  • @jonbrandre3006
    @jonbrandre3006 3 года назад +517

    That switch to dark mode killed me 😂 Google was like "HACKER MODE ENABLED"

    • @nikolas8741
      @nikolas8741 3 года назад +17

      That's big brother algorithm

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

      “To the dark side”

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

      I was actually hyped when I saw that. I've been waiting for that for years.

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

      Bennyhack_ on IG just made my day,
      All my files back like magic.. Thanks

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

      "They're trying to save my eyeballs."
      No, friend. They are trying to save THEIR eyeballs.

  • @windrun87
    @windrun87 3 года назад +396

    So in VB, you can have arrays that can indexed in anyway you choose, and this can be chosen per array. If you wanted, you could have an array that's valid indices were 5-10. The purpose of LBound and UBound is to determine what that range is for a given array. LBound(array) returns the lowest index while UBound(array) returns the highest index. This allows for a generic loop structure of
    For i = LBound(array) to UBound(array)
    stuff using array(i)
    Next

    • @actualFix
      @actualFix 3 года назад +114

      Thanks, I hate it

    • @KebunH
      @KebunH 3 года назад +13

      @@actualFix at least they don’t start at 1.. not necessarily that is....

    • @0xwhoami
      @0xwhoami 3 года назад +30

      So basically VB Dev were like, hey let's creat this problem call it a feature and supply the solution by creating two functions

    • @sanguchito7381
      @sanguchito7381 3 года назад +22

      @@0xwhoami No, they where like "hey, lets give the programmer the flexibility of using whatever index they like, instead of creating an unnecessary problem of mapping the lower boundry to 0".

    • @0xwhoami
      @0xwhoami 3 года назад +13

      @@sanguchito7381
      how is that a problem in any other lang like rust, python, c or java....etc

  • @csgultekin
    @csgultekin 3 года назад +86

    Those random, doing nothing functions such as the excessive amount of sleeps and tangent functions are to evade from anti virus sw, that checks for hashes and heuristics. Those are added progressively with each version of the virus.

    • @MatthewIrizarry-4
      @MatthewIrizarry-4 Год назад +1

      That is really cool to learn. My thoughts were also to induce human error.
      Ex he’s deleting tangent function code and then accidentally deletes essential code but doesn’t realize it after deleting them so many times

  • @_JohnHammond
    @_JohnHammond  3 года назад +723

    To quiet a few annoying trolls, in this video I mistakenly said "I can't run a VBScript file because I'm running Windows right now". If I were on Windows, I could certainly execute the VBScript. I should have said "I'm running Linux" because I am clearly using Linux for this showcase. (You can still partially run VBScript code with Wine on Linux, but your mileage may vary)

    • @venc2k988
      @venc2k988 3 года назад +34

      trolls be clueless lollll

    • @Asdayasman
      @Asdayasman 3 года назад +34

      Someone pointing out you made a mistake without first reading each and every comment is not a "troll" my dude. Don't go diluting the meaning of the word by applying it to everything.

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

      does that mean you dislike trolls? realy? why? are they not cute?

    • @Reichstaubenminister
      @Reichstaubenminister 2 года назад +9

      ​@@Asdayasman People tend to call everyone they disagree with, especially their political opponents, trolls nowadays. Just accuse whoever you don't like of being disingenuous and you have a _valid reason_ to not argue the point anymore.

    • @michaelwerkov3438
      @michaelwerkov3438 2 года назад +1

      im so annoyed you havent google that regexpression yet

  • @CodingGenesis
    @CodingGenesis 3 года назад +103

    "I swear I've done this before."
    - Famous last words

  • @prabufarhan175
    @prabufarhan175 3 года назад +126

    If the hacking action in hollywood movies are "real" like this, those movies would take hours before finish

    • @Auriflamme
      @Auriflamme 3 года назад +13

      Imagine an episode of Mr Robot - 44 minutes of coding and 1 minute of action/plot.

    • @To-mos
      @To-mos 3 года назад +3

      @@Auriflamme I love writing tools to make more tools just to watch them all do the work.

    • @normady4758
      @normady4758 2 года назад +1

      Wolverine could do it. “NEED MORE TIME!!!!”

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

      Oh shit

    • @lamesafekadu6568
      @lamesafekadu6568 25 дней назад

      Definitely 😅

  • @Innosos
    @Innosos 3 года назад +712

    "Lol. Let's just copy paste some random function a couple hundred times. There. Obfuscated. I'm a genius."
    -some bad guy, probably

    • @davidfarah
      @davidfarah 3 года назад +9

      HAHAHAAHHA accurate

    • @LaughingShinoo
      @LaughingShinoo 3 года назад +122

      I mean, to be fair, John actually explains why they have so many of these tangent operations, which is to fool any external system trying to analyze the code or predict any specific behavior, they'll just think the code is doing random math stuff, while in practice the math stuff is completely useless, it's just used as a "mask"

    • @Innosos
      @Innosos 3 года назад +25

      @@LaughingShinoo I was referring to the constant declarations of the same functions with exactly the same variable names, content and operations below the actual code.

    • @hydropage2855
      @hydropage2855 3 года назад +52

      Not copy pasted, they clearly had some form of generator for this

    • @PiotrK2022
      @PiotrK2022 3 года назад +5

      Or he used alrread known by antyviruses script and did that to change its pattern and avoid detection.

  • @firebreathN7
    @firebreathN7 3 года назад +137

    Just when I was saying "he is wasting his time, this code is just a troll joke" you made the @@@@@ magic and BOOM! you found the cake! ^_^
    Thanks for sharing your skills John! Really appreciated

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

      As soon as i saw @@@@@ with numbers In between i knew that was were the virus was

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

      @@nothingnothing1799 Yeah, blob of nonsense almost made John fool...

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

      I thought the guy was a fool who didn't know what he was doing and some how made a virus. But the blob_of_nonsense was decided and BAM I instantly gained +100 respect for who wrote the code. I don't know how common this trick is but it is smart anyway.

  • @jasonemmanuel1031
    @jasonemmanuel1031 3 года назад +10

    I love learning with you! It’s always interesting and I feel like I’m learning along side you rather than being taught.

  • @Ookami8raven
    @Ookami8raven 3 года назад +596

    Will you be making more Malware Analysis videos?

    • @ismhdez
      @ismhdez 3 года назад +13

      It would be awesome! I like it

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

      That would be fantastic! I'm trying to get into a security job, and knowing what malware looks like and how it works would be super super helpful, even if I don't use that knowledge in my interview or internship

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

      This is my favourite john Hammond video so far ;) Dude you definitely need to do more of this stuff 👍

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

      I agree, this teaches a lot about how mental people can get.

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

      More please :)

  • @internetdoggo4839
    @internetdoggo4839 3 года назад +81

    I really enjoy these kinds of videos; fast-paced unnedited breakdown of malware
    ur a legened

  • @md123180
    @md123180 3 года назад +28

    This was a great work-through! I loved watching your process! As a soon-to-graduate CS student, this brought a lot of stuff into focus, especially on how to work through these kinds of problems!

  • @karremania
    @karremania 3 года назад +44

    If i remember correctly, those tangets were called 'sandpiles', random piles of odd maths with completly randomized variables, was used to hide the first steps to decode stuff.

  • @kevinlao3690
    @kevinlao3690 3 года назад +92

    Me: Uh wow that's a long video. Let's watch it for 10 minutes and save it later.
    40 minutes later -
    *subscribes*

  • @JasonBock
    @JasonBock 3 года назад +118

    This reminds me of a situation that happened at a client I was consulting at in the late 90s (it might have been ILoveYou, but I can't remember). An e-mail with an attached .vbs file was running rampant on user's machines. They finally stopped it, but they had no idea what it was doing. Since I had VB experience, I was asked to dive in and see if I could figure it out. The code was obfuscated in many ways similar to what Hammond runs into in this video, but I finally figured out what the code was doing....and it was pretty nasty.

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

      What was it doing?

    • @JasonBock
      @JasonBock 2 года назад +51

      @@headblockheadIIRC, basically deleting images from every directory it could find on the user's machines, including mapped network folders....which included corporate product images....that weren't backed up either 😮.

    • @Nitidus
      @Nitidus 2 года назад +7

      @@JasonBock Did people in the 90s already think about backing up stuff?

    • @67hutch
      @67hutch 2 года назад

      @@JasonBock Wow. That’s horrible!

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

      Oh I remember that virus

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

    I always enjoy seeing your thought process in malware analysis. Good stuff!

  • @DefenderPlaysGuitar
    @DefenderPlaysGuitar 3 года назад +47

    Just here to say you should definitely do more of these

  • @userAndix
    @userAndix 3 года назад +343

    Interesting how the code was hidden behind some random garbage.
    Even the tangent functions make some sense now

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

      @TruCrime interesting !

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

      the main reason to obfuscate is to make it unreadable and hard to approach. even renaming all your variables and functions to random strings and base64 encoding everything will make quite a lot of people trying to read your code go "nah, this mess isn't worth my time"

  • @remmoze
    @remmoze 3 года назад +80

    What lifeOverflow has taught me: if you see a long string, there must be some decoding going on. So ignore the junk code and go straight to the decoding loop. Then you can get the return value of that decoding loop (or just the value you end up with when the decoding is done) and go around with it. Removing all of those /Tan functions is time wasteful

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

      Agreed, seems this is providing beginners a general approach to understanding and breaking down code. Indeed once you’ve done an exercise like this a few times, there’s no additional benefit and in fact is slower.

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

      @@EliotLu ⁷

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

    I just got into learning IT and im very interested in coding. As I search more about coding, youtube recommends me videos like this. So You really got my attention by that caption. You got me even more hyped up about this all and you just earned another follower!

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

    Fascinating stuff - thank you. Makes me realise now why I switched my brain off to learning coding when I was young. Just crossing my fingers that my yearly purchase of Bitdefender can cope, or that I remember to back up my drive very often!

  • @floorpizza8074
    @floorpizza8074 3 года назад +11

    The way you un-obfuscated that code was inspiring.

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

    As someone starting to work in the coding/IT field, it blows my mind that someone made something this thorough.

    • @xXYannuschXx
      @xXYannuschXx 2 года назад +4

      Theres even more insane stuff out there, look up the NSO Group iMessage GIF zero click vulnerability. These guys used the GIF preloader of iMessage to load a GIF that in turn loaded a PDF which in turn used a broken decompression algorithm that has a classic integer overflow, which in turn they used to program virtual logic gates into the RAM, which then was used to build NAND gates (which are the basic building blocks of modern processors) and then build a VIRTUAL SOC with it, that could search the RAM for keywords and relay the information back to their servers, without you noticing.
      EDIT: The GoogleProjectZero Blog has the most thorough analysis about it.

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

    This was REALLY awesome to see you dive into this. Definitely would love to see more of it. :)

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

    Loved the video man. Also a lot of the comments were really helpfull on getting a better understanding of what was going on with the first huge piece of code!!!

  • @Momonga-s7o
    @Momonga-s7o 3 года назад +59

    Him fighting the ragex is literally me, tears roll down my face everytime.

    • @0ShadowG0
      @0ShadowG0 2 года назад +4

      regex = "rage x", am I right? :D

    • @NostraDavid2
      @NostraDavid2 2 года назад +4

      Hearing him say "do I need that to be greedy?" and replacing * with + just hurts...
      Cant blame him for not comprehending regex. I followed a minor where I learned parsing (and with it regex) and it was *brutal*.
      Totally worth my time to learn though.

    • @Momonga-s7o
      @Momonga-s7o 2 года назад +5

      @@NostraDavid2 The worst offender is that different programs and languages uses regex differently so you must learn it all over again every time.

  • @vipinx8881
    @vipinx8881 3 года назад +8

    why did I just watch all of this and enjoy all of it...
    I'm really realizing how little I know about computers now

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

    Watching this video brought me back to my days of studying for the OSCP. I enjoyed this a lot more than I thought I would.

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

    I did not expect to watch as much of this as I did! Great video!

  • @Octomany
    @Octomany 3 года назад +22

    It may sound a bit weird, but I love seeing you struggle with some things. Thanks for recording the whole thing. What matters the most to me is to understand your thought pattern and how you resolve the problems you encounter.

    • @ronjeremy6663
      @ronjeremy6663 2 года назад +1

      Same. I have only done a minimal amount of programming, mostly JS+CSS but I loved watching John dismantle and assess the code. The way he explained his methodology helped me better understand what I was seeing, and as soon as I saw the clear human coding, I knew exactly what I was looking at! Thanks for posting the whole thing!

    • @MemeticsX
      @MemeticsX 2 года назад +1

      In education terms, we call what he's doing a "think-aloud protocol." It makes one's thinking audible, which is very handy.

  • @wesleymays1931
    @wesleymays1931 3 года назад +22

    That first tag said "HAAAAA" because it was mocking you. It realized that it actually managed to stop you from reading the file

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

    It got real juicy after second stage. I loved this video way more than I thought I would. Keep up the good work man!

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

    I found it very cool that you were figuring it out as you recorded the video and showed all the troubleshooting though processes.

  • @randymartin9040
    @randymartin9040 2 года назад +40

    I'm only about 20 minutes in, but it's interesting to see this idea of a program obfuscating it's own code, then during it, possibly rebuilding it so that it can bypass virus detection. If that's what this thing is doing it's kind of brilliant if that's even possible. It seems like it has strings of characters that it's joining together, recursively. If, after all of that it used that newly made string for something devious, that's pretty interesting.

    • @andy02q
      @andy02q 2 года назад +11

      Yes, it's a clever idea, however that idea is (one year) older than the first computer virus (1948 vs 1949)

  • @krlst.5977
    @krlst.5977 3 года назад +3

    That was interesting! Thank you, I had a lot of fun

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

    Only 10min into the video and i already like it. I enjoy how you explain everything step by step!

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

    Randomly popped in my recommendations and I enjoyed every second of it! great job :) subscribed

  • @mrpedrobraga
    @mrpedrobraga 3 года назад +178

    I almost died of pain in the RegEx part.
    Function .+[\s\S]*End Function
    Would do it

    • @zperk13
      @zperk13 3 года назад +18

      i kept yelling "use square brackets!" at the screen

    • @tylisirn
      @tylisirn 3 года назад +9

      I don't think anything would have done it. If you read the status line it says the regexp is running out of stack space trying to pattern match the enormous file.

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

      yeah, but this regex will not select each function separately like that ^Function.+(
      .*?)+End Function$

    • @mrpedrobraga
      @mrpedrobraga 3 года назад +9

      @@dieregierung9388 ok now I can't even read it with my eyes anymore

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

      In regards to the stack one, possesive quantifiers could've fixed it: So, "^Function(?:.*
      )*+End Function$"

  • @khalilbouzidi8432
    @khalilbouzidi8432 3 года назад +38

    Houdini, he's the creator of H-worm an Arabic developer specifically from Algeria

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

      Or en.wikipedia.org/wiki/Harry_Houdini - an escape artist !

    • @khalilbouzidi8432
      @khalilbouzidi8432 3 года назад +12

      yes i know the real houdini but we are talking about the hacker behind this worm his nickname is houdini
      www.dev-point.com/vb/threads/411850/

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

      The website is registered in Paris, France

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

      @@AhmetMurati sounds about right for france lmao

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

    yeah more of these, this video I really enjoyed and it was suspenseful, funny. Great workflow how you rename the functions to map a picture

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

    this is so satisfying to watch I was like I'm going to go watch an episode of a serie and than change my mind like nah I'm just going to watch a short RUclips video and sleep but here I'm at the end of the video.

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

    I just love how he stares into the void for a bit before he starts talking

  • @geoffbrowning8968
    @geoffbrowning8968 3 года назад +275

    You're like if Seth Rogen was a computer guy instead of an actor

    • @DMalenfant1
      @DMalenfant1 3 года назад +5

      So he scams his workers and spergs out on twitter on a regular basis saying hateful comments about whites?

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

      I can see that

    • @DemonDante1000
      @DemonDante1000 3 года назад +12

      @@DMalenfant1 can you be a troll somewhere else?!

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

      @@DemonDante1000 I am pointing out a fact. Don't be such a sensitive tnuc.

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

      Well I'm glad I wasn't the only one to immediately think this!

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

    I'm addicted to these videos. I learned more here than many other places. Keep it up bro!

  • @guitarzan0001
    @guitarzan0001 2 года назад +1

    I've seen these obfuscated vbscipts before, even deconstructed them a bit (but not to it's conclusion like you did ). Never thought I would see parsing a vbscript on RUclips, this was fun!

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

    Those tan functions and the weird functions at the end did just what they were supposed to; you spent twice as long messing around with those puzzles than it took to figure out the core code! :D

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

    Oh, Houdini! I remember having to deal with some variants of it before! It wasn't prevented by AVs back then. Luckily, they *did* block the extra downloads, so the infection wasn't too serious, but every USB drive ended with all files hidden and links to the VBE added, posing as the files. They did open your files after reinfecting your machine, so did not know anything was happening at all. The first couple times I had to deal with it I did manual cleanups of the systems and the drives, then more variants started coming in so I exploited the infection check and local update mechanism to make my own fake infection for our machines. The script thought it was running and that my version was newer than the ones it knew, so it did not replace it.
    EDIT: And most new "re-releases" of Houdini or Dunihi are pretty much the exact same script with a different hostname and a different packing added to mess with its signature.

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

    Its refreshing watching a professional break down a malware code into understandable code ; Great content man

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

    This was fun to watch and I enjoyed seeing your process of "un-obfuscating" the code

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

    At 29:56 you can see it's using windows new line which is 2 characters
    and
    (CR & LF) (Linux is only
    ), so in your regular expression you should have used
    . Also, in vb you can declare arrays from any index to any index, so you can make an array like "Dim my_array(10 to 20) As Integer". LBound will return the lower bound = 10, and UBound returns upper bound = 20

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

      Always use
      ?
      and you're never wrong.
      I was in physical pain watching him struggle lol

  • @mattmmilli8287
    @mattmmilli8287 3 года назад +16

    The last man using sublime text

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

    Hey John! I'm currently in school for CyberSecurity. Your videos are always interesting and I enjoy watching them in the background while helping myself code.
    Thanks for the content man :)

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

    I genuinely enjoyed this video!! Tbh this video got me motivated to learn more programming so that I can analyze malware. Can't wait to see more !!

  • @eeejay2779
    @eeejay2779 3 года назад +22

    "Hashtag, at sign, tilde, karat, *haaaa*"
    why is this so funny

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

      The author was basically calling either himself or his code evil. Look at the numbers under those symbols. 32~6 you don't go from 32 to 6 you step up by one so 33~6 or in other words three sixes 666 ha ha ha, or twice as evil given the two instances of 3. There is also a secondary joke here in that ~^ is a euphemism for dangling a carrot on a stick. Presumably for downloaded additional coding that makes the end user think everything's been fixed only to pop up again and again and again. It's actually kind of clever really.

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

    this was somehow even funnier than every meme channel combined

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

    new to this channel but already learning a lot.. just combine John's content with memory forensics and you have your own forensics course. Great John. Please keep the spirit up.

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

    I saw this right before going to bed at 11PM, stayed up watching pretty much the whole video, thank you xD

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

    It's just crazy how many people stay here because they relate to what you're doing :D. I love your content and I'm actually amused by watching something close to what I do every day.

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

    The premiere is perfect for this format of video. Feels live, but I think you as the creator can concentrate on chat + the hacking at the same time 👍🏻👨‍💻

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

      I may steal this for my let's hacks instead of editing them for 8 hours 🤣

  • @user-yd7ug3jb4t
    @user-yd7ug3jb4t 3 года назад

    This was a really awesome video, John! Thanks for always giving great content!

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

    very good walk-through, please do more video like this. Very informative

  • @auto117666
    @auto117666 3 года назад +44

    I prefer to let the code decode itself and then just pulling out what you need from hooking API calls or memory, but manual deobfuscation can be fun every so often.

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

      @@deidara_8598 same xd that's a lot faster

    • @ihatethesensors
      @ihatethesensors 3 года назад +11

      @@deidara_8598 As root ;-)

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

      @@deidara_8598 That is definitely one way to get the payload. :)

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

      Tools like any.run are really useful to analyse network/system calls without decoding the payload!

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

      This works if you know what you're doing and have the dedicated infrastructure for it.

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

    I love how @25:00 he is the embodiment of "if you have a problem you are trying to solve with a regex you now have 2 problems"

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

    Saw this as a random recommendation and midway through I already knew where it would go (eval + garbage code) but stayed for the whole thing. Thanks for making this.

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

    This was highly entertaining and enlightening!
    I'm taking a programming training course for the next few months, and having a glimpse into the wonderful world of cybersecurity like that, especially since it doesn't seem too complicated to decode, was really nice :)
    Subscribed! Cheers!

  • @pathseeker5439
    @pathseeker5439 3 года назад +13

    This is surprisingly fun for me

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

    Learned a lot from this video. Please do more of these videos!

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

    Good stuff John.
    I would really love to see more videos like this. Botg instructive and fun...
    You got my subscription with this one.

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

    I learned a lot from you man, thank you very mush
    and thank to the community

  • @ericvandertoorn6178
    @ericvandertoorn6178 3 года назад +48

    The regex for getting the line to work would've been [\s.]* ([] For characters to recognize, \s for any space character, . For any other char)

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

      I don't think anything would have done it. If you read the status line it says the regexp is running out of stack space trying to pattern match the enormous file.

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

      But . already includes whitespaces? After his initial
      (which was fine) he just needed a "(.+
      )+End Function"

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

      Oh wait. Does
      count as whitespace?

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

      @@NostraDavid2
      does count as whitespace. `.` usually doesn't include
      unless you set the flag for it

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

      @@ericvandertoorn6178 right. Thanks!

  • @siddhantsiwach
    @siddhantsiwach 3 года назад +5

    this is more interesting than a suspense thriller movie

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

    I'm in the process of changing careers and learning how to code. This was so fascinating to watch and really really inspirational watching the analysis with use of logic and knowledge of syntax across languages. It might seem easy to some people watching, I'm not sure lol. But to me this is magical to watch, I loved every second. I hope I can be this good some day.

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

    Nice. I'll need to watch some more, i like your way of conveying information

  • @nickswink7983
    @nickswink7983 3 года назад +48

    Could the tangent lines be written to literally send you on a tangent as sort of a play on words

    • @GrumpyGrebo
      @GrumpyGrebo 3 года назад +13

      Yes, one of the key components of good obfuscation is "red herrings" which make reverse engineering much more time consuming. Obfuscation is not about hiding functionality (can still be disassembled with static analysis for example) but making it not worthwhile to determine how it does it, and thus identifying ahead of time if it is a threat/how to counteract it. "You" predominantly being heuristic AV software; AV software usually has a limited window of opportunity within which to give something a red flag or a green flag, otherwise it slows down performance and people leave it Norton 1 star reviews. If you can survive the gauntlet, you're through one of hopefully many secure doors in a multi-layered security solution, onto the next level.

  • @Balgoriusis
    @Balgoriusis 3 года назад +23

    Man I laughed so hard when you were trying to beautify the VB code. My company still maintains some VB6 code , its like a blast from the past. VB studio does not even allow wheel scrolling.

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

      There is a little program you can download for free called "VBScroll.exe". If you run it before running vb6 you can use the mouse wheel to scroll the editor window.

    • @Balgoriusis
      @Balgoriusis 3 года назад +9

      @@Saboteur709 Yeah, I know. I just wanted to point out how terrible an experience the "old" VB languages and IDEs are.(Vb.net is ok)

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

      i think i remember having to that issue trying to scroll in vb6

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

    That was impressive, thanks for showing us the setp-by-step process !

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

    John! Glad to see you diving into malware analysis/maldoc

  • @JuniorJunison
    @JuniorJunison 3 года назад +10

    I love how he describes his interaction with this vbs script as if he and it danced together.

  • @0mni924
    @0mni924 3 года назад +17

    comment: "nice vid"
    purpose: "algorithm"

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

    I had nearly no hope for this to be an interesting video but I was bored senseless. Yet you delivered! Well done, I subscribed for more.

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

    As soon as you stopped yourself to go back and explain the keyboard shortcut, I subscribed. Keep up the good work.

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

    More malware analysis please!!!

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

    9:09 It's always satisfying to find some actually humanly readable source code stuff 😅

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

    I have a cursory understanding of programming. Not enough to write a program myself, but enough to sort of follow along. I'm 20 minutes in, and this is great. Why is this so interesting?!

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

    I have been wondering what Malware Analysis is like, This video is awesome. Thank you for sharing!

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

    25:19 was my every regex experience ever.

  • @pratikjha3647
    @pratikjha3647 3 года назад +35

    Doing RUclips algorithm 'things' and expanding it.

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

    Fuking brilliant. Order of ops is where I'm SO slow and you have a serious polish. Fun to watch.

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

      100% no bs I wrote that comment at 29ish min. So befor the payoff.

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

    I love that you sound so professional
    and you also are

  • @xB-yg2iw
    @xB-yg2iw 3 года назад +35

    "More tangent functions, DIE" AHAHA

  • @Cyclically
    @Cyclically 3 года назад +5

    pretty cool.

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

    These are LOTS OF KNOWLEDGE AND FUN ... new big fan here!!

  • @AlexHernandez-ml7we
    @AlexHernandez-ml7we 4 месяца назад

    Thanks for showing us the Analysis, is very interesting.