Reverse Engineering Obfuscated JavaScript

  Рет қаралды 152,139

LiveOverflow

LiveOverflow

Күн бұрын

In this video we figure out how to do a PopUnder in Chrome version 59, by using a trick. Hopefully Chrome fixes this, because I resent this kind of advertisement.
PoC: liveoverflow.com/poc/popunder...
=[ ❤️ Support ]=
→ per Video: / liveoverflow
→ per Month: / @liveoverflow
=[ 🐕 Social ]=
→ Twitter: / liveoverflow
→ Website: liveoverflow.com/
→ Subreddit: / liveoverflow
→ Facebook: / liveoverflow
=[ 📄 P.S. ]=
All links with "*" are affiliate links.
LiveOverflow / Security Flag GmbH is part of the Amazon Affiliate Partner Programm.
#ReverseEngineering

Пікірлер: 262
@specki5101
@specki5101 6 жыл бұрын
Great vid! But why are PDFs allowed to execute JavaScript code? This just seems like a huge no-no to me.
@yesthatsam
@yesthatsam 6 жыл бұрын
specki there is so many softwares that allows it. On another hand we don't hear of hacks using that door that often so it must be a dead end.
@LiveOverflow
@LiveOverflow 6 жыл бұрын
oh you are soooo wrong :D javascript in PDFs has ben abused many many times ;) example: insert-script.blogspot.de/2014/12/multiple-pdf-vulnerabilites-text-and.html
@yesthatsam
@yesthatsam 6 жыл бұрын
LiveOverflow thanks for the link ! I guess I have had too much up to date version ;) Edit : haha ! Wrong again :/ Seems like it still vulnerable. Well that makes me think of PDF reader differently.
@AgentM124
@AgentM124 6 жыл бұрын
*injects PDF with JS to do very evil things, mwhahaha*
@GegoXaren
@GegoXaren 6 жыл бұрын
specki Depends on the viewer. Adobe Reader (and Chrome, it seems) is one of the few viewers that supports JS.
@ikbenwelthuis
@ikbenwelthuis 6 жыл бұрын
3:15 My technique would be to copy it, paste it on stackoverflow and ask if someone knows what it does.
@andersenzheng
@andersenzheng 6 жыл бұрын
A better technique is post it, provide a wrong answer, watch people give you the best answer in desperation to correct you. People tend to give you more information in correcting than answering.
@BUFFDOENUT950
@BUFFDOENUT950 6 жыл бұрын
I actually do that. lmao
@DarkOverFlowOverflow
@DarkOverFlowOverflow 5 жыл бұрын
Script kiddie
@Lunascaped
@Lunascaped 4 жыл бұрын
DarkOverFlow Overflow its a joke
@michaelepica3564
@michaelepica3564 4 жыл бұрын
@@DarkOverFlowOverflow sometimes you need to ask for help
@ruroruro
@ruroruro 6 жыл бұрын
Damn. I remember, that I had extremely weird Chromium PDF Viewer "Please wait..." pop-ups on certain web sites, that would quickly close. I was extremely freaked out by them, but now everything makes sense.
@cyancoyote7366
@cyancoyote7366 6 жыл бұрын
After coming home from work, it's such a great feeling to just sit back with a cold beer and watch some reversing :D
@jonasls
@jonasls 6 жыл бұрын
You just ruined this guy's business.
@reijin90
@reijin90 6 жыл бұрын
Not really. His business is to provide a uniform API for all browsers where the advertisers do not have to take care of making the bypasses themselves. As you saw on the video, some functionality will be deprecated in september. They need to create a new bypass until then.
@jonasls
@jonasls 6 жыл бұрын
Benedikt Tröster true
@fission1110
@fission1110 6 жыл бұрын
Yea, but fuck that guy.
@logan_makes_games
@logan_makes_games 6 жыл бұрын
Well we all know how to reverse engineer his code which is cool.
@xorinzor
@xorinzor 6 жыл бұрын
I totally approve of ruining that guy. Fuck him for ruining the internet.
@rabbitdrink
@rabbitdrink 6 жыл бұрын
"please disable your ad blocker we promise not to bug you"
@voidnull3192
@voidnull3192 4 жыл бұрын
but which link I have to download to hackard that so I make sure i can get not any popunders?!
@angelcaru
@angelcaru 2 жыл бұрын
Popunders: exist Tiling window managers: *I don't have such weaknesses*
@brianchandler3346
@brianchandler3346 6 жыл бұрын
Enjoying vids like these and admire your thinking. I often learn some technique I never thought of trying. Keep'em up. :)
@celesteartley8473
@celesteartley8473 6 жыл бұрын
This video was awesome, I am a newbie to Js and code in general but not only did I learn a lot it was a cool idea no matter how nefarious it could be.
@dextergerig
@dextergerig 6 жыл бұрын
Wow, I remember seeing that Please wait... Loading PDF. Message on sites over the past few months and always wondered what it was for. Guess I have my answer from a completely unexpected source.
@123tobiiboii123
@123tobiiboii123 6 жыл бұрын
Damn I wonder how much of just trying weird shit it took the original creator to make the bypass. I guess if the money is there they don't care how long it takes
@dabbopabblo
@dabbopabblo 2 жыл бұрын
This has to be the BEST coding related JavaScript video Ive seen on KZfaq in awhile, omg!
@MrUllala1
@MrUllala1 6 жыл бұрын
As usual your videos are very explicative! Good Job!
@maulanaiskandar1058
@maulanaiskandar1058 6 жыл бұрын
Quality content as always
@Nomnomkun
@Nomnomkun 6 жыл бұрын
Great re way, really cool video, I really enjoyed watching and learning
@JBlongz
@JBlongz Жыл бұрын
This is not the video I was looking for, but it was extremely interesting. I had to watch the whole thing. Hate those pop unders, but see the value for marketing. thank you
@ccarniver
@ccarniver 5 жыл бұрын
I would never have figured this out in a million years, thanks
@DavidGilbertson
@DavidGilbertson 6 жыл бұрын
I think this is the funniest and most interesting JS video I've ever watched.
@MichaelKubler-kublermdk
@MichaelKubler-kublermdk 6 жыл бұрын
That was awesome. Great work!
@hachij_
@hachij_ 6 жыл бұрын
wow... what a tricky! awesome content keep it up! subbed!
@ndm13
@ndm13 6 жыл бұрын
I love your reverse engineering videos!
@nnm35
@nnm35 5 жыл бұрын
Bravo! The finale, with the base64 pdf calling a JS alert made me laugh out loud. You got im! Subscribing.
@MarKac9090
@MarKac9090 6 жыл бұрын
very nice as always! would be great if you could also put your code snippets for download
@Anas-gi9tn
@Anas-gi9tn 2 жыл бұрын
wow, every line is pure art
@fuanka1724
@fuanka1724 6 жыл бұрын
awesome video, love reverse-engeneering!
@LiEnby
@LiEnby 5 жыл бұрын
single handedly destroyed this guys carrier xD
@alexnezhynsky9707
@alexnezhynsky9707 6 жыл бұрын
Wow that was master class. Sehr gut!
@samueltulach
@samueltulach 5 жыл бұрын
This channel is awesome!
@mychemicaljojo
@mychemicaljojo 6 жыл бұрын
Really nice video! One of my tips when going through obfuscated code: they always eval. No matter what, most of the obfuscated code I’ve seen always converts some arbitrary data structure through arbitrary functions into a nice string that will then get eval’d. Try looking for that call and you’ll be able to alert whatever it is that goes through eval, and you’ll get clean source.
@Sejiko
@Sejiko 6 жыл бұрын
U helped me a bit for this challange btw www.hackthebox.eu //sing in xD
@user-tn3fo3pj2x
@user-tn3fo3pj2x 4 жыл бұрын
thanks for this video.. i learn a lot!
@Towzlie
@Towzlie 4 жыл бұрын
hidden s are used in CSRF injections too great video
@angryman9333
@angryman9333 Жыл бұрын
Please more of this
@VegaDW
@VegaDW 6 жыл бұрын
I'm legitimately worried this comany will sue you or try to get a strike on your videos, even if they have no solid legal standing.
@ligius3
@ligius3 6 жыл бұрын
Reverse engineering is legal in EU, AFAIK, and no damages were done. The business model cannot be argued here, they are attempting to sell something that circumvents usual behavior and has a very short shelf life. They don't have any basis to argue on: no code was copied or distributed, no copyright infringement. And no libel, he never said 'this company sucks, don't buy from them'. But you can sue and C&D on any grounds, doesn't mean you'll win. I'm more worried about possible exploits every time I use my browser for important stuff. Especially with the trend of some companies buying established chrome extensions and adding adware/spyware to them.
@zyrohnmng
@zyrohnmng 5 жыл бұрын
Think of it like a very detailed product review...
@JM-Games
@JM-Games 5 жыл бұрын
There's nothing illegal with what he did, he didn't steal any of the code, he reverse engineered the programme for learning purposes and created a video that showcased his workflow. The initial code he created was not profitted upon, It's similar to somebody opening a console to see how it ticks and documenting it, big companies probably want this illegalised but that doesn't mean it is.
@r.pizzamonkey7379
@r.pizzamonkey7379 4 жыл бұрын
A really good lawyer could make the case that it was a trade secret, and it could probably get _into_ court, but it would ultimately be frivolous since reverse-engineering is a legal method of acquiring trade secrets. That being said, since I'm in the future I can say with confidence that didn't happen.
@NiquelBones
@NiquelBones 4 жыл бұрын
@@zyrohnmng lmfao that made my day
@saloperie
@saloperie 6 жыл бұрын
Then everything else is just obfuscation and license checks ? You just reversed 700$ worth of license rofl
@LiveOverflow
@LiveOverflow 6 жыл бұрын
well the licensed code is much more optimized and works way better than my simple PoC. And the code also has options for Edge and Firefox, as well as support. So I did not reverse engineer the whole library or the licensing. My PoC is worthless in comparison ;)
@r.pizzamonkey7379
@r.pizzamonkey7379 4 жыл бұрын
Well, and even knowing the secret building and maintaining a custom solution is probably more expensive than just buying it outright
@danielsalloum3006
@danielsalloum3006 6 жыл бұрын
Too awesome man!
@mariustancredi2192
@mariustancredi2192 6 жыл бұрын
WOW, well done!
@Gukslaven
@Gukslaven 6 жыл бұрын
This is epic, thanks!
@eVashioNN
@eVashioNN 6 жыл бұрын
Great video!
@AnoNymous-ie3wc
@AnoNymous-ie3wc 5 жыл бұрын
several thousand lines of code refined on 10 lines. i love it ^^
@juri14111996
@juri14111996 4 жыл бұрын
not realy. the original works cross platform.
@BatteryProductions
@BatteryProductions 5 жыл бұрын
very good job sir!
@geoffl
@geoffl 2 жыл бұрын
this is freakin brilliant
@123Jeffdude
@123Jeffdude 6 жыл бұрын
Awesome video. Any idea why the pop under demo site had the small window opening and closing in the bottom right of your screen?
@LiveOverflow
@LiveOverflow 6 жыл бұрын
you have to open the popup window before doing the trick with the alert boxes. So that the user doesn't notice the opening of this window, it's hidden in the bottom right. And the size is changed back after the popunder was successful.
@123Jeffdude
@123Jeffdude 6 жыл бұрын
Oh I see. Thanks for sharing!
@m42uko
@m42uko 6 жыл бұрын
Thanks for this video! I've been wondering for ages what this weird PDF-Viewer message was all about. I kinda already suspected that it was some kind of scam, but I would not have guessed for it to be that elaborate.
@epkostaring
@epkostaring 3 жыл бұрын
Super cool video
@user-cz9ss4yq4x
@user-cz9ss4yq4x 6 жыл бұрын
redstar-os, nice touch 😂
@DanielLiNeutrinos
@DanielLiNeutrinos 3 жыл бұрын
3 years later... Chrome seems to be fixed but Edge still allowed the popunder
@disruptive_innovator
@disruptive_innovator 3 жыл бұрын
Ok magnificent wizard, I shall subscribe to your channel!
@patrick1020000
@patrick1020000 6 жыл бұрын
I just blogged about this very script 2 weeks ago! Glad we came to the same conclusion. I went a little further looking at the encoded data. Just mentioned you in a tweet with the link
@patrick1020000
@patrick1020000 6 жыл бұрын
I don't think it is courteous to self-promote on someone else's video
@dKonstructed
@dKonstructed 6 жыл бұрын
Well, you should add one to your KZfaq profile at least. I'm always looking for good sources of this type of information.
@stankojankovic
@stankojankovic 6 жыл бұрын
Awesome! Danke! :)
@amiralmusawi9030
@amiralmusawi9030 5 жыл бұрын
I respect your skills.
@MartinRys
@MartinRys 6 жыл бұрын
By the time you released this video Chromium 60 was already live for a day or two, does this still happen in Chrome 60?
@Mechanicel361
@Mechanicel361 6 жыл бұрын
digga du bist ja so krass respekt man #liveoverflow
@dashdeck4418
@dashdeck4418 6 жыл бұрын
Such a great channel! Thank you very much for this enlightening video. A question though: I re-watched 10 times the sequence about the mkp()/window.open() trick. Still do not get it. As soon as you set a proxy in your experiment, then any window.open() call should get trapped. From anywhere. Why can't you see it? Why has mkp() different from any functions so that the proxy is bypassed?
@LiveOverflow
@LiveOverflow 6 жыл бұрын
+dash deck because my Proxy is only set on the one page. And the code creates an iFrame, which is a new page. The javascript is separated for that iFrame, do. when they call open from there, my proxy won't catch it
@brunoais
@brunoais 6 жыл бұрын
I'd have used multiple arguments in the console object's "log()" method. The results are way way more complete.
@kevinchen8325
@kevinchen8325 2 жыл бұрын
I was so confused where the please wait alert box came from lol
@desheen5056
@desheen5056 6 жыл бұрын
Awesome 👍
@robinebers
@robinebers 6 жыл бұрын
What microphone are you using to record those videos? Pretty good sound!
@LiveOverflow
@LiveOverflow 6 жыл бұрын
+Robin Ebers thanks! But nothing fancy. Simple AT2020 USB mic on a stand with a pop filter.
@JM-Games
@JM-Games 5 жыл бұрын
The title hurt my head, JavaScript thats more obfuscated than JavaScript.. o.o Mind blown.
@romanemul1
@romanemul1 6 жыл бұрын
very good. You should spend some time to develop some ad block chrome,mozilla plugin with your skills. But be careful evil lurks everywhere and reverse engineer hunting game is everywhere. Hope one day youll get some credit on reddit.
@BluecoreG
@BluecoreG 6 жыл бұрын
romanemul1, Lol You do know he pays his bills with the money he gets from KZfaq ads. Why in the world would he make an Ad Blocker??
@LiveOverflow
@LiveOverflow 6 жыл бұрын
I don’t earn anything from YT. And I encourage you to use an Ad Blocker!
@mysirg133
@mysirg133 6 жыл бұрын
LiveOverflow i love good teachers thx:) aloot
@Nodeagent
@Nodeagent 5 жыл бұрын
reverse engineer hunting?
@davidtaylor7327
@davidtaylor7327 6 жыл бұрын
hahahahahahaha this was the best troll/Informational video I've ever seen! great job
@BrandNewByxor
@BrandNewByxor 5 жыл бұрын
Can you still get popunders with a tiling window manager? I'm on i3, so if anything opens it'll probably open in a gigantic window beside my browser
@ItsGravix
@ItsGravix 6 жыл бұрын
RIP that guy's company
@nathanmack10
@nathanmack10 6 жыл бұрын
Proxy was pretty smart, I would probably have just launched my vpn server on my phone, I have a few tools on that... But overall really good channel, subscribing! I'll finish the video, however this could make some decent dough
@LiveOverflow
@LiveOverflow 6 жыл бұрын
+Nathan Mack wat? VPN? We are using here a javascript proxy object. It has nothing to do with network proxies. Just used it as a comparison.
@irondsd
@irondsd 5 жыл бұрын
This is pretty smart.
@tcc5750
@tcc5750 6 жыл бұрын
1:44 clever!
@thealgorithm7633
@thealgorithm7633 6 жыл бұрын
You are genius
@4arliEdinorog
@4arliEdinorog 6 жыл бұрын
Очень интересно. Спасибо!
@BorisMediaProds
@BorisMediaProds 6 жыл бұрын
"Ad makers hate this guy!" click here learn his secret!
@TkrZ
@TkrZ 6 жыл бұрын
@LiveOverflow can you revisit this with his new, updated javascript please?
@splitpierre
@splitpierre 2 жыл бұрын
Juicy!
@habibbahruddin5489
@habibbahruddin5489 6 жыл бұрын
awesome..
@JohnNorrbin
@JohnNorrbin 6 жыл бұрын
Testing it out with the link you added in the description does not work in Version 60.0.3112.90 (Official Build) (64-bit)
@LiveOverflow
@LiveOverflow 6 жыл бұрын
It should work. It's a timing thing and I did not spend the time to optimise it. If the notification permission request and the alert are shown at the same time it should work.
@JohnNorrbin
@JohnNorrbin 6 жыл бұрын
Ok i just tested it without changing anything :D
@hostar2
@hostar2 6 жыл бұрын
Nice! On one website I was able to capture the PDF using "Network" tab in Devtools. But I am wondering, how to block this in adblocker...
@asj3419
@asj3419 6 жыл бұрын
You don't have to, some of the apis that where used are now depricated and will not work.
@HenrryPires
@HenrryPires 6 жыл бұрын
How did you manage to download the site and make it run on your machine?
@andrew5407
@andrew5407 6 жыл бұрын
What a boss
@hinglemccringleberry3881
@hinglemccringleberry3881 6 жыл бұрын
The music at the end of the video is way too loud and your mic audio is too low. Also, can this trick be prevented by blocking all notification requests?
@AntiWanted
@AntiWanted 3 жыл бұрын
Nice
@over00lordunknown12
@over00lordunknown12 6 жыл бұрын
1:03 Wait, did I already see how it does it?!... XD It first makes a notification permission request on the first website, then it opens the chrome pdf viewer on the first website to close the permission request for notifications... And uses the dismissal of the permission request to shift focus off of the popup, and onto the main window? (I doubt it... but still! :D)
@over00lordunknown12
@over00lordunknown12 6 жыл бұрын
Woah! :D I got it pretty good! :D
@peterforthewin
@peterforthewin 6 жыл бұрын
Good video, like always
@LiveOverflow
@LiveOverflow 6 жыл бұрын
you didn't even have the time to watch it all!
@justvashu
@justvashu 6 жыл бұрын
LiveOverflow I guess the video is just that good :). Srly thou these type of videos are a great insight into the mindset of problem solving.
@peterforthewin
@peterforthewin 6 жыл бұрын
I dont need to see it to know if it is a good video. I learn more watching your videos than in my university, keep up the work its excelent! :)
@voidnull3192
@voidnull3192 4 жыл бұрын
3:47 i think you could try changing broadcast host from 0 to enough room for 1 connection and 11:24, never seen a url with the delimiters /?'$variable_Popup_orYadaYada' usually just, www.'/'.DOM/sql?a= so probably the forward slash.
@trieulieuf9
@trieulieuf9 3 жыл бұрын
3 year late, but today i learned - We can map any domain name to localhost by editing /etc/hosts - Proxying any Javascript function - Disable that annoying debugger when open Developer Tools - PDF can run Javascript and popup alert - Javascript is kind of mad
@ionel2221
@ionel2221 6 жыл бұрын
WTF You're amazing
@Cdswjp
@Cdswjp 2 жыл бұрын
At around 1:35 you mentioned that the debugger statement triggers a breakpoint & that we can't simply continue because it's constantly being called on a timer. I see that each time you try to continue past the current breakpoint that it then goes on to the next breakpoint immediately, but what does it mean when you said that we can't simply continue because the breakpoint is constantly "called on a timer"?
@LiveOverflow
@LiveOverflow 2 жыл бұрын
It gets called so much, that we are not able to debug anything else. It’s too annoying
@Cdswjp
@Cdswjp 2 жыл бұрын
@@LiveOverflow I agree. What do they do to make it get invoked so often?
@Dje4321
@Dje4321 6 жыл бұрын
Please provide us with an update when they decide to come after you :D
@vuufke4327
@vuufke4327 2 жыл бұрын
How I would have approached this is to save the obfuscated scripts and just use them as they
@ciriousjoker
@ciriousjoker 6 жыл бұрын
I guess I'd just compile my own version of some OS and insert some GPIO logging to get the machine code that does this
@miloradowicz
@miloradowicz 3 жыл бұрын
Why would you have to go that far? Compiling your own version of some browser and hooking APIs would suffice...
@erice.3892
@erice.3892 Жыл бұрын
this is insane
@hasnieking
@hasnieking 6 жыл бұрын
How did he add an anti-debugger?
@A.D.G
@A.D.G 6 жыл бұрын
hasnieking you can do this: window.setInterval(function () { debugger(); }, 1); That calls the debugger function every 1 millisecond, but only has an affect on a browser when the devtools are open.
@victornpb
@victornpb 6 жыл бұрын
debugger is not a function tho its just debugger;
@TheInfi
@TheInfi 3 жыл бұрын
@@victornpb Some keywords are also functions, like typeof, instanceof, and debugger.
@chaosmagican
@chaosmagican 6 жыл бұрын
That was very interesting. It also explains the notification permission alert (which goes away after a second) when I visit xhamster... *cough* I mean, I... I ... I don't get any popunders though so I guess thanks google for uninterrupted pr0n? :D
@hachij_
@hachij_ 6 жыл бұрын
This is how publisher make extra money. Implement this tricky to make user less noticeable.
@CZghost
@CZghost 3 жыл бұрын
John Hammond would head out and straight just deobfuscate the Javascript code in order to see how the code has been made in the first place. You decided to hack under the hood secretly by sniffing used methods and constructing your own code that does the same thing. Great :)
@justadam3536
@justadam3536 5 жыл бұрын
I can imagine the faces of these who bought the popunder lisence after seeing this video lol
@vert3x560
@vert3x560 4 жыл бұрын
I don't understand one thing. Why do someone even bother to "display" an ad UNDER th window, away from the user sight XD? Isn't it the oposite of what ads are ment for?
@TheGH0STmzpelf
@TheGH0STmzpelf 6 жыл бұрын
> "obfuscated javascript" > implying javascript code isn't necessarily obfuscated by its very existence
@neithanm
@neithanm 6 жыл бұрын
It's not. Next!
@TheGH0STmzpelf
@TheGH0STmzpelf 6 жыл бұрын
a) the typing system b) semicolons after curly brackets c) implied globals d) the _this_ keyword e) typeof NaN and null JS has an ambiguous and counterintuitive syntax and behaviour for many basic things. Obfuscation consists in making code as ambiguous and counterintuitive as possible. I was joking saying JS is actually obfuscated in nature, but it remains true that it's not because you're used to its shortcomings that they aren't there.
@Hati_0x
@Hati_0x 6 жыл бұрын
You sound like someone who has barely scratched the surface of Javascript and are labeling it bad out of frustration. It's a very dynamic and powerful language if you know it properly. a) Javascript has only 7 data types: Boolean, Null, Undefined, Number, String, Symbol, and Object. Everything else (including Arrays and Functions!) inherits the Object type; This allows you to add properties/methods to any data (inhering Object), which cleans up the variable namespace and makes Javascript dynamic and multi-paradigmatic. The prototype pattern is a keyword here. b) Javascript doesn't require you to have semicolons after curly brackets. In fact, semicolons aren't required anywhere in Javascript except for for-loops afaik. The only reason they're part of Javascript is for extra verbosity and in cases were you want to have multiple statements in one line (look up Javascript minifiers). I myself never write the semicolons because of readability. c) Javascript doesn't have implied globals if you're writing good Javascript code. That means declaring variables before assigning or using them. If this is an issue you should enable strict mode in your code, which requires you to declare variables using the _var_ or _let_ keyword. This set the variable's scope and implicit globals becomes non-existent. I highly recommend you to always enable strict mode because it forces you to write code in a manner that avoids quirky problems like implicit globals. The only reason strict mode isn't on by default is because of backward compatibility, unfortunately. d) The _this_ keyword exists in everything inheriting Object and allows self-reference within methods. If you've done any Object-oriented programming it's very self-explanatory. e) These values exists because Javascript is very fluid and dynamic when it comes to data types. NaN is a Number which doesn't represents a valid number. This occurs when operations expected to return a number fails (e.g. multiplying a Number with a String; 1 * "a"). Null is very self-explanatory, it's simply a value that represents nothing.
@i_dont_want_a_handle
@i_dont_want_a_handle 6 жыл бұрын
Agreed, and also NaN allows JS to handle calculus in a very cool way, like for example, 2^Infinity = Infinity, but 1^Infinity = NaN, which is true and any mathematician would really dig that =)
@Qbe_Root
@Qbe_Root 5 жыл бұрын
Mostly agree with Hati_ here, although semicolons are actually required to avoid ambiguity, mainly after an expression when the next line starts with '(' (i.e. an IIFE), '[' (i.e. array destructuring), or some other characters like '+' or '-' that could also be the continuation of the previous expression. In those cases I just put a semicolon at the beginning of the next line, it looks a bit weird at first but it avoids refactoring mishaps. Also NaN is defined in IEEE-754, which is used basically everywhere for floating-point numbers, so NaN is also a float and/or a double in C, C++, Java, and so on, not just JS. On the other hand, typeof null === 'object' is a quirk from the early days of JS that many people would like to see fixed, but that likely won’t happen because of backwards compatibility.
@ari_archer
@ari_archer 2 жыл бұрын
me, using a tiling window manager: haha
@froge8121
@froge8121 4 жыл бұрын
Tiling WMs FTW
@szachgr43
@szachgr43 6 жыл бұрын
Do you have in yours plans make some video about JSMiner crypto attack. Similar like pop up but there are no ads but script start run mining some cryptocurrency on our computer :D for example coin-hive
@balajis1800
@balajis1800 5 жыл бұрын
Can u shows how to analyse an API
@knighToFdemonS
@knighToFdemonS 6 жыл бұрын
Could a re-definition of the window.open function prevent you from analyzing the code? I'm thinking of: - You are re-defining the critical functions - JS files get loaded - On loading the the developer puts in a re-defining of the functions to standard (like window.open = window.open) Then your initial re-defining of those functions would be set to normal again before executing the crucial code soooo....in the end your method would not work. Am I right?
@luphoria
@luphoria 2 жыл бұрын
Not necessarily. One thing I do when proxying base functions is archiving the original function (e.g. `window._open = window.open` before redefining the original window.open), so I can then see what I want first
@tanvorn9323
@tanvorn9323 5 жыл бұрын
SUBBBBBBBBBEDDDDD!!!!
Reverse Engineering PopUnder Trick for Chrome
13:46
LiveOverflow
Рет қаралды 85 М.
Custom Chromium Build to Reverse Engineer Pop-Under Trick
15:01
LiveOverflow
Рет қаралды 131 М.
Balloon Stepping Challenge: Barry Policeman Vs  Herobrine and His Friends
00:28
ТАМАЕВ vs ВЕНГАЛБИ. Самая Быстрая BMW M5 vs CLS 63
1:15:39
Асхаб Тамаев
Рет қаралды 3,2 МЛН
Watermelon Cat?! 🙀 #cat #cute #kitten
00:56
Stocat
Рет қаралды 22 МЛН
JavaScript Is Weird (EXTREME EDITION)
21:29
Low Byte Productions
Рет қаралды 682 М.
Cybercrime is Not Hacking!
11:16
LiveOverflow
Рет қаралды 78 М.
everything is open source if you can reverse engineer (try it RIGHT NOW!)
13:56
Low Level Learning
Рет қаралды 1,2 МЛН
Hacker101 - JavaScript for Hackers (Created by @STOKfredrik)
24:17
HOW FRCKN' HARD IS IT TO UNDERSTAND A URL?! - uXSS CVE-2018-6128
15:47
My YouTube Financials - The Future of LiveOverflow
35:00
LiveOverflow
Рет қаралды 104 М.
Balloon Stepping Challenge: Barry Policeman Vs  Herobrine and His Friends
00:28