Тёмный

DEF CON 23 - Chris Domas - Repsych: Psychological Warfare in Reverse Engineering 

DEFCONConference
Подписаться 307 тыс.
Просмотров 162 тыс.
50% 1

Your precious 0-day? That meticulously crafted exploit? The perfect foothold? At some point, they'll be captured, dissected, and put on display. Reverse engineers. When they begin snooping through your hard work, it pays to have planned out your defense ahead of time. You can take the traditional defensive route - encryption, obfuscation, anti-debugging - or you can go on the offense, and attack the heart and soul of anyone who dare look at your perfect code. With some carefully crafted assembly, we'll show how to break down a reverse engineer by sending them misleading, intimidating, and demoralizing messages through the control flow graphs of their favorite RE tools - turning their beloved IDA (Hopper, BinNavi, Radare, etc) into unwitting weapons for devastating psychological warfare in reverse engineering.
SOeaker bio:
Chris is an embedded systems engineer and cyber security researcher, focused on innovative approaches to low level hardware and software RE and exploitation.
Twitter: @xoreaxeaxeax

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

 

21 окт 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 195   
@ronin6158
@ronin6158 8 лет назад
This guy is next level. Alot of people are very technically strong, knowledgeable or even clever, but they are compartmentalized. He really allows ideas to recurse, cross-pollinate and doesnt stop going with them. To me that is the true definition of genius.
@htomerif
@htomerif 7 лет назад
yeah, but you gotta ask yourself: which of these two things would deter you more: seeing a picture from your sandbox execution environment in a control flow graph, or just plain run of the mill obfuscation?
@0xf7c8
@0xf7c8 7 лет назад
Since I knew Chris Domas from a video of one of his conferences, I couldn't stop watching them He is truly a genious.
@vuurniacsquarewave5091
@vuurniacsquarewave5091 6 лет назад
You really need this kind of low-level thinking for that, because there are no constraints, you can do anything when you're close to the metal.
@RobinObinray
@RobinObinray 5 лет назад
Ronin it's called being geeky without internet's hivemindness.
@thatsweetlilthing2
@thatsweetlilthing2 5 лет назад
@@htomerif Why not both?
@frosty9392
@frosty9392 6 лет назад
this guy is the best. somehow rolled a 20 INT, 20 CHR, and a cyber security trait lol
@0xbitbybit
@0xbitbybit 8 лет назад
Epic. Taking a pic off their webcam if they had one and using that as the image in the CFG would be good too!
@photovi
@photovi 8 лет назад
Or their IP address 👌🏼
@cpuexpert
@cpuexpert 7 лет назад
it's tremendously scarier knowing that it is pulling personal photos as opposed to your ip address which it probably already pulled
@xponen
@xponen 5 лет назад
they fear things like this, that's why they do stuff using virtual machine.
@noobian3314
@noobian3314 4 года назад
@@xponen have u seen this guys other talks, he probably does know some secret instruction that can escape the hypervisor and pull in images from memory.
@Celastrous
@Celastrous Год назад
​@@noobian3314Yeah for real. I imagine next version of REpsych will use SMM to control the current running to the CPU, which (if there is particularly noticeable noise from the power supply), could be used to play audio. One day I hope to see malware that causes my PC tower to audibly rickroll me.
@jonathancook8343
@jonathancook8343 7 лет назад
This is my third talk by Domas, I love this guy, he's funny, a hyper-nerd and I understand around 70% of what he's talking about. His exposition on reverse engineering reversers was awesome.
@markpenrice6253
@markpenrice6253 5 лет назад
The other two (about different CPU backdoors) both put me to sleep. Which is by no means an insult to him or his talks ... it was late at night and trying to comprehend all of what he was saying simply overloaded my brain. It's like the quantum astromechanics of computer hardware hacking. Probably the guys at Intel and AMD have a looser understanding of what's going on inside their processors than he does, right now.
@chomo54andbabyaisha97
@chomo54andbabyaisha97 3 года назад
The most insane stuff I have seen. Man is a genious.
@markpenrice6253
@markpenrice6253 5 лет назад
Next step: operating system, compiled entirely into MOVs, running inside a VM... also compiled into MOVs. Bonus points for implementing Quicktime drivers as part of the system, so it can _play_ .MOVs using only MOVs (...ahem)
@proxy1035
@proxy1035 4 года назад
so all we need is an open source OS that is entirely written in C, then you can just throw it through the MOV compiler and there you go.
@sycration
@sycration 4 года назад
@@proxy1035 linux is
@proxy1035
@proxy1035 4 года назад
@@sycration thing is i'm an absolute noob when it comes to Linux so someone else would need to do that...
@hadinossanosam4459
@hadinossanosam4459 4 года назад
Linux isn't written *entirely* in C, and neither can any other OS be, you will always need some inline assembly for stuff that C (and only mov's) cannot accomplish, like port I/O (IN, OUT), setting up the interrupt and global descriptor tables (LIDT, LGDT), enabling interrupts (STI), handling interrupts (IRET, or alternatively some flag manipulation commands to achieve the same behaviour), system calls (INT), ...
@proxy1035
@proxy1035 4 года назад
@@hadinossanosam4459 i mean yea technically, but it still counts as "C" even if you use inline assembly since that is part of the C Syntax...
@remicou8420
@remicou8420 3 года назад
"Why is my dog in the malware?" - Hypothetical reverse-engineer who fell for the dumbest malware plan ever
@FedericoTrentonGame
@FedericoTrentonGame 7 лет назад
This guy is truly a genius
@ericmonson3760
@ericmonson3760 8 лет назад
Now I need to go put Clippy in my assembly.
@memoriasIT
@memoriasIT 6 лет назад
Amazing talk, knowledgeable speaker, makes the talk interesting and knows how to reach to people. Good job!
@Staplegunned911
@Staplegunned911 8 лет назад
That QR Code got me.
@EwanMarshall
@EwanMarshall 7 лет назад
Well, I deliberately followed it, but my barcode scanner just displayed the URL, then unshortened it to find the real destination and displayed that and I was like, oh, youtube video, I bet it is that one... lols.
@Phoen1x883
@Phoen1x883 7 лет назад
Is it rickroll? I bet it's rickroll.
@Phoen1x883
@Phoen1x883 7 лет назад
It was rickroll.
@ashurean
@ashurean 5 лет назад
@@Phoen1x883 I was watching the video when I got to the qr code bit. At that point, you know this man will destroy the universe to troll people, so I was 99% sure that it was either a gnome link or a rickroll.
@alexoja2918
@alexoja2918 3 года назад
@@Phoen1x883 it's not.
@alexoja2918
@alexoja2918 3 года назад
33:29 the most laborious one i've ever seen. i salute you, sir.
@dipi71
@dipi71 7 лет назад
This is bonkers! Just my kind of thing; thanks for sharing. Cheers!
@Cubinator73
@Cubinator73 7 лет назад
That guy has wayyy too much time :) Best DEFCON talk I have every heard :D
@bartlx
@bartlx 2 года назад
Can't begin to describe all the thought paths this brought back making my own conclusions after looking at one piece of asm for hours on end... but then to make a compiler just to prove it and bring it to a stage... wtf... EDIT: okay, saw the whole thing now, with the manipulated control graph imagery based on your personal files etc... This guy is legendary.
@rkj11107
@rkj11107 5 лет назад
Something like a surgeon placing atoms in liver in a way that next surgeon would see nice message. What a pro.
@Tuxfanturnip
@Tuxfanturnip 4 года назад
or like that scene in The Last Mimzy where they put the teddy bear under an electron microscope and find the Intel logo nano-printed on every hair
@chsovi7164
@chsovi7164 3 месяца назад
there was a surgeon who actually left his initials on patients livers
@markpenrice6253
@markpenrice6253 5 лет назад
Hmm, now, the modern world has trained us to believe that pixels have to be square, but it wasn't always necessarily thus, and for applications like this it need not be either. For the greyscale photos it's fairly optimal, but there are other types of image where a wider or narrower pixel could be better suited, and certainly cases could be made for one or the other if they better suited an attempt to weave actually useful execution payloads through the maze of dummy code. For example wider ones would tend to suit old-school game sprites, whereas narrower ones are generally better for text (and some other forms of graphics). And of course if they're double/half the size in one dimension vs the other you can always double up where a square is still needed. Particularly with a tall, rather than wide "pixel", you can still retain a degree of greyscale capability with otherwise small blocks (as the shading is dependent on how much of the available height is used, not width), and be able to write a meaningful amount of text within even a relatively small edit window, perhaps even implementing anti-aliasing, but having some freedom over what code goes where as you could write dark-ish text on a light-ish background (which gives the greatest space for writing functional code, as well as obfuscating garbage) and it would still be legible with some degree of "noise", as one or two instructions more or less wouldn't cause the block to get close to the 50% mid-grey point. Text being quite good for really messing with someone, as they might not immediately recognise a random and probably long-forgotten photo or other image from their HDD that's been mashed down to a 64x64 pixel thumbnail in about 10 shades of halftone-simulated grey, but if you can fish their name or operating handle from somewhere on the system (or the name of some contact of theirs and treat it accordingly) and include it in a short passage of mildly threatening but above all _super creepy_ text that appears to rise stochastically out of the code... that's pretty unequivocal and I'm pretty sure that if I saw that happen at 3am after a long hacking session in a dark and suddenly very quiet, very cold, very lonely room, that program and immediately afterwards that laptop would be closed with a bang registerable on local seismometers and flung across the room with no heed paid to possible damage. And of course if you really wanted, photos could be adjusted for non-square pixels: you just have to do a smooth resize with proportions distorted in an inverse relationship to the pixels they'll be encoded as. Once converted into code, and displayed in IDA, they'll automagically reverse that initial distortion and appear with the correct aspect ratio. I wonder also whether fairly sparse code path maps could be used to do more vector-style rather than pixel grid drawing using some kind of viterbi reverse tree search voodoo, if the rules for how IDA arranges and spaces things out could be more concretely determined? It might actually allow for more sophisticated images to be created with smaller output executables...
@andrewfielden284
@andrewfielden284 7 лет назад
The Movfuscator is pure genius! But I'm interested to know what Chris can do with Java bytecode.
@ped7g
@ped7g 6 лет назад
you can always delete it, and pretend it didn't exist... or wait until JVM will JIT it into machine code and then treat it like code... a bit retarded one, but whatever, it's highly likely the original Java source was already like that, so why should the final machine code look any better...
@dorukayhanwastaken
@dorukayhanwastaken 5 лет назад
23:54 Lesson learned: x86 is the hardware equivalent of Windows, which explains why Windows is mainly an x86 OS and Win 10 on ARM isn't making much progress in the market.
@AgentLeon
@AgentLeon 4 месяца назад
Intel or amd didn't invented these out of nowhere, it is probably optimises some algorithm or algorithm family and is easily implemented with all the same execution blocks that are already there
@the_original_dude
@the_original_dude Год назад
Oh my, this dude is a genius, and that's an understatement
@Bobucles
@Bobucles 6 лет назад
So a movuscator program would be immune to CPU architecture exploits, right? A program that has two different behaviors between mov code and regular assembly would indicate something was amiss?
@leahparsuidualc666
@leahparsuidualc666 6 лет назад
Is there any way to rearrange those etch-a-sketch IDA control flow diagrams, due to recode at runtime .. and if so doing a 'lode runner'- 'qbert'- or at least 'snakes'- -'longplay' ??? Or, or, or ... a full Episode of Masters of the Universe! ... hmm reminds me of C=64 .. seems i have to PEEK a lil' deeper into that POKE; anyhow thanks for bringing back the magic via MOVfuscator and actually keeping the record straight for the x86-multiverse. Very entertaining. What worries me is i do understand what you are eloquently speaking about, although i can't remember when and where i could have set video-playback to 2.00x speed ... ;)
@cobraflunkie
@cobraflunkie Год назад
I love this. Trolling at an epic level.
@tysonnw
@tysonnw 7 лет назад
Talk about extreme RISC, I wonder what a processor with only the mov instruction would look like and if it could be optimized to match modern processors.
@Double-Negative
@Double-Negative 6 лет назад
en.wikipedia.org/wiki/Transport_triggered_architecture
@discordiangod
@discordiangod 5 лет назад
So terrible you would not need to know
@RobinObinray
@RobinObinray 5 лет назад
It's like emulation engineering via assembly with complex fractal abstrations
@FeribHellscream
@FeribHellscream 6 лет назад
imagine this as real malware
@CptThunderKnut
@CptThunderKnut Год назад
This is a whole other level of trolling and genius. Props and wow! So interesting to watch
@lucyinchat
@lucyinchat 6 лет назад
Now I need to compile Linux with Movcc
@nullplan01
@nullplan01 6 лет назад
The QR code didn't get me. That's the first time I'm thankful for GEMA.
@MuscleTeamOfficial
@MuscleTeamOfficial 7 лет назад
Wow, this was his first talk? No way, he did that visualization stuff in 2012
@Roxor128
@Roxor128 7 лет назад
That Movfuscator is an atrocity!
@electrontube
@electrontube 5 лет назад
so strong. love to you dude. best talk at 23
@lazertroll702
@lazertroll702 8 лет назад
...i need to rethink my career path...
@thewatcher_476
@thewatcher_476 8 лет назад
I need to too
@RobinObinray
@RobinObinray 5 лет назад
LaZer Troll security researchers have God-tier coding skills? Enterprise programmers btfo.
@jamesgrimwood1285
@jamesgrimwood1285 6 лет назад
That final piece of "malware" should make use of the webcam... Seeing yourself would be a little weird :)
@tnosugar
@tnosugar 3 года назад
This is nuts! I'd go with "We know where you live..."
@eformance
@eformance 5 лет назад
Achievement unlocked: Inception complete!
@Syncopator
@Syncopator 5 лет назад
I think it must be time to build a computer that only implements mov instructions.
@nunosilva6574
@nunosilva6574 6 лет назад
So this is what being a next-level troll is... :)
@larrygall5831
@larrygall5831 5 лет назад
Wow, that was hilarious. Very good video.. Very good. Smart guy right here.
@robnergal575
@robnergal575 5 месяцев назад
Could embed: "We've been trying to contact you about your Car's extended warranty. This is a final courtesy call..."
@_hackwell
@_hackwell 10 месяцев назад
oh wow! this one is high level!
@Raj_darker
@Raj_darker 5 лет назад
Great Efforts and Really c00l video, IDA got smashed
@temitopehardhekheyhe7359
@temitopehardhekheyhe7359 4 года назад
may be the most!! resounding!! applause!! ever@defcon!!! .... .... .... aRt!!!!
@drowningin
@drowningin 7 лет назад
forget security benefits. this is awesome in its own right
@Gaxhar
@Gaxhar 8 лет назад
I just had to scan the QR code, didn't I?
@rogerwilco2
@rogerwilco2 8 лет назад
+Twitch · Rick Ashley?
@p4rsec
@p4rsec 8 лет назад
*Astley?
@Angloth
@Angloth 8 лет назад
*Ghastly?
@freesoftwaretalk
@freesoftwaretalk 7 лет назад
Aren't you happy to know that he will never give you up or let you down?
@AndrewTJackson
@AndrewTJackson 6 лет назад
You and me both, mate.
@RobinObinray
@RobinObinray 5 лет назад
On the fringe of cyber security research
@rogerwilco2
@rogerwilco2 8 лет назад
That's brilliant. Probably Useless, but brilliant.
@xesau
@xesau 6 лет назад
RogerWilco Art
@RobinObinray
@RobinObinray 5 лет назад
RogerWilco it's not useless. He showed us a sneak peek of how governments spy on us...
@RobinObinray
@RobinObinray 5 лет назад
RogerWilco he uses code complexity fractaling?...
@josephsagotti8786
@josephsagotti8786 5 лет назад
@@RobinObinray How governments spy on us? This is literally about making reverse engineer's jobs harder by making code harder to read.
@nindger4270
@nindger4270 5 лет назад
Epic idea and awesome talk. Sidenote though, regarding the QR-Code @ around 33:30: at least in Germany, the YT-link it takes you to is blocked :-( Still lol'ed pretty hard when I saw the title, but it kinda spoils the idea.
@josephmauck9200
@josephmauck9200 2 года назад
He's never gonna give you up, he's never gonna let you down... it's a rickroll ;)
@bluescanfly1981
@bluescanfly1981 6 лет назад
Homeboy is an artist. It's like BB King playing the blues. As simple as possible, but no simpler - it just makes you happy.
@b1ueberrycheesecake
@b1ueberrycheesecake Год назад
lmao i scanned the qr code out of curiosity watching this 4 in the morning.
@softdatcls7156
@softdatcls7156 8 лет назад
Good Job !
@floppydisk4500
@floppydisk4500 4 года назад
Artist absolutely everywhere even in your source source code go have fun with it
@kuhluhOG
@kuhluhOG 4 года назад
So, what is the performance of a mov only program compared to a normal compiled one?
@blu3h4t
@blu3h4t Год назад
Wait you expect a reverse engineer to run the malware bare metal on their personal machine?:D
@kahungchim6367
@kahungchim6367 2 года назад
Alternative title: How to make pixel art with IDA pro
@discordiangod
@discordiangod 5 лет назад
But what if you embedded Opcodes in the control graph? Would science go too far?
@dutchgh0st540
@dutchgh0st540 6 лет назад
What about a kernel written with only mov instructions?...??
@RobinObinray
@RobinObinray 5 лет назад
Dutch Gh0st what about a dynamic boot-time kernel replacement with a kernel that, if disassembled with IDA, leaks any possible personal data to pastebin and then links to the pastebin url via QR code a reverser will see in CFG
@LuxiusDK
@LuxiusDK 5 лет назад
Did this guy go for the Cypher look or was it the other way around?
@chrissxMedia
@chrissxMedia 5 лет назад
wow...the qr code is a rick roll
@blu3h4t
@blu3h4t Год назад
This is like ascii art from hell. Or is it what snowcrush is about?:D
@vizionthing
@vizionthing 5 лет назад
Godlike!
@IvanToshkov
@IvanToshkov 7 лет назад
Great talk! Just put in some quotes from the star wars prequels. I mean, how long do you think you can stare at something like “You are in my very soul, tormenting me…” or “I wish I could just wish away my feelings”?
@Nicofromtheweb
@Nicofromtheweb 5 лет назад
I don't understand any of this... but the drawings were funny ! I feel like a child.
@AviPars
@AviPars 2 года назад
Sweet video !!
@wirer0p497
@wirer0p497 Год назад
great talk :)
@BaSs_HaXoR
@BaSs_HaXoR 7 лет назад
IDA GOAT.
@Davi-c4q
@Davi-c4q 5 лет назад
33:25 next level cryptography
@dylanmatthews7431
@dylanmatthews7431 3 года назад
I have a question for you when it comes to wanting to crack a game. Do you personally know if there is anyone talented enough in the scene to reverse engineer the game Path of Exile? People say it's one of the worst targets they've ever attempted, with a bunch of abstraction layers and you get perma banned if you even look too long. It's a live server client and the game is free, but people want to make their own private server out of it to be able to play the content the way they want, in a non-profit fashion obviously. Any ideas on how you would go about bypassing the drm on this live service client and getting the source code for people to make their own private server out of it?
@mariarahelvarnhagen2729
@mariarahelvarnhagen2729 Год назад
playing last return of the japanese final surrender with TRSi
@jamesdegriz
@jamesdegriz 6 лет назад
This video makes Facebook throw an error message.
@DaveRoberts308
@DaveRoberts308 4 года назад
Brilliant.
@RahulJain-wr6kx
@RahulJain-wr6kx 4 года назад
This is something awesome 😁
@caleballen4721
@caleballen4721 4 года назад
Every time this guy is in my recommended I hope so badly it's a new one.. but I heard he got hired by Intel so he probably won't be doing these public talks anymore..
@KarlMySuitcase
@KarlMySuitcase 4 года назад
That would have been a great call on intels part
@Warutteri
@Warutteri 6 лет назад
33:44 Got fucking Rick Rolled x'D
@danatronics9039
@danatronics9039 5 лет назад
"Why is my dog in the malware?" /r/brandnewsentence
@CharlesVanNoland
@CharlesVanNoland 7 лет назад
lol control flow graph messages
@aquatrax123
@aquatrax123 7 лет назад
Amazing!
@brashcrab
@brashcrab Год назад
Elvis is Alive
@ICountFrom0
@ICountFrom0 4 года назад
I kind of wanted to see what a movoscated program looked like in Ida.
@evanperrygiblin
@evanperrygiblin 6 лет назад
I just don't think that any code should have to be written twice, there's so much time and headache to write it the first time
@isabelle5547
@isabelle5547 4 года назад
this is great and all but does he not look exactly like the default runescape character
@peepopalaber
@peepopalaber 6 лет назад
He is the real king of trolls.
@nullnull6032
@nullnull6032 2 года назад
that is insane
@yashbansod5628
@yashbansod5628 4 года назад
I use gdb mostly.
@mariarahelvarnhagen2729
@mariarahelvarnhagen2729 Год назад
can you see AC ?
@shredo2
@shredo2 6 лет назад
somehow I knew where that QR code will take me... ^^
@m3taldragon1
@m3taldragon1 2 года назад
And then someone runs your program through MASM... Wow so hard!
@Some_Beach
@Some_Beach 5 лет назад
Now to embed goatse in my code
@flapeee
@flapeee 6 лет назад
BEST TROLLing EVER !!!
@nullvoidpointer
@nullvoidpointer 2 года назад
33:33, got me.
@Technopath47
@Technopath47 Год назад
For anyone else who is wondering what that QR Code leads to, it's a Rick Roll. (facepalm laughs)
@billigerfusel
@billigerfusel 6 лет назад
Holy shit, this is evil.
@DJBillyQ
@DJBillyQ 6 лет назад
A security in and of its own...
@TrexityTrex
@TrexityTrex 5 лет назад
This man is a fucking legend lmaooo
@TatsuZZmage
@TatsuZZmage 7 лет назад
oh god idea a full build of gentoo with it mwa hahahaha
@tuanlinhdao3389
@tuanlinhdao3389 8 лет назад
Nice :D
@NolePTR
@NolePTR 7 лет назад
HOLY SHIT!
@thorlancaster5641
@thorlancaster5641 4 года назад
Imagine an endless sea of MOV instructions, punctuated by discouraging messages and symbols. Bet no one would want to reverse engineer that.
@jonascurry9996
@jonascurry9996 8 лет назад
sick
@Engineerisaac
@Engineerisaac 5 лет назад
One dude I reversed his code lots of Bible verses...
@DrewWalton
@DrewWalton 3 года назад
So you reversed TempleOS?
@margueritemunson6447
@margueritemunson6447 4 года назад
Hes the Tai Lopez of reverse engineering
@stutavagrippa8690
@stutavagrippa8690 2 года назад
I hate myself so I'll reverse engineer this
Далее
When you Accidentally Compromise every CPU on Earth
15:59
Harder Drive: Hard drives we didn't want or need
36:47
Malware Development: Processes, Threads, and Handles
31:29
I made an entire OS that only runs Tetris
22:37
Просмотров 1,6 млн