Тёмный

Simple Tools and Techniques for Reversing a binary - bin 0x06 

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

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

 

10 окт 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 222   
@Bubatu7
@Bubatu7 7 лет назад
Hahaha, "press shift+r and be happy." Great tutorials, you make it look so easy! Thank you!
@mosesnah2893
@mosesnah2893 8 лет назад
how can these wonderful tutorials only have 4000 views? Cannot believe Thank you so much for these super awesome & helpful videos :)
@LiveOverflow
@LiveOverflow 8 лет назад
thank you! If you think it deserves more views, please share it. I'd appreciate it :)
@AhmedJadelrab
@AhmedJadelrab 7 лет назад
I think because there are a few people who understands what he is talking about.
@twistedsim
@twistedsim 6 лет назад
x10 views in 1 year, not bad
@DigitalMonsters
@DigitalMonsters 6 лет назад
To be fair this stuff is super esoteric. I get that these tutorials are aimed at beginners but it still assumes an absurd level of computer competency from the outset. I'm a recent Software Engineering grad and I feel completely out of my depth. I need to find an even more "for dummies" series than this and maybe then I can come back to this.
@LiveOverflow
@LiveOverflow 6 лет назад
I would like to make videos that help people on your level. I’m wondering how I should approach it. Any ideas or examples? Wanna write me a mail LiveOverflow at gmail?
@0x90meansnop8
@0x90meansnop8 7 лет назад
Dude, I'm really thankfull for your videos! As a selftaught coder it's sometimes hard to move on when there is nobody around you to help you out. But the biggest struggle I faced was not the code by itself. It were mostly the tools i had to use and I had no idea most of them even exist. Thank you very much for this video. This will help me to learn a lot faster than I did before. You're awesome.
@muffawuffaman
@muffawuffaman 7 лет назад
" for a full list of commands see 'strings /dev/urandom' " oh boy this is one long help file
@cocbuilds
@cocbuilds 5 лет назад
I haven't read a single help file yet. They're all like 50 pages worth.
@jacobtungate3828
@jacobtungate3828 4 года назад
@@cocbuilds issa joke because urandom is just random characters
@blueairwolf1
@blueairwolf1 3 года назад
RTFM -read the fine/f*ck!ng manual :D
@Hackers-df5fm
@Hackers-df5fm Год назад
i've been trying to master radare, its been 2 YEARS!! also, great explanation of disassembling and decompilation of binary!
@dox432
@dox432 4 года назад
strings objdump strace, ltrace Hopper Disassembler (other disassemblers include Ghidra, IDA Pro, and Ollydbg) radare2 (cutter)
@TheGimpyGus
@TheGimpyGus 7 лет назад
I was really keen to get into this kind of thing for a long time, your tutorials are amazing, honestly thankyou!
@Ebotchl23
@Ebotchl23 4 года назад
If you are doing this in 2020 and want to move the nodes around you need to first toggle into graph cursor mode with "c" and then you can move nodes around. Shift + hjkl while not in cursor mode will just allow you to jump around visual mode faster.
@gtg7529
@gtg7529 5 лет назад
Dear, although i only can understand less than 50% of your video, your are a very amazing guy! Thanks for your videos and i watch your each video more than 3times to try to understand what you say...
@b0nes95
@b0nes95 6 лет назад
I don't know how I'd live without my trusty companion, CTRL +R.
@zeynarz7614
@zeynarz7614 4 года назад
God Bless you for making this series. Thank you so much.
@madisonhanberry6019
@madisonhanberry6019 6 лет назад
I've been looking for a reverse-engineering resource like these videos for years! Please make more!!!
@elatedmaniac
@elatedmaniac 5 лет назад
Literally learned more in this 12 min video than two months of class.
@ricardobrito6868
@ricardobrito6868 2 года назад
WOW! this radare is better than jdb when stepping instructions... You can see it stepping in the graph! Really good!
@connormcneill9024
@connormcneill9024 6 лет назад
"for a full list of commands see `strings /dev/random`' i c wat u did ther
@lars-magnusskog3983
@lars-magnusskog3983 4 года назад
Just a quick note that the r2 commands has changed quite a bit from 2016 to 2020. E.g. the help in visual mode is quite a bit more extensive.
@Salmiery
@Salmiery 8 лет назад
This was a great overview of these tools and techniques. Keep them coming!
@b00i00d
@b00i00d 4 года назад
Great vid! Makes you work to get to every last detail and that's the real fun of it!
@dastrn
@dastrn 8 лет назад
I'm really enjoying these videos! Thank you for putting them together. Please keep them coming!
@darshannn10
@darshannn10 2 года назад
the way he says "Press Shift +R and be happy" 😂😂
@abhishekpandey71
@abhishekpandey71 2 года назад
watching this in 2022, awesome... thanks man.
@Tzeny15
@Tzeny15 7 лет назад
Keep these kinds of video coming!
@MrRavenVZ
@MrRavenVZ 8 лет назад
Very good quality content, thank you!
@omri9325
@omri9325 7 лет назад
Can you use Hopper to crack Hopper?
@douwehuysmans5959
@douwehuysmans5959 7 лет назад
Yes
@asjidkalam
@asjidkalam 6 лет назад
Yes indeed.
@4pxris3
@4pxris3 6 лет назад
never thought about that
@lmaoroflcopter
@lmaoroflcopter 6 лет назад
Yes. But it's
@sarahtonin58913
@sarahtonin58913 6 лет назад
_HMMM_
@kvsec1337
@kvsec1337 2 года назад
This is superb😁❤️ thank you very much uncle !
@HoldFastFilms
@HoldFastFilms 8 лет назад
Great video. That was very helpful! Keep it up.
@typedeaf
@typedeaf 5 лет назад
I am really impressed and inspired by the advanced content of the newer videos. The completionist in me has to start with your first videos :D I wonder if you use radare now.
@bartlx
@bartlx 2 года назад
Thanks for making this great tool referencing video
@day1player
@day1player 7 лет назад
This video is utterly hilarious. Thank you very much!
@dodochi79
@dodochi79 2 года назад
Very impressed!
@lovelygirish2242
@lovelygirish2242 Год назад
Beautiful stuff
@TNothingFree
@TNothingFree Год назад
radar seems like windbg, it is great for developers especially C/C++ devs to learn such reversing tools.
@awesomedee5421
@awesomedee5421 2 года назад
Thank you. I am one of those people who thinks Mac sux, so I subscribed because you showed linux.
@nukexplosion6679
@nukexplosion6679 4 года назад
Awesome stuff! Thank you for making these tutorials for us
@first-thoughtgiver-of-will2456
@first-thoughtgiver-of-will2456 3 года назад
Thank you this is very helpful for my research.
@dkdk-pd1vn
@dkdk-pd1vn 7 лет назад
Great stuff but please slow down!
@angeloalonzo5500
@angeloalonzo5500 4 года назад
lol I thought this will be simple
@janardhannarayana
@janardhannarayana 7 лет назад
amazing tutorial
@saeedradmehr1976
@saeedradmehr1976 6 лет назад
I found this one specifically helpful, Thank you!
@linuxguy1199
@linuxguy1199 6 лет назад
BTW there is cutter for radare which is a free graphical frontend for it
@TempestFrenzy
@TempestFrenzy 5 лет назад
I'm confused as to how you determined 0x4006da contained the key at 4:45 in the video. Can anyone explain this part to me please. Thank you in advance and love your videos so far LiveOverflow :)
@elianagriffith9510
@elianagriffith9510 5 лет назад
Because that memory address was very big. 400 bytes. That's a lot of characters to be simply code.
@compilationsmania451
@compilationsmania451 4 года назад
Look at 4:27. The rodata section starts from 4006c0 and it's size is 4e, so it's range is from 4006c0 to 4006c0+4e. When we run till the string comparison and print addresses in the registers, 4006da is the only address which belongs in that range. So, we deduce that it must be the address of the string because we know the string is in rodata section.
@trebelojaques458
@trebelojaques458 4 года назад
"and it makes sense to master them all, *Except Radare, nobody every really masters radare* " lmaoo
@AntonioSouza
@AntonioSouza 7 лет назад
Very, Very 0x1337 times Very cool. Thank's you. You é very good. Sorry my english, I'm brazilian.
@RDesHu-hd2ln
@RDesHu-hd2ln 5 лет назад
Great Video !
@arifbasri4950
@arifbasri4950 4 года назад
Thank you Sir, really helpful
@williamsquires3070
@williamsquires3070 4 года назад
You can also use Ghidra (free) from ghidra-sre.org; You’ll need Java 11 SDK. Ghidra is a disassembler that works on MacOS X and Windows, and should work on any platform that has Java 11 SDK/runtime, though you may have to figure out how to make (or modify) a launcher script for a Linux distro. It can use many of the IDA-Pro scripts from what I’ve been told, though I don’t have IDA-Pro, so I can’t really say (because it’s too expensive.)
@shubhamjagtap1919
@shubhamjagtap1919 2 года назад
thanks buddy
@RoughSubset
@RoughSubset 4 года назад
RU-vid removed episode 0x07 in your playlist :/ Any chance of making it available via other platforms?
@kushansingh6244
@kushansingh6244 4 года назад
Nowadays, in my opinion, best tool out there is Ghidra for Disassembly and Decompilation and its free. What do you think LiveOverflow ?
@dewankpant
@dewankpant 6 лет назад
I have a question when I try the same thing with hopper. I am not able to get those neatly formatted strings with characters, rather what i get in the pseudocode is the locations for those strings. is there any such option that you have enabled?
@DebilNo4Mk1
@DebilNo4Mk1 5 лет назад
6:34 "Affordable" *AFFORDABLE*
@wielkizderzaczhadronowkucy293
@wielkizderzaczhadronowkucy293 5 лет назад
some of those tools cost thousands of dollars (and radare is still better than them)
@meksaldi
@meksaldi 7 лет назад
Awesome content!
@MrJaylassiter
@MrJaylassiter 4 года назад
I learned so much 😎
@rastakiwi3899
@rastakiwi3899 6 лет назад
Hello. I understand why there are blue numbers that can't be traduced to ASCII, but do you know why there are untraductable Hex marked by ^ while some are marked by ? Why isn't written for example? It is confusing :0. Thanks!
@fluzzlesnuff
@fluzzlesnuff Год назад
This probably isn’t useful to you now, but for anyone wondering this in the future: ASCII values 0-31 are ‘control codes’ and can usually be typed with the control key plus a letter or special character. The control key is often represented by a caret (^). So ‘^C’ means control-C, which is ASCII value 3. Vim tries to print unprintable bytes as control codes, so any byte less than 32 will print as a ‘^@‘ or similar. Bytes larger than 127, though, are not in ASCII at all, so they are printed as or whatever hex value. TL;DR: Bytes < 32 are printed as ‘^C’ (control code), bytes > 127 are printed as ‘’ (hex code).
@drwblkfact7286
@drwblkfact7286 3 года назад
Thank u !!!
@alojzybabel4153
@alojzybabel4153 4 года назад
03:15 Is there some way to distinguish user code from those unknown library functions if they were statically linked into the executable and all we know is some random addresses? :q That would save a lot of time when analyzing programs because I would not have to try cracking the code that later tunrs out to be some library code irrelevant to the logic of the program :q
@bmac3933
@bmac3933 4 года назад
Great video :)
@olfmombach260
@olfmombach260 6 лет назад
I just can't get the string from the address like you did at 4:35. When I stop at the breakpoint and look at the registers, they all point at a completely different location (except eip of course) and also don't hold strings. I'm on x86 btw.
@chuchuthegameryt1171
@chuchuthegameryt1171 6 лет назад
Thanks man. Really useful. Debugging got easier for me. Can you please make a video on CHAINED ret2libc attack. I am actually stuck. There are two methods in it : ESP Lifting and FRAME FAKING and I am not able to make either one of them work.
@ПетяТабуреткин-в7т
10:04 N I C E A R R O W S
@anteconfig5391
@anteconfig5391 5 лет назад
how well does objdump show the assembly for the given hexcode. Also does objdump reliably output the proper assembly instructions for non-ELF file formats?
@drwblkfact7286
@drwblkfact7286 3 года назад
Can someone explain why register rsi is important and why it had the string AAAA-Z10N-42-OK in it? Is it common for the rsi register to hold the the comparing string when the function strcmp is called ?
@kosmasraptis8374
@kosmasraptis8374 2 года назад
Usually this happens for no specific reason. The rsi register just seems to be available at that moment so the compiler puts the line there.
@cipher3966
@cipher3966 2 года назад
Most viewed points are where you wrote the commands quickly and in tiny font at the bottom of the screen. Kind of frustrating, often seeing what was typed is impossible
@paired7815
@paired7815 5 лет назад
Hi ...thanks a lot ...very interesting videos ...i am new to this ...do you recommend ghidra instead of learning radare ?
@ryanmccauley211
@ryanmccauley211 4 года назад
Anybody having an issue like me where the .rodata address doesn't match the registers when running, try compiling with -no-pie flag so the address doesn't get randomized
@tanmaybora359
@tanmaybora359 3 года назад
@Ryan Mccauley Thank You So Much!
@plsp3c
@plsp3c 5 лет назад
gr8! :)
@Siik94Skillz
@Siik94Skillz 3 года назад
at 1:47, how do you tell gdb to output exactly that with a variable @ rbp-0x28??? been looking for it everywhere and cant find it...
@caydauden
@caydauden 3 года назад
Question at 4:19, you mentioned main should start at 0x4004d0 and we should be able to find this in the screenshot on the right, but in screenshot on the right, main starts at 0x4005bd? Also, .rodata starts at address 0x4006c0, so we would expect the license string to be at that address, but at 4:45, looks like license string is located at address 0x4006da instead?
@caydauden
@caydauden 3 года назад
I see, the binary code starts at 0x4004d0, which starts with other functions before "main": _start, deregister_tm_clones, register_tm_clones, __do_global_dtors_aux, frame_dummy, and finally "main" starts at 0x4005bd which is within the range (0x4004d0, 0x4004d0 + 0x1e2)
@caydauden
@caydauden 3 года назад
Also see that .rodata has this data, which also includes the license key at address 0x4006da: (gdb) x/10sb 0x4006c0 0x4006c0 : "\001" 0x4006c2 : "\002" 0x4006c4: "Checking License: %s " 0x4006da: "AAAA-Z10N-42-OK" 0x4006ea: "Access Granted!" 0x4006fa: "WRONG!" 0x400701: "Usage: " 0x40070e: "" 0x40070f: ""
@Ms.Robot.
@Ms.Robot. 2 года назад
Sweet❤️❤️
@kishoresuri007
@kishoresuri007 7 лет назад
Hey.. I have an issue with radare2 while trying to rerun the program using ood. tried to edit the ptrace scope but with no use. When i use ood, it reopens the file in read-write mode and tries to attach . "ptrace attach : operation not permitted" this is the error. do u have any idea about this
@douwehuysmans5959
@douwehuysmans5959 7 лет назад
You need root privileges to attach to a running process. Try sudo
@pwn0x80
@pwn0x80 6 лет назад
Wow cool
@sabyabhoi8841
@sabyabhoi8841 5 лет назад
hey bro, like you changed the disassembly flavor in gdb using "set disassembly-flavor intel", can we do something similar in radare2 as well? As I firmly believe that the disassembly shown in gdb is much more easier to understand than the one in radare2
@balb98
@balb98 4 года назад
Sorry, i don't understand why you use `r TEST-KEY` when breaking the strcmp. Can someone explain me that?
@damiancampbell1743
@damiancampbell1743 3 года назад
The 'r' in 'r TEST-KEY' is just a shorten version of 'run TEST-KEY'. It does the same thing.
@manishasinha6694
@manishasinha6694 4 года назад
Great tutorials !
@ExtinityOfficial
@ExtinityOfficial 6 лет назад
Well, time to master Radare then.
@johannbauer2863
@johannbauer2863 5 лет назад
ExtinityOfficial you can also use cutter, which is a gui for radare
@YURIA9802
@YURIA9802 3 месяца назад
GIANT CHARACTERS
@scottbehrens1660
@scottbehrens1660 6 лет назад
Awesome tutorials, I have a question. When I look at the pseudo-code, it's doesn't include the nicely formatted strings like your video shows: nt main(int arg0, int arg1) { var_10 = arg1; if (arg0 == 0x2) { printf(0x4006c4); if (strcmp(*(var_10 + 0x8), 0x4006da) == 0x0) { puts(0x4006ea); } else { puts(0x4006fa); } } else { puts(0x400701); } return 0x0; } Any ideas?
@kevinjohansson3923
@kevinjohansson3923 7 лет назад
Man, why have I just found out about this channel now?
@nickst2797
@nickst2797 6 лет назад
Man, why have I just found out about this channel now?
@ahora1026
@ahora1026 5 лет назад
And one year later, why did I ........
@الْمَذْهَبُالْحَنْبَلِيُّ-ت9ذ
Which song/music are you using in your intro and ending ?
@pauribelles7920
@pauribelles7920 5 лет назад
Why did he choose to look up specifically for the rsi register to find out the string? How can you found out that? (4:45)
@stathisstathopoulos9007
@stathisstathopoulos9007 5 лет назад
I was wondering too, couldn't find any similarities
@pod9594
@pod9594 5 лет назад
.rodata section had 0x4e long contens from 0x4006c0 (4:26). Only rsi register was in that range : 0x4006da (4:45).
@BraveSirSausage
@BraveSirSausage 8 лет назад
using Kali which has Radare2 pre-installed, when i run 'VV' it launches a web server and I get a GUI :( Not as cool as the terminal graph, how do i get rid of it !
@LiveOverflow
@LiveOverflow 8 лет назад
set the environment variable for the web graph to false. I think that helps. [0x100001174]> e graph.web=false
@BraveSirSausage
@BraveSirSausage 8 лет назад
cool thanks ! for anyone else 'e' lists all environment variables.
@ahmedsoliman8007
@ahmedsoliman8007 8 лет назад
please kali is shipped with really old old version of radare2 " always use radare2 from git
@jamespeterson7979
@jamespeterson7979 4 года назад
I tried the: ltrace ./license TEST It does not give me the strcmp command line. But with "objdump -d" i can find the strcmp.plt as i saw in your video, 3:18 objdump also tells me that it must be somehow related to glibc: # 3fd0 Still ltrace doesn't print the strcmp line. Does it have to do with the compiler version? [gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2)]
@jamespeterson7979
@jamespeterson7979 4 года назад
With the file command i found that your ELF is a 'executable' with 'dynamic linked' libraries my ELF was a 'shared object' with 'dynamic linked libraries' i tried compiling it with '-static ' parameter so i got a 'executable' but it was 'statically linked' and got a increased filesize. I don't know how you compiled it, maybe there are special parameter you used? Your's is also half the size on mine. (16kb vs 8kb), i thought maybe it could have something to do with 32 and 64 bit, but your file stated that it is a "ELF 64-bit LSB".
@user-kp5kg5dl8h
@user-kp5kg5dl8h 5 лет назад
Anyone else have issues opening certain manual pages? Digging around Google, I've seen others with this issue, but so far none of the solutions have worked. I've read in one place that it could be a bug?
@damiancampbell1743
@damiancampbell1743 3 года назад
Not sure which programs you're referring to in particular, but I'm willing to bet it's the one's related to C functions, like "man strcmp" and etc. You can install these with "sudo apt-get install manpages-dev" and "sudo apt-get install manpages-posix-dev". They should work now.
@sarafdimi2072
@sarafdimi2072 4 года назад
I have a question: We saw with ltrace what the arguments of strcmp were. If we want to make our program more secure, what would we do? Attach some crypto to it ?
@nukexplosion6679
@nukexplosion6679 4 года назад
Make an algorithm for key validation, which he talks about in the next video.
@doron2402
@doron2402 7 лет назад
What's your opinion about dtrace?
@jorgevarela1725
@jorgevarela1725 4 года назад
Press SHIFT+R and be happy
@jonbikaku6133
@jonbikaku6133 6 лет назад
Been following this channel and have to say, you got some really dope content! One question regarding redare2 while installing on Ubuntu, after doing the setup and running r2, i get an error saying ` r2: error while loading shared libraries: libr_core.so: cannot open shared object file: No such file or directory `. Any idea how to solve ? I looked online and it seems like its not able to get the shared path of the library.
@franciscobahamondes5878
@franciscobahamondes5878 5 лет назад
github.com/radare/radare2/issues/11897
@JOHNSMITH-sj3lg
@JOHNSMITH-sj3lg 3 года назад
Germany?
@TheFinalL
@TheFinalL 7 лет назад
it's almost over 9000
@khennacheaymene1638
@khennacheaymene1638 4 года назад
Zion, 42, rabbit running.... Now u see your self
@webpunisher2954
@webpunisher2954 5 лет назад
I do not understand if the file is a binary where 0 and 1 are??
@nikhilt3755
@nikhilt3755 5 лет назад
what if i strip the symbols and then run strace and ltrace will i get function calls?
@ЕвгенийКвантор
@ЕвгенийКвантор 7 лет назад
OllyDbg more comfortable then Ubuntu tools, i think...
@Matt-ir1ky
@Matt-ir1ky 8 лет назад
Hey. Thank you very much for your tutorials. I have a small issue with R2... I ran through this tutorial a couple nights ago and I was able to recreate everything you did but tonight when I try in R2 to press VV to display the graph, it opens in its webUI and I can't seem to figure out how to change it back. So I hit VV after seeking to the main func but it opens up my chrome explorer and shows me a graph in there instead. I mean its probably a sophisticated feature but I don't want it at this point... Thanks again!
@Matt-ir1ky
@Matt-ir1ky 8 лет назад
Not sure what the deal was. My r2 was acting weird. It wasn't giving me the silly message when you open it and different ouputs for this or that. I deleted my apt version and installed from git and now its working again. Thanks!
6 лет назад
At 9:09 I can't use 'aaa' anymore, so what alternative command should I use? Thank you
@وزيرالفقراء
@وزيرالفقراء 2 года назад
hello bro , tell me please how i can clear memory and register for do fast action and speed cpu for instruction with assembly code ? thank you very much
@osmelfernandezbelen2836
@osmelfernandezbelen2836 3 года назад
Hello friend, good video, I would like to know if you have any program with the one of the vidoe but that works for windows. I am interested in unzipping a firmware made for the msd7816 chip of the mstar company.
@damiancampbell1743
@damiancampbell1743 3 года назад
I personally don't know of any programs like this that work for Windows, but honestly, I think you'd be better off looking into WSL (Windows Subsystem for Linux) or using a VM (Virtual Machine) like Virtual Box or VMware Workstation with Linux VM on it.
@diaahanna8882
@diaahanna8882 5 лет назад
is it possible to find bugs in a compiler genrated code ??
@gustavogonzalez8644
@gustavogonzalez8644 4 года назад
Can RetDec Radare2 decompile a .bin file?
@IgorSantarek
@IgorSantarek 7 лет назад
>db 0x00401410 Cannot place a breakpoint on 0x00401410 unmapped memory. See dbg.bpinmaps - IDK what am I doing wrong. :/
@deamer44
@deamer44 6 лет назад
Can anyone explain to me how he got to the conclusion that jne 0x4000623 goes to location 4005ea for a call??
@b00i00d
@b00i00d 4 года назад
I think if you watched his previous video it would be clearer. Basically the jne jumps to its address if not equal to 2. If it _is_ equal then the code will continue sequentially from that point (i.e. no jump) and 4005ea is the next major instruction (if you skip all the movs and adds)
Далее
In-depth: ELF - The Extensible & Linkable Format
19:02
Просмотров 195 тыс.
GREAT idea for Camping #bushcraft #survival #lifehacks
00:24
Уезжаю в лагерь
17:57
Просмотров 205 тыс.
Reversing and Cracking first simple Program - bin 0x05
9:03
How to Crack Software (Reverse Engineering)
16:16
Просмотров 602 тыс.