it took you 4 years to finally talk about your channels slogan? :P
@zooeey5 жыл бұрын
*notices weird machine* o Wo what's this
@jit_rs4 жыл бұрын
oWo
@someone-rq3fm4 жыл бұрын
Oooooh I get it :D
@qxtr58534 жыл бұрын
It's Hell
@qxtr58534 жыл бұрын
Memory :3
@kevinjohansson39235 жыл бұрын
Damn, this is such an elegant introduction to this topic. And an amazing way to tie some ends like your slogan. Love it!
@lhhn72455 жыл бұрын
You did that oWo on purpose didn't you
@renakunisaki5 жыл бұрын
It's just how the memory had to be laid out, honest!
@floatingblaze84055 жыл бұрын
Yey! The binary exploitation series is back!
@renakunisaki5 жыл бұрын
Another weird machine you might find interesting (nothing to do with ROP though): the CIC "lockout chip" in the Nintendo Entertainment System. It's a very low-end microcontroller. What makes it interesting are two features: 1. The PC doesn't count linearly. Apparently to reduce cost, they used a shifter instead. So the addresses it will execute (without jumps) are 1, 2, 4, 8, 16... If it reaches 0 (and I think 127?) it will be stuck there. 2. The same chip exists in console and cartridge. They both send signals to eachother and expect a corresponding reply (sort of challenge response). To do this the two ROMs must execute in perfect lockstep so that one reads precisely when the other writes. The programs are carefully structured to ensure both sides of each branch take the same number of cycles. The ROMs are out there, I don't remember where, but probably on nesdev?
@Anonymouspock5 жыл бұрын
Edited? :(
@angelaD935 жыл бұрын
I just learned about the existence of ROP while I was studing for my operating system exam this week and now this video pops up. What kind of wizardry is this? Perfect timing :)
@LStranck5 жыл бұрын
7:12 But first, we need to talk about parallel universes
@liambrennan23805 жыл бұрын
Not gonna lie, did not expect to find a reference to that on Liveoverflow
@LiveOverflow5 жыл бұрын
uhm... I don't understand this reference :D edit: googled it. And I remember where it was from. that video is sooooo frckn amazing!
@unflexian5 жыл бұрын
*T J H E N R Y Y O S H I*
@thatanimeweirdo5 жыл бұрын
shoutouts to simpleflips
@renakunisaki5 жыл бұрын
Look at all those A presses though.
@motokokusanagi11475 жыл бұрын
ROP and gadgets were developed much earlier than 1997 and were broadly used at least in 1984. May be earlier. Some microcomputers of the days used ROM-based firmware for external devices or even the operating system. The ROM-based code was somewhat "priviledged" - major address bus bits, corresponding only to the ROM region were used to map some ports or even buffers to the address space. User code was placed in the addresses, that locked out hardware specific things so there was no direct control over them. But "gadgets" found and executed in the ROM via stack modification made direct hardware ports and buffers hacking possible. I personally used this to make Sinclair ZX-Spectum TR-DOS system do things, original firmware could not do. Also it was buggy, never updated and this was the only way to make some thing work anyway.
@renakunisaki5 жыл бұрын
A similar exploit can be used to dump the Nintendo DS BIOS. Only code within the BIOS region can read it, but you can just craft a stack frame and jump blindly into the end of a function that will just read an arbitrary address and return.
@motokokusanagi11475 жыл бұрын
That's right, it's a common technic in console hacking, especially the old ones with little to no RAM. The same goes for embedded hacking. My point was to let people know that smart hackers were there decades ago. I hope it'll motivate some one to dig deeper and surpass the ancestors, not just become on par =^_^=
@motokokusanagi11475 жыл бұрын
Actually, TR-DOS mapped it's ROM over the main ZX-Spectrum firmware just in the moment CPU jumped to specific address range that had no executable code in it (there was a font or text resources, I do not recall now). So the firmware was "visible" only for itself. A common technic of the days. Nowdays iit s common to trick a device with a request, supposed to return some data, but force it to return a part of firmware dump or something. Hope we will see something like that here too/
@quantumbracket69955 жыл бұрын
THE BIN SERIES IS BACK!!!
@chuckberry66505 жыл бұрын
I just wanna say that your KZbin channel is truly one of the most beautiful things on the internet
@小张同学-v6i5 жыл бұрын
sometimes you have to look back and enjoy what you have done -- cheers from 2019!
@fotisalexandridis58315 жыл бұрын
So long we have waited for a proper rop explaination :)
@keanu_5 жыл бұрын
4:38 The answer to live the universe and everything.
@AtlasMTBRider5 жыл бұрын
the probability of it being a coincidence is being calculated.
@therawmeatball68835 жыл бұрын
could you add the invoice program and the compiler to the descriptions section? I'd like to use it...
@alexisramirez20075 жыл бұрын
This is why bounds checking is critical, especially for any input. ROP vulnerabilities sometimes happen when a programmer doesn't take the time to secure their program design, OS security features can't prevent insecure programs.
@TimLF5 жыл бұрын
This is why using rust, java, etc is critical.
@alexisramirez20075 жыл бұрын
@@TimLF But I need to be closer to the bare metal hardware with full control of memory so it will be tedious, so C/C++/Assembly only.
@TimLF5 жыл бұрын
@@alexisramirez2007 what exactly do you think you can't do with rust? ( at the very least the user interface part of every application should be rust with bindings to whatever assembly/C is required)
@alexisramirez20075 жыл бұрын
@@TimLF You have a point, I mostly program Linux applications with C and ASM for security challenges or niche pet-projects. I have neglected exploring practical languages for applications, such as rust.
@gyroninjamodder5 жыл бұрын
If you have dependent types you can make the lack of bounds checking a compile time error. For simple cases where the size of the array is static, the compiler can just do the bounds checking at compile time instead of requiring you to write it. This means you don't have to pay for bounds checking if you don't need it. Also, these bounds checks don't have to happen at access time. You can check the size of an array at the start of a function with a check and the compiler can use that single check for all your accesses. This technique has no runtime overhead (unless you are counting insecure applications which don't bounds check dynamic sized arrays)
@HimanshuPal-li7nj5 жыл бұрын
Damn, why didn't I find this channel before. It's so good
@yuxin74405 жыл бұрын
This is so interesting, I can't wait to watch the further explanation for it!
@dekrain5 жыл бұрын
10:10 Looking at this screen I noticed that 'invoice' looks very much like 'invoke', which is a cool easter-egg.
@4.0.45 жыл бұрын
This is your best video yet imho.
@keyboard-slayer5 жыл бұрын
Wow, that's insane you show me something new, this thing seems amazing
@jameswait29345 жыл бұрын
YES feed me your knowledge. I love this.
@pimtrouerbach87535 жыл бұрын
Super excited to see the next video!
@Thiago13375 жыл бұрын
Beautiful indeed, being able to map a kernel driver is VERY BEAUTIFUL.
@X3eRo05 жыл бұрын
Amazing Video As always
@nivmoshe55365 жыл бұрын
Hey LiveOverFlow. in 6:47 when you mentioned that both the stack and the heap are not executable, does the DEP mechanism responsible for that?
@LiveOverflow5 жыл бұрын
Yep, exactly
@nivmoshe55365 жыл бұрын
@@LiveOverflow Thanks for the reply, great video btw
@secureitmania5 жыл бұрын
Eagerly waiting for part 2
@DanielDugovic5 жыл бұрын
Very much looking forward to your ROP video! I'm curious to what extent American Fuzzy Lop and/or other fuzzers can be used to generate weird machines.
@pedroricci15 жыл бұрын
Can't wait for the next video!
@DarkLegends20085 жыл бұрын
OMG! Simply amazing ! I surprise how wierd it's and how amazing and full of oportunits to do what ever you want... TKS From BRAZIL :-)
@philipgoh91425 жыл бұрын
It's so beautiful. They should have sent a poet.
@AlbySilly5 жыл бұрын
Can't wait for part 2
@osenseijedi5 жыл бұрын
This is so inspiring! Thanks so much for sharing!
@SapphFire5 жыл бұрын
I'll forever keep seeing the _o Wo_ in hello world after this.
@TheKaruso335 жыл бұрын
I always thought your slogan read "explore weird mechanics". Reading does not seem to be my strong suit...
@jeancasse-couilles40815 жыл бұрын
I can't wait for the next video!!
@maxinator80ify5 жыл бұрын
Do you prefer a patreon pledge or KZbin membership?
@LiveOverflow5 жыл бұрын
Hey, I don’t really have a preference. Thanks for even considering it! Whatever you prefer - I explain my thoughts with both systems in a Video you can also find on the Patreon page or my channel. Please watch that first :)
@Anonymouspock5 жыл бұрын
YT membership might have a higher commission taken by the platform relative to what the creator gets, or maybe I'm misremembering.
@Verrisin5 жыл бұрын
Can it really execute anything? Can you install, ... say keylogger, if you are only able to supply input for the invoice program?
@megumin64565 жыл бұрын
This time, you really impressed me!
@4.0.45 жыл бұрын
Even "rld!" Makes sense on its own, the scene group Reloaded.
@elijahkulpinski49835 жыл бұрын
This is so beautiful.
@codebeard5 жыл бұрын
Can this execute conditional jumps? Otherwise it's not turing complete
@heller1665 жыл бұрын
love this. keep it coming
@anon0815de5 жыл бұрын
Wonderful! I'm hooked!
@mjdev-i1p5 жыл бұрын
You should check out OSGI Equinox for creating Programming languages :)
@VaradMahashabde5 жыл бұрын
Those AAAAAs, is this a segmentation fault triggered code injection?
@luckyverri33745 жыл бұрын
Thats it, you've done it.
@Verrisin5 жыл бұрын
interpreter? .... ooh, I really hoped you had made a python compiler to machine code, that would have been damn impressive
@Verrisin5 жыл бұрын
oooh, ok, the interpreter is actually pretty cute ^^ (or, the exploit / compiled ... 'weird machine')
@pyguy99155 жыл бұрын
👏 very cool
@Jagnathbaba5 жыл бұрын
You are saying that you are not executing your own code but it is being executed. Can you elaborate?? Also what is "shell code" ?
@LiveOverflow5 жыл бұрын
Those gadgets and code snippets are already inside the program. We did not inject those. We just use/abuse them to construct our own programs. Shellcode would be, if we create assembler code, get it via input into the program‘s memory, and jump to it. But I think you should checkout the basics of buffer overflows in the binary exploitaion playlist first :)
@Scoopta5 жыл бұрын
You spend so much time in Linux it always surprises me that you use macOS on your computer.
@sijsu5 жыл бұрын
I love your content!
@arsen37835 жыл бұрын
well I'm excited
@ali-azizimayer-peters66865 жыл бұрын
That is really mindblowing LiveOverflow. So you basically exploit a program in that way, that you can create a whole programming language upon this fucked up environment ? That just insane ! That's twisted insane..... No Words for that :D Oh, by the way a philosophic question: " Is not every machine a weird machine ? " I bet you can abuse any program, hardware, microcontroller in a way nobody thinks of.
@Verrisin5 жыл бұрын
5:00 - I'm not convinced, until I see at least BRANCH
@Verrisin5 жыл бұрын
I would call this a 'macro' language (as in, vim macros) - it just executes a static sequence of builtin commands
@joemann46435 жыл бұрын
Nice , perfect example of chaos theory, random norse theroy. Murphy's law hey. 👍
@TheBigHolox5 жыл бұрын
See what you did there with the CTF challenge :P
@damejelyas5 жыл бұрын
Man i love you
@rmoretto5 жыл бұрын
Great video, and beautiful concept! Do you plan to release the source code for you compiler?
@dabagz185 жыл бұрын
You're the BEST
@AkhmedEvil5 жыл бұрын
Can u make video about code injection ?
@MikeTrieu5 жыл бұрын
**Go go gadget exploit!**
@filipstamcar65535 жыл бұрын
Where to download Weird language and Weird machine? 🤩
@nettowaku12525 жыл бұрын
*LiveOverflow released a video* "var4 What's this?"
@shubhamingle57285 жыл бұрын
Brain: wait! what? Kabooom [»_«]
@Raj_darker5 жыл бұрын
Hii Everyone.. How to download "Hopper Disassembler for mac free full version" I have been searching for crack of it, but didn't get yet.. So Is there any way to get it free or otherwise I have to purchase it.
@LiveOverflow5 жыл бұрын
Purchase it!
@Raj_darker5 жыл бұрын
@@LiveOverflow I am student, I don't have additional Resource of Income, Can you please help me out, any how?? And I need that software for Binary Exploitation..
@LiveOverflow5 жыл бұрын
Checkout free Ghidra!
@Raj_darker5 жыл бұрын
@@LiveOverflow Yaa, I am using Ghidra, but I am beginner for CTFs And Hopper's Interface is more convenient than Ghidra. THANKS for your all videos and knowledge. It's all worth to watch. I am following your channel For CTFs. Again Thanks you so much.
@marioguglia49285 жыл бұрын
Lol at the middle of the video I Just wanted to run away
@telnobynoyator_61835 жыл бұрын
Yaas !
@sobertillnoon5 жыл бұрын
RIP instruction pointer.
@kebien60205 жыл бұрын
I thought just this while watching
@Ziandris5 жыл бұрын
I'm a script kiddie does anyone know where I can start so I can evolve.
@MeepMu5 жыл бұрын
What. I always thought it said "Explore Weird Mechanics".
@j3r3miasmg5 жыл бұрын
Hello Weird!
@0x77dev5 жыл бұрын
wow
@Saghetti5 жыл бұрын
rip instruction pointer
@Verrisin5 жыл бұрын
interesting, to me a return oriented programming would have meant the opposite of a language purely based on CPS
@ari_archer2 жыл бұрын
I remember "don't be a script kiddie" lol
@u0000-u2x5 жыл бұрын
ghost in the shell
@Tristan-mr3pk Жыл бұрын
❤
@telnobynoyator_61835 жыл бұрын
I once tried to do something like that
@dadisuperman34725 жыл бұрын
If you want get more advanced in security then check this guy, i learned a lot from him. Christopher Domas
@randomname36695 жыл бұрын
0:49 oWo
@Mempler5 жыл бұрын
1:00 OwO
@MenkoDany5 жыл бұрын
❤!
@SimonNitzsche5 жыл бұрын
Am i the only one who thought the first program would create an Overflow because the string never ends? (no 0x00 at the end of the string)
@Tuguldur5 жыл бұрын
Some early comment. Hi everyone
@kaskrex5 жыл бұрын
NICEEEE
@nem645 жыл бұрын
o Wo whats this
@dutchgh0st5405 жыл бұрын
What if your compiler also is a weird machine in itself...and the produces outmout a weird machine in itself as well.... Its weird machines all the way down..