Pretty sure my coworkers wrote those function names.
@samuel79986 жыл бұрын
This video is an exact representation of a programmer's life. Comitting mistakes, realizing where was the mistake 2 days later...
@Wilker_uwu5 жыл бұрын
committing and commiting lots of mistakes
@TremereTT5 жыл бұрын
@@Wilker_uwu it's marketing. Commit a lot of mistakes and create a after sales market for support plans and update plans and off course extended warranty plans...
@Wilker_uwu5 жыл бұрын
@@TremereTT this is why FOSS is important
@1101100106 жыл бұрын
And this, children, is why you always write unit tests.
@lukasriemer80386 жыл бұрын
This is so true. Save my life every day.
@dantenotavailable6 жыл бұрын
And why you really should run those unit tests to make sure they fail.
@NicolaiSyvertsen6 жыл бұрын
The important thing about doing unit testing is that it forces you to break down your code into small units that can run standalone. How would you apply this to all the nested for loops that depend on each other?
@papagunit6 жыл бұрын
And go functional to avoid nested if statements
@thomapple6 жыл бұрын
I used a simpler approach (in my opinion); I patched the function that prints the cells and inverted the behavior. I modified the "if" conditions so that all cells were revealed by default instead of hidden. Your solution is more elegant though!
@LiveOverflow6 жыл бұрын
Thought about that too! What did you use to modify the code?
@dirtbikersteve6 жыл бұрын
@@LiveOverflow dnSpy probably
@thomapple6 жыл бұрын
I used dnSpy. By the way, a colleague of mine was in your team at DEFCON and I asked him to bring me back some LiveOverflow goodies, and you gave him like dozens of stickers, thanks a lot :) maybe next time I can see you in person.
@craftyle6 жыл бұрын
Wait, wait, wait... thete are liveoverflow stickers???
@dafzu6 жыл бұрын
@LiveOverflow you can also use Reflexil plugin for ILSpy to manipulate IL code
@dm4uz36 жыл бұрын
I think it'd pretty funny how flare-on's website has no working https
@Zihad6 жыл бұрын
Same here xD
@coler1546 жыл бұрын
LetsEncrypt.org
@GalaxyCatz6 жыл бұрын
It’s probably intentional so that a future flag can be extracted from their website or something
@dm4uz36 жыл бұрын
@@GalaxyCatz hmm didn't think about that
@DanielSimon19956 жыл бұрын
@@GalaxyCatz in that case they could have added a challange.flare-on.com domain without ssl.
@NtQueryInformationProcess6 жыл бұрын
He uses 7-Zip instead of WinRAR. Best KZbinr ever.
@chaosmagican6 жыл бұрын
WinRAR can open 7z nowadays?
@NtQueryInformationProcess6 жыл бұрын
Yep.
@ac130kz6 жыл бұрын
WinRAR should be used only to compress RAR. In all other use cases it sucks a big one
@papagunit6 жыл бұрын
Izarc
@PflanzenChirurg6 жыл бұрын
@@ac130kz i use winrar all my life, no problems so far and its fast
@VLS-Why6 жыл бұрын
Oof, I hate when I make a silly mistake and end up with a convoluted work around. At least you learned more about the challenge
@AmauryOrtega6 жыл бұрын
yeah, keep trying was the key here. this bug could've been found by someone else working as a team, that's why team work is so important
@ckennedy03236 жыл бұрын
I don't know why but I decided to do this in python. I had gotten the result similar to how you did, but no matter the combinations (where I started the count for rows and columns), I couldn't get it to work. I imported ctypes, attempted to run my found cells into a generate key function I converted from C# to python, and even fruitlessly trying to rewrite all of the logic of the game into python. Turns out, I am better at programming than I am counting. I saw your video, saw that I got the same coordinates as you, and tried again, this time counting carefully. CTFs are really hard man.
@iliyass6 жыл бұрын
Awesome job man, keep these videos coming.
@Romannumerals_6 жыл бұрын
"I'm so dumb" hey man, dont be so hard on yourself. You're doing amazing :)
@nug2036 жыл бұрын
Lol, I burst out laughing at the end. Atleast you caught it in the end before a youtube comment could ruin your day. Thanks for the video liveoverflow. I loved this one!
@kimbol4966 жыл бұрын
Great vid as always!
@jaredmeit61276 жыл бұрын
The first challenge had obfuscated function names?! I would have been stuck on that. You rock!
@fireboltofdeath6 жыл бұрын
@@xorxpert I don't think you know what obfuscation is.
@xorxpert6 жыл бұрын
Fireboltofdeath apparently you don’t know what obfuscation is. -_-. There was no obfuscation in this video period. It’s decompilations, reverse engineering. There was no obfuscated function names. Everything was plain visible as day. If it was obfuscated, it’ll be hard and challenging to read it.
@xorxpert6 жыл бұрын
Fireboltofdeath that just shows you both don’t know nothing. That’s sad. Go continue with your daily life and don’t bother mines. I am a software engineer.
@fireboltofdeath6 жыл бұрын
@@xorxpert Obscure: not clearly expressed or easily understood. The function names were obfuscated, because they had names to mislead the user that doesn't do what the name implies. And, I'm a programmer also, so I really don't care. Obfuscation isn't only making your code hard to read,.
@fireboltofdeath6 жыл бұрын
obfuscate verb ob·fus·cate | \ˈäb-fə-ˌskāt; äb-ˈfə-ˌskāt, əb-\ obfuscated; obfuscating Definition of obfuscate 2 : CONFUSE: obfuscate the reader.
@JordiGerrie6 жыл бұрын
Quality content as always and this one is hilarious!
@nooneneedstoknowthis41415 жыл бұрын
Thumbs up for leaving the bug in there! Greatly underlines the constant try and error of hacking!
@Bar3ttGameplay6 жыл бұрын
My god, im so glad that i found your channel.
@DSAhmed2 жыл бұрын
You're not dumb. You're a human being. And the fact that you saw it at all means you're smart.
@hoxorious6 жыл бұрын
Like always another great video
@jean-baptistelasselle45625 жыл бұрын
ILSpy : The "IL" stands for "Intermediate Language", cf. "Intermediate Representation" (just love ur videos btw, hevin so much fun hackin on ur hax)
@forgotthisone3 жыл бұрын
This. Is. High quality!
@hosamalfishawy16354 жыл бұрын
i don't even understand what you say , but i love to watch this videos xD
@shans24086 жыл бұрын
I used dnSpy which acts kind of like IDE so you can patch, run, etc dotnet. I looked up the data structure that contained the minefield matrix. Looked up the positions of the no-bomb cells. But counting the tiny row colmns was tough. Also not knowing if the colms are 0-based or 1-based index added to the trouble, so I patched the exe to not exit the game on bomb reveal. Then clicked open all the cells in the vicinity of the empty cells untill I found the right one. Then in another window I open the non-patched exe. Aligned the two fields to see where the empty-cells are. :P I was happy with my approach untill I saw yours. I loved that you could do it statically and still make it look so easy. Waiting for more videos
@corruptbytes6 жыл бұрын
actually met some of the lead fire-eye people, and they are so cool and get to do amazing stuff in terms of RE
@trapOrdoom6 жыл бұрын
Jesus Christ you’re good as fuck, and these vids are so needed. Why no patreon or BTC donations? Whatever I can do to make sure you keep this up.
@lacno296 жыл бұрын
3:38 The InitializeComponent initializes those ughh..... components! Hahahahaha
@YezzyHD6 жыл бұрын
Man i strive to be as smart as you one day. Keep up the amazing videos!
@pacsmile6 жыл бұрын
Holy fuck, that went from 0 to 100000 real quick, i can't even imagine what the third challenge will be like.
@mitikox6 жыл бұрын
I've had a harder time reading c++ and binary. I usually write C#. Thank you for this video!
@ARMADA7KSA5 жыл бұрын
What kind of reason that may make some one press dislike for such great video ?
@alaeddine53876 жыл бұрын
very good ! For me as a beginner this was really helpfull and I understood all of it , thanks!
@mads74016 жыл бұрын
In the allocate memory class, you could create a string containing the flags and then just Messagebox.Show all the flags :) I did it like this in dnspy, displays all the flags: private void AllocateMemory(MineField mf) { // Initialize our string containing the flags information string flags = ""; for (uint num = 0u; num < MainForm.VALLOC_NODE_LIMIT; num += 1u) { for (uint num2 = 0u; num2 < MainForm.VALLOC_NODE_LIMIT; num2 += 1u) { bool flag = true; uint r = num + 1u; uint c = num2 + 1u; if (this.VALLOC_TYPES.Contains(this.DeriveVallocType(r, c))) { flag = false; // Save the flag x,y coordinate in the string flags += string.Format("({0}, {1}) ", c, r); } mf.GarbageCollect[(int)num2, (int)num] = flag; } } // Display our flags string MessageBox.Show(flags); }
@aurorans_solis6 жыл бұрын
That ending is one reason why I prefer langs where things are immutable by default :^)
@T3sl46 жыл бұрын
When you showed the brute force code, I immediately said to myself, "but wait, where is the copy from constants back to array2?... uh, if you say so?" D'OH! :D
@Mir4cleMan6 жыл бұрын
Nice solution for the second challenge, I just inverted the condition that decides what image is displayed on the field so i could see all bombs.
@jasonrobertcheney6 жыл бұрын
These are boss, slow learner these help so much.
@tobiumevolume98906 жыл бұрын
I dont like Fridays cause its gonna be weekend, i like them cause i get high quality content to watch!
@xetop6 жыл бұрын
Great video, thanks !
@trungthanhbp3 жыл бұрын
holy shit, 1st time I understand and saw your mistake init array outside the loop. That a big step, lol
@hermanheinz333 ай бұрын
Very good video!
@AlboCoder6 жыл бұрын
I didn't figure the RNG thing. Thanks for the video. I solved it the same way haha :) I just inserted the row and col I found from debugging to the input. (Click randomly and change the index calculation). I also tried to find the real safe slots but was too lazy :)
@z1mt0n1x26 жыл бұрын
Love listening to stuff I know absolutely nothing about xD
@wakandaforever12545 жыл бұрын
degga du bist so toll
@nahidux5 жыл бұрын
the 1st channel to which i pressed bell icon
@270jonp6 жыл бұрын
Great videos, I really enjoyed flare-on challenges and am happy to see you covering them. I do think, however, that you should revisit this problem with one of the simpler approaches for people still learning. anything that can edit a .net binary could be used to easily solve this problem. I actually ended up using Cheat engine for this as i was familiar with the tool. that said i loved seeing a more static approach to this problem, though i cant say i would want to do it myself.
@LiveOverflow6 жыл бұрын
How did you approach this with Cheat Engine?
@270jonp6 жыл бұрын
@@LiveOverflow Cheat Engine has a .net dissembler built into it. (or at least can pull the symbols and function names out) from there i searched for the function that triggered when i clicked on one of the tiles and found that they were all set to either 0 or 1, however the function to close the program only ran when it got a click event. So i changed all the values to positive and saw where the correct tiles were. took a picture with the snipping tool and then clicked them and got the flag. Honestly its a kinda weird way to do it and www.reddit.com/r/ReverseEngineering/ posted some much more efficient ways to do it but it was a lot of fun regardless. Also, i post a lot of criticism, but i love your work. Keep it up :) .
@angryman9333 Жыл бұрын
@@270jonp you should've shared a video doing that, but that's too late now :) regardless great work
@bryanjones30586 жыл бұрын
I love doing windows reversing, I wish I knew this was happening!
@hikaroto27916 жыл бұрын
Actually the video end up being quite exciting even for a standard user
@sarunint6 жыл бұрын
12:07 is priceless!
@manudeadskinmask34356 жыл бұрын
Wish I could do anything of that, but I'm just an electrician knowing the basics
@TheGrimravager6 жыл бұрын
hahahahaha that ending man, all too familiar
@estivanlombard26616 жыл бұрын
You know this man has been in the game for a while if he uses ILspy
@Gary-tp9dk3 жыл бұрын
Mind blowing..!!
@danielchin12596 жыл бұрын
The "Ohhhhhhhh" was extensively cute.
@paulbrandt31676 жыл бұрын
CTF 1: Open the disclosed program and copy some text CTF 2: literally run your brain around this significantly larger program for 10 hours just to realize that had you not of made one small mistake early on, you would of been done hours ago.
@RogueWizard-v9r6 жыл бұрын
I can RE better than anyone you know. I RE so well you cant ever get to me... Its the worst but kinda the best. comforting in a way.
@regul4rjohn6 жыл бұрын
If you think you are dumb what's left for the rest of us?! lol. Thanks for sharing!
@mobsean6 жыл бұрын
awesome content!
@VarunKumarB05976 жыл бұрын
Great channel.. keep up
@th3.Revenant6 жыл бұрын
Brain.exe has stopped working
@Wilker_uwu5 жыл бұрын
it is easy to understand how programming works, it's like learning to play the piano or your favorite competitive game: //i say that if you press(aButton), you get... press(Button aButton) { //the note played by this button which is the note of this button. return notePlayed = note[aButton]; } //then you define that the keyword "response" is the response of pressing this button on this position. response = press(thisButton[onThisPosition]); it is really easy to understand stuff by looking at simple mechanics, but the fun is about finding out what you can do with combinations and sequences of those mechanics used here.
@asandax65 жыл бұрын
@@Wilker_uwu You just Made his Entire OS go offline he is not responding. System Error;
@Wilker_uwu5 жыл бұрын
@@asandax6 throw new Error(string? message) || throw new RuntimeError(String? msg) ?
@asandax65 жыл бұрын
@@Wilker_uwu Ok I wrote Error String on a piece of paper and I threw it 😁. Now I am Grounded thanks to the message hitting my Mom🙁. So uh thanks.
@Wilker_uwu5 жыл бұрын
@@asandax6 what? XD
@prakashyadav0086 жыл бұрын
windows "NOT MY WORLD" same here. thats i reverse elf binaries and use rader2 for reversing mostly everything :)
@TheDimaSomov6 жыл бұрын
Huh, nice bruteforce approach, I hadn't even thought about that :D Just found all this stuff about cells with no bombs (done that using calculator... I'm too dumb to copypaste the code, yep xD) Looking forward to see you working on next challenges, I'm so excited :)
@sayyadabbas86875 жыл бұрын
Always debug the first few loop cycles ..and watch the state of variables
@miroslavmajer51555 жыл бұрын
12:10 Man, if you are dumb, then I am bubbling mad comparing to you. Awesome vids!
@IllusionEDM4 жыл бұрын
Hi! For .NET i recommend DnSpy, it's Open Source of Github.
@WaffeFIN4 жыл бұрын
4:04 "...also, the other pictures do not have a flag" *shows a picture of a flag* ;)
@arcticcat30406 жыл бұрын
Vert nice drawing of the Eevee evolution ^.^
@olivert.71926 жыл бұрын
interesting for sure, cool video
@nion4567896 жыл бұрын
Smashed the like
@DrensLP6 жыл бұрын
Hi, I'd like to Start With ctfs But cant find a easy one to Start With. Do you have an idea? Thank you!
@AhmadAlghannam6 жыл бұрын
what an alien!!!
@Diadras6 жыл бұрын
You need a rubber duck!
@EugeneKolo6 жыл бұрын
You'd also run into a bug in the brute force if the sorted array contained multiples of the same number. You assume the next number is greater, but it can be greater or equal than.
@Flare03l6 жыл бұрын
Doesn't that imply the same cell is there twice? I thought it must be greater than, and that there'd be no duplicates.
@EugeneKolo6 жыл бұрын
@@Flare03l Yeah that may be true, didn't examine it too closely/attempt the challenge myself. So I may be wrong in there being a bug :).
@sadrien6 жыл бұрын
@@EugeneKolo there is no bug, for exactly the reason flare stated. But in another program it might have been an issue.
@root3176 жыл бұрын
1:48 finally something i understand! 2:50 finally some c#/ .net $#!t that i know. this is going to be my episode! :D then this happens: 7:07 like wuuuuuut? XD im still 2 fuckin' young i guess lol.. :D
@epictech14726 жыл бұрын
What is basically happening is that the program is using a random integer as an XOR decryption key to an array of bytes, which contains the flag. Although, a seed is set, determined by cell values which are the same every time the program is started. That's what makes this weak. If you can find the cell values somehow, you can determine the seed, which then allows you to get the XOR key by generating random numbers using the seed and running an XOR decrypt operation on the array bytes.
@morsiskoPC6 жыл бұрын
If you are over 12 years old I doubt you are too young
@michaelepica35645 жыл бұрын
WOW I wish I could do that thatlooks like so much fun
@gamersunite90263 жыл бұрын
the second one would have been easier with dnspy. you can edit the code with it
@arnabmukherjee15806 жыл бұрын
Now I believe that even pros can make trivial mistakes.
@lacinaberthe60854 жыл бұрын
My dll file coded in c++, what can i do to get all c++ code ?
@qwkc6 жыл бұрын
I’m feeling a bit like a dumb dumb since I really only know BASICS of C++, have only gone more in depth into front end languages. What language were you coding in for your own Bruteforce/your application to print out the results?
@LiveOverflow6 жыл бұрын
we copied the recompiled C# code, and we just added some loops for the bruteforce around it. so in this case we used C#, because that was our target ;)
@qwkc6 жыл бұрын
LiveOverflow ah, thanks!
@VonCarlsson6 жыл бұрын
I took VALLOC_NODE_LIMIT to mean the maximal amount of nodes allocated in the vertical.
@greasyfingers92506 жыл бұрын
Why use ilspy instead of the better dnspy?
@mohdamrirazlan78796 жыл бұрын
How about the rest of the flag...are you gonna do a walkthrough video for that?
@catorials4443 жыл бұрын
I find CSharp really similar to java with a hint of c++.
@fredianriko56486 жыл бұрын
hey bro... i tried one of wesite you suggest to open before, its "w3challs.com" i have a problem on registering and login to that website... after i registered it said "registered succesfull", but there's no notification in my email, and also i tried to login to that website but always says "login/pass Error"... and after that, i tried to click "forget password feature, and i input my email address which i used to register, but the website said "your email has not been registered"... i really confused with this problem, i thought maybe i'ts some kind a test, i tried to connect to the irc channel using xchat and hexchat.. but the connection always denied. could you help me with this kind of problem i have? thanks .
@tacokoneko5 жыл бұрын
"Many of the challenges are based on Windows, which is not really my world" but LiveOverflow.. in your Google CTF 2019 qualifier video, you used Windows to run minetest! perhaps... having some problems, with hardware-accelerated 3d rendering, on your unspecified non-Windows platform? ;)
@fahmiirfan69236 жыл бұрын
I've searched for malware source code in deeper web and found some. How to know if those code are a malware?
@CalumBoal6 жыл бұрын
Read the source code?
@MiddleboroMovement5 жыл бұрын
Dn Spy, or .net reflector would have been a much easier tool to use. You did not even have to brute force the key, that's the over complicated way to do it. Nice for content though, good stuff.
@S1lenc319916 жыл бұрын
That just shows me how far im away of being an good dev. Just the slightest obfuscation shreddes me
@awes0meness1236 жыл бұрын
is it possible to decompile c++ native code?
@CoolAppleman4 жыл бұрын
Hi at 5:25 you messed up the drawing of the rows and columns last row has 21/22/21/22/23 it should be 20/21/22/23/24
@ari_archer4 жыл бұрын
"only 4 billion options" *it took me one f-ing year to fix a typo*
@kice2 жыл бұрын
I always define variables const if they are not suppose to change. So I have never encountered this kind of things after I switch to python XD.
@FetchBot3 жыл бұрын
watched this a couple times, just realized that the cell number grid example he drew i missing 20 5:20
@P-G-77 Жыл бұрын
"Give me a second..." any time i ear this message... my brain in automatic mode has the right response... NO RESPONSE AT ALL.
@tmcowley6 жыл бұрын
how come it is possible to de-compile the jar executable into java code, I thought it was only possible to find the binary assembly code using something like gdb. Sorry I am a noob, pls don't roast me
@LiveOverflow6 жыл бұрын
Java is not compiled to assembly code. Java is compiled to java bytecode (which runs in the Java VM). And that bytecode is a lot easier to decompile
@ムワ-d7n6 жыл бұрын
need more flareon ctf :3
@Veso2666 жыл бұрын
did you ever finish Flare-on?
@dirtyactsatdonedirtprice45475 жыл бұрын
where i can learn stuff like this
@cathalpoon63416 жыл бұрын
you use a wacom tablet? Cool every thing else not really XD just kidding keep doing what your doing man
@arsen37836 жыл бұрын
could you not have just compared the last four bytes of the encrypted key and undid the xor, as you already know what the key ends with edit: wait never mind, it's not the same byte xored against all of it