Тёмный

Introducing Weird Machines: ROP Differently Explaining part 1 - bin 0x29 

LiveOverflow
Подписаться 894 тыс.
Просмотров 57 тыс.
50% 1

Опубликовано:

 

4 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 147   
@thatanimeweirdo
@thatanimeweirdo 5 лет назад
it took you 4 years to finally talk about your channels slogan? :P
@lhhn7245
@lhhn7245 5 лет назад
You did that oWo on purpose didn't you
@renakunisaki
@renakunisaki 5 лет назад
It's just how the memory had to be laid out, honest!
@zooeey
@zooeey 5 лет назад
*notices weird machine* o Wo what's this
@jit_rs
@jit_rs 4 года назад
oWo
@someone-rq3fm
@someone-rq3fm 4 года назад
Oooooh I get it :D
@qxtr5853
@qxtr5853 4 года назад
It's Hell
@qxtr5853
@qxtr5853 4 года назад
Memory :3
@renakunisaki
@renakunisaki 5 лет назад
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?
@Anonymouspock
@Anonymouspock 5 лет назад
Edited? :(
@LStranck
@LStranck 5 лет назад
7:12 But first, we need to talk about parallel universes
@liambrennan2380
@liambrennan2380 5 лет назад
Not gonna lie, did not expect to find a reference to that on Liveoverflow
@LiveOverflow
@LiveOverflow 5 лет назад
uhm... I don't understand this reference :D edit: googled it. And I remember where it was from. that video is sooooo frckn amazing!
@unflexian
@unflexian 5 лет назад
*T J H E N R Y Y O S H I*
@thatanimeweirdo
@thatanimeweirdo 5 лет назад
shoutouts to simpleflips
@renakunisaki
@renakunisaki 5 лет назад
Look at all those A presses though.
@kevinjohansson3923
@kevinjohansson3923 5 лет назад
Damn, this is such an elegant introduction to this topic. And an amazing way to tie some ends like your slogan. Love it!
@floatingblaze8405
@floatingblaze8405 5 лет назад
Yey! The binary exploitation series is back!
@motokokusanagi1147
@motokokusanagi1147 5 лет назад
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.
@renakunisaki
@renakunisaki 5 лет назад
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.
@motokokusanagi1147
@motokokusanagi1147 5 лет назад
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 =^_^=
@motokokusanagi1147
@motokokusanagi1147 5 лет назад
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/
@angelaD93
@angelaD93 5 лет назад
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 :)
@quantumbracket6995
@quantumbracket6995 5 лет назад
THE BIN SERIES IS BACK!!!
@小张同学-v6i
@小张同学-v6i 5 лет назад
sometimes you have to look back and enjoy what you have done -- cheers from 2019!
@chuckberry6650
@chuckberry6650 5 лет назад
I just wanna say that your RU-vid channel is truly one of the most beautiful things on the internet
@therawmeatball6883
@therawmeatball6883 5 лет назад
could you add the invoice program and the compiler to the descriptions section? I'd like to use it...
@keanu_
@keanu_ 5 лет назад
4:38 The answer to live the universe and everything.
@AtlasMTBRider
@AtlasMTBRider 5 лет назад
the probability of it being a coincidence is being calculated.
@fotisalexandridis5831
@fotisalexandridis5831 5 лет назад
So long we have waited for a proper rop explaination :)
@HimanshuPal-li7nj
@HimanshuPal-li7nj 5 лет назад
Damn, why didn't I find this channel before. It's so good
@yuxin7440
@yuxin7440 5 лет назад
This is so interesting, I can't wait to watch the further explanation for it!
@jameswait2934
@jameswait2934 5 лет назад
YES feed me your knowledge. I love this.
@TheKaruso33
@TheKaruso33 5 лет назад
I always thought your slogan read "explore weird mechanics". Reading does not seem to be my strong suit...
@Thiago1337
@Thiago1337 5 лет назад
Beautiful indeed, being able to map a kernel driver is VERY BEAUTIFUL.
@X3eRo0
@X3eRo0 5 лет назад
Amazing Video As always
@DanielDugovic
@DanielDugovic 5 лет назад
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.
@SapphFire
@SapphFire 5 лет назад
I'll forever keep seeing the _o Wo_ in hello world after this.
@alexisramirez2007
@alexisramirez2007 5 лет назад
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.
@TimLF
@TimLF 5 лет назад
This is why using rust, java, etc is critical.
@alexisramirez2007
@alexisramirez2007 5 лет назад
@@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.
@TimLF
@TimLF 5 лет назад
@@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)
@alexisramirez2007
@alexisramirez2007 5 лет назад
@@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.
@gyroninjamodder
@gyroninjamodder 5 лет назад
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)
@4.0.4
@4.0.4 5 лет назад
This is your best video yet imho.
@pimtrouerbach8753
@pimtrouerbach8753 5 лет назад
Super excited to see the next video!
@pedroricci1
@pedroricci1 5 лет назад
Can't wait for the next video!
@secureitmania
@secureitmania 5 лет назад
Eagerly waiting for part 2
@DarkLegends2008
@DarkLegends2008 5 лет назад
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 :-)
@maxinator80ify
@maxinator80ify 5 лет назад
Do you prefer a patreon pledge or RU-vid membership?
@LiveOverflow
@LiveOverflow 5 лет назад
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 :)
@Anonymouspock
@Anonymouspock 5 лет назад
YT membership might have a higher commission taken by the platform relative to what the creator gets, or maybe I'm misremembering.
@keyboard-slayer
@keyboard-slayer 5 лет назад
Wow, that's insane you show me something new, this thing seems amazing
@AlbySilly
@AlbySilly 5 лет назад
Can't wait for part 2
@philipgoh9142
@philipgoh9142 5 лет назад
It's so beautiful. They should have sent a poet.
@dekrain
@dekrain 5 лет назад
10:10 Looking at this screen I noticed that 'invoice' looks very much like 'invoke', which is a cool easter-egg.
@osenseijedi
@osenseijedi 5 лет назад
This is so inspiring! Thanks so much for sharing!
@jeancasse-couilles4081
@jeancasse-couilles4081 5 лет назад
I can't wait for the next video!!
@megumin_6548
@megumin_6548 5 лет назад
This time, you really impressed me!
@elijahkulpinski4983
@elijahkulpinski4983 5 лет назад
This is so beautiful.
@mjdev-i1p
@mjdev-i1p 5 лет назад
You should check out OSGI Equinox for creating Programming languages :)
@pyguy9915
@pyguy9915 5 лет назад
👏 very cool
@4.0.4
@4.0.4 5 лет назад
Even "rld!" Makes sense on its own, the scene group Reloaded.
@heller166
@heller166 5 лет назад
love this. keep it coming
@luckyverri3374
@luckyverri3374 5 лет назад
Thats it, you've done it.
@Verrisin
@Verrisin 5 лет назад
interpreter? .... ooh, I really hoped you had made a python compiler to machine code, that would have been damn impressive
@Verrisin
@Verrisin 5 лет назад
oooh, ok, the interpreter is actually pretty cute ^^ (or, the exploit / compiled ... 'weird machine')
@anon0815de
@anon0815de 5 лет назад
Wonderful! I'm hooked!
@sijsu
@sijsu 5 лет назад
I love your content!
@Verrisin
@Verrisin 5 лет назад
Can it really execute anything? Can you install, ... say keylogger, if you are only able to supply input for the invoice program?
@VaradMahashabde
@VaradMahashabde 5 лет назад
Those AAAAAs, is this a segmentation fault triggered code injection?
@codebeard
@codebeard 5 лет назад
Can this execute conditional jumps? Otherwise it's not turing complete
@nivmoshe5536
@nivmoshe5536 5 лет назад
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?
@LiveOverflow
@LiveOverflow 5 лет назад
Yep, exactly
@nivmoshe5536
@nivmoshe5536 5 лет назад
@@LiveOverflow Thanks for the reply, great video btw
@arsen3783
@arsen3783 5 лет назад
well I'm excited
@shubhamingle5728
@shubhamingle5728 5 лет назад
Brain: wait! what? Kabooom [»_«]
@joemann4643
@joemann4643 5 лет назад
Nice , perfect example of chaos theory, random norse theroy. Murphy's law hey. 👍
@Jagnathbaba
@Jagnathbaba 5 лет назад
You are saying that you are not executing your own code but it is being executed. Can you elaborate?? Also what is "shell code" ?
@LiveOverflow
@LiveOverflow 5 лет назад
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 :)
@marioguglia4928
@marioguglia4928 5 лет назад
Lol at the middle of the video I Just wanted to run away
@Scoopta
@Scoopta 5 лет назад
You spend so much time in Linux it always surprises me that you use macOS on your computer.
@AkhmedEvil
@AkhmedEvil 5 лет назад
Can u make video about code injection ?
@filipstamcar6553
@filipstamcar6553 5 лет назад
Where to download Weird language and Weird machine? 🤩
@ali-azizimayer-peters6686
@ali-azizimayer-peters6686 5 лет назад
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.
@MikeTrieu
@MikeTrieu 5 лет назад
**Go go gadget exploit!**
@MeepMu
@MeepMu 5 лет назад
What. I always thought it said "Explore Weird Mechanics".
@damejelyas
@damejelyas 5 лет назад
Man i love you
@telnobynoyator_6183
@telnobynoyator_6183 5 лет назад
Yaas !
@dutchgh0st540
@dutchgh0st540 5 лет назад
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..
@dabagz18
@dabagz18 5 лет назад
You're the BEST
@rmoretto
@rmoretto 5 лет назад
Great video, and beautiful concept! Do you plan to release the source code for you compiler?
@Ziandris
@Ziandris 5 лет назад
I'm a script kiddie does anyone know where I can start so I can evolve.
@TheBigHolox
@TheBigHolox 5 лет назад
See what you did there with the CTF challenge :P
@Verrisin
@Verrisin 5 лет назад
interesting, to me a return oriented programming would have meant the opposite of a language purely based on CPS
@Tristan-mr3pk
@Tristan-mr3pk 9 месяцев назад
@nettowaku1252
@nettowaku1252 5 лет назад
*LiveOverflow released a video* "var4 What's this?"
@j3r3miasmg
@j3r3miasmg 5 лет назад
Hello Weird!
@ari_archer
@ari_archer 2 года назад
I remember "don't be a script kiddie" lol
@Verrisin
@Verrisin 5 лет назад
5:00 - I'm not convinced, until I see at least BRANCH
@Verrisin
@Verrisin 5 лет назад
I would call this a 'macro' language (as in, vim macros) - it just executes a static sequence of builtin commands
@telnobynoyator_6183
@telnobynoyator_6183 5 лет назад
I once tried to do something like that
@SimonNitzsche
@SimonNitzsche 5 лет назад
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)
@sobertillnoon
@sobertillnoon 5 лет назад
RIP instruction pointer.
@kebien6020
@kebien6020 5 лет назад
I thought just this while watching
@MenkoDany
@MenkoDany 5 лет назад
❤!
@Saghetti
@Saghetti 5 лет назад
rip instruction pointer
@Raj_darker
@Raj_darker 5 лет назад
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.
@LiveOverflow
@LiveOverflow 5 лет назад
Purchase it!
@Raj_darker
@Raj_darker 5 лет назад
@@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..
@LiveOverflow
@LiveOverflow 5 лет назад
Checkout free Ghidra!
@Raj_darker
@Raj_darker 5 лет назад
@@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.
@Tuguldur
@Tuguldur 5 лет назад
Some early comment. Hi everyone
@nem64
@nem64 5 лет назад
o Wo whats this
@0x77dev
@0x77dev 5 лет назад
wow
@kaskrex
@kaskrex 5 лет назад
NICEEEE
@gcm4312
@gcm4312 5 лет назад
ghost in the shell
@glitchxx0
@glitchxx0 7 месяцев назад
Rop dying ?
@Mempler
@Mempler 5 лет назад
1:00 OwO
@randomname3669
@randomname3669 5 лет назад
0:49 oWo
@dadisuperman3472
@dadisuperman3472 5 лет назад
If you want get more advanced in security then check this guy, i learned a lot from him. Christopher Domas
@Maric18
@Maric18 5 лет назад
o Wo ... whats this? pomf
@hopehowdoyoufeel
@hopehowdoyoufeel 5 лет назад
I thought a weird machine is Hannah Montana Linux
@JOELwindows7
@JOELwindows7 5 лет назад
Security hole Security patch
@Wowthatsfail
@Wowthatsfail 5 лет назад
OwO
@MinecraftAmatorPL
@MinecraftAmatorPL 5 лет назад
o Wo
@billigerfusel
@billigerfusel 5 лет назад
What's this
@retnikt1666
@retnikt1666 5 лет назад
what?
@eleganteatinginjapan659
@eleganteatinginjapan659 5 лет назад
< 3
@hazel6221
@hazel6221 5 лет назад
HellOwO
@recency_bias
@recency_bias 5 лет назад
:D
@comradestinger
@comradestinger 5 лет назад
owo
@picklerick814
@picklerick814 5 лет назад
i understand everything but one thing: W H Y ?
@Donkydong
@Donkydong 5 лет назад
how you get kali linux
@damejelyas
@damejelyas 5 лет назад
Google it
@letsplaymassyhd
@letsplaymassyhd 5 лет назад
hack the nsa and steel it from theirs servers
@AdriGDev
@AdriGDev 5 лет назад
www.kali.org/downloads/
@Donkydong
@Donkydong 5 лет назад
nvm I found it on online
Далее
Weird Return-Oriented Programming Tutorial - bin 0x2A
15:12
Сколько стоит ПП?
00:57
Просмотров 343 тыс.
When you Accidentally Compromise every CPU on Earth
15:59
There Is Something Hiding Inside Earth
11:35
Просмотров 2,6 млн
How do QR codes work? (I built one myself to find out)
35:13
Harder Drive: Hard drives we didn't want or need
36:47
What Is A Graphics Programmer?
30:21
Просмотров 429 тыс.
Hacking a weird TV censoring device
20:59
Просмотров 3,1 млн
Hacker Tweets Explained
13:47
Просмотров 159 тыс.
Stop using std::vector wrong
23:14
Просмотров 82 тыс.
Сколько стоит ПП?
00:57
Просмотров 343 тыс.