How I Wrote a Script that Cracks Code Automatically

Ғылым және технология

Reverse engineering is a great way to learn about how computers work. Whether its malware analysis or just solving some problems, reverse engineering is a fun way to enhance your knowledge of computers. In today's video, we reverse engineer a problem from crackmes.one and use an interesting technique.
🏫 COURSES 🏫 Learn to code in C at lowlevel.academy
🛒 GREAT BOOKS FOR THE LOWEST LEVEL🛒
Blue Fox: Arm Assembly Internals and Reverse Engineering: amzn.to/4394t87
Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation : amzn.to/3C1z4sk
Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software : amzn.to/3C1daFy
The Ghidra Book: The Definitive Guide: amzn.to/3WC2Vkg
🔥🔥🔥 SOCIALS 🔥🔥🔥
Low Level Merch!: lowlevel.store
Follow me on Twitter: / lowleveltweets
Follow me on Twitch: / lowlevellearning
Join me on Discord!: / discord

Пікірлер: 222

  • @afra1d828
    @afra1d8283 ай бұрын

    nice

  • @catatrophicalist

    @catatrophicalist

    3 ай бұрын

    nice

  • @cslearn3044

    @cslearn3044

    3 ай бұрын

    nice

  • @jommeez

    @jommeez

    3 ай бұрын

    nice

  • @zirgaoec3784

    @zirgaoec3784

    3 ай бұрын

    nice

  • @grandmakisses9973

    @grandmakisses9973

    3 ай бұрын

    nice

  • @mouradlaraba
    @mouradlaraba3 ай бұрын

    even if i didn't understand anything, all i could to say is that the humanity is still good that person like you still exist, thanks a lot

  • @rawallon

    @rawallon

    2 ай бұрын

    idk man, he's writing P*thon

  • @n0o0b090lv
    @n0o0b090lv3 ай бұрын

    This ain't low level chanel this is high level chanel I learn a lot Also thx LLL

  • @basedfacistman

    @basedfacistman

    3 ай бұрын

    chanal

  • @n0o0b090lv

    @n0o0b090lv

    3 ай бұрын

    @@basedfacistman you see... FAST LOOK AN ALIEN Nah just a bird, oh look chanel. I wonder what happened

  • @vnc.t

    @vnc.t

    3 ай бұрын

    *channel

  • @n0o0b090lv

    @n0o0b090lv

    3 ай бұрын

    @@vnc.t the n went on vacation

  • @ProfessorThock

    @ProfessorThock

    3 ай бұрын

    LLL feels more Supreme than Chanel

  • @cyberpunk1618
    @cyberpunk16183 ай бұрын

    2:55 in and already 100% worth watching. Knowing I can use Ghidra without migraines is such a performance booster.

  • @coffeegonewrong
    @coffeegonewrong3 ай бұрын

    Thanks for increasing the font size LLL 📱

  • @sarimbinwaseem
    @sarimbinwaseem3 ай бұрын

    Whole thing went above my head but I still watched... Soon it will go in my head... IDK when

  • @iwakeupsad

    @iwakeupsad

    3 ай бұрын

    Totally. So often for me, understanding comes through the side door unannounced.

  • @sarimbinwaseem

    @sarimbinwaseem

    3 ай бұрын

    @@iwakeupsad haha.. yeah.. unexpectedly..

  • @EmberDRG
    @EmberDRG3 ай бұрын

    thank you for all these vids, they helped me with the basics of reverse engineering. I'm currently working on reverse engineering a ps3 game and it's been incredibly fun so far

  • @Damqq
    @Damqq3 ай бұрын

    Honestly this is pretty interesting, I NEED MORE OF such content PLEASE.

  • @titaniumtomato7247
    @titaniumtomato72473 ай бұрын

    8:40 I am not a fan when people make negative comments about someone's use of a tool to complete a task. Programming doesn't need more elitism or stupid battles.

  • @arjix8738

    @arjix8738

    3 ай бұрын

    I read your comment before watching that part and I totally got the wrong idea lol Thought you meant that no-code "hackers" should not be looked down upon. To which I disagree. But by "tool" you were referring to the choice of language, to which I agree, hacking is a mess either way, the choice of language should not matter as long as it does the job.

  • @stefanalecu9532

    @stefanalecu9532

    3 ай бұрын

    I just assumed it's a running joke within the LLL community (especially since he's known for being a C shill, for obvious reasons)

  • @driden1987
    @driden19873 ай бұрын

    Looks like a lot of fun once you understand what's going on and know ways you could tackle the proble

  • @MyCodingDiarie
    @MyCodingDiarie3 ай бұрын

    I've never commented on a video before, but I had to for this one. It's that good!

  • @AgentXegy
    @AgentXegy3 ай бұрын

    bro I could watch this every day that was awesome

  • @MyCodingDiarie
    @MyCodingDiarie3 ай бұрын

    Great video! Very informative and well explained.

  • @IsaacNewTom22
    @IsaacNewTom223 ай бұрын

    Thank you, LLL, the font size saved me :)

  • @patriciopage6579
    @patriciopage65793 ай бұрын

    How is it only now I find this gem of a channel? Dang youtube

  • @m1geo
    @m1geo3 ай бұрын

    Nicely done, Mr LLL.

  • @alh-xj6gt
    @alh-xj6gt3 ай бұрын

    I got into it back in the day because I bought a amiga game, it didn't run and the shop refused to refund. Got in touch with the local computer hobbies group, they knew about the problem with the game but still took the time to introduced me to 68k debugging and disassembly. Got the game running. Group introduced me to sas/c compiler. The rest is history. Also did step through every software I had to be fascinated and also to understand how it worked. 68k simpler times ... It is a valuable skill to have.

  • @HypeLobbiesHD
    @HypeLobbiesHDАй бұрын

    I love your merch, I have the mousepad and the t-shirt, do you have any other plans for more reverse engineering or low level related merch? I would totally buy more

  • @P-G-77
    @P-G-77Ай бұрын

    Awesome work !

  • @driden1987
    @driden19873 ай бұрын

    Thanks for zooming in!

  • @YourPocketTiger
    @YourPocketTiger3 ай бұрын

    I love this channel.

  • @quietusplus1221
    @quietusplus12212 күн бұрын

    I have some experience with coding. The further this went on my head started spinning though. This is on another level, quite interesting ^^

  • @EnderMega
    @EnderMega3 ай бұрын

    Thats how you know he is a _real manly_ C/C++ programmer, he apologies for using Python, and as a fellow C/C++ programmer I forgive you. Jokes aside, good video!!!

  • @iagosrodrigues
    @iagosrodriguesАй бұрын

    I loved the video; I didn't understand anything, but it was an excellent video.

  • @lazzalicious6220
    @lazzalicious62203 ай бұрын

    The man, The myth, The legend. Found you again

  • @adershvarshnei5198
    @adershvarshnei51983 ай бұрын

    thanks for increasing the size mr lll :)

  • @AgentKent
    @AgentKent3 ай бұрын

    Thanks LLL

  • @Djay0Epizode
    @Djay0Epizode3 ай бұрын

    Hey , very nice intro to angr, i have a bit that i didn’t get is why the first try with the 32.8 bit key space reached in the simulator the last address ? That for me doesn’t yet click

  • @kcnl2522
    @kcnl25223 ай бұрын

    Terminal looks neat, what are you using?

  • @baranjan6969
    @baranjan69693 ай бұрын

    Ngl I am pretty new to low level stuff but I recommend running it a bit first before even running strings

  • @asseenontv247
    @asseenontv2473 ай бұрын

    Do you have any recommendations on books that are useful desk references for this stuff?

  • @gringle8578
    @gringle85783 ай бұрын

    Cool, next do Denuvo. Let's see how good you are!

  • @zxcvb_bvcxz
    @zxcvb_bvcxz3 ай бұрын

    So *why* does angr have issues with stdin and how were you able to work out the fix?

  • @Eugensson

    @Eugensson

    3 ай бұрын

    Why - just speculating here, because cpp streams are weird. How - he has emulated the result of the text input himself, he put the string pointer on the stack (this is exactly what that cpp function does after fetching the text), and he has skipped the stdin function.

  • @saulgoodman6710
    @saulgoodman67103 ай бұрын

    Great video, I'm new to this stuff. couple of doubts, when giving the address of the good and avoid case, why is only 4byte address is provided instead of entire address from memory map? secondly, how the hell do you learn all there stuff? since there are multiple libraries/tools.concepts used just for one problem. Impressive btw!

  • @Ni7ram
    @Ni7ram3 ай бұрын

    yes, yes.. of course i understand all this

  • @terry-
    @terry-Ай бұрын

    Great!

  • @IZ4HDM_Chris
    @IZ4HDM_Chris2 ай бұрын

    Thanks for the Font LLL!!!!

  • @icankickflipok
    @icankickflipok3 ай бұрын

    Thanks LLL.

  • @sassywoocooo
    @sassywoocooo3 ай бұрын

    we finally got ghidra in dark mode

  • @Subcode
    @Subcode3 ай бұрын

    Can you make a video on how this would work when an application also has a DLL etc? ive tried this once on an application with a DLL and it got very confusing, really couldnt figure any of it out.

  • @Armstrong1781
    @Armstrong17813 ай бұрын

    you are the best

  • @logiciananimal
    @logiciananimal3 ай бұрын

    Angr looks really neat. I suppose in some cases one runs into formal undecidability. How does it "cheat'"?

  • @yahsprut
    @yahsprut2 ай бұрын

    what if the binary was built in something else like Rust for example? whould then Ghidra reverse engineer it to C or to Rust?

  • @outtakontroll3334
    @outtakontroll33343 ай бұрын

    this is some dark art shit- only able to follow a little of it, but interesting

  • @makebreakrepeat
    @makebreakrepeat3 ай бұрын

    Dark mode, let's go!

  • @luketurner314
    @luketurner3143 ай бұрын

    For anyone here new to Python, if __ name __ == "__main__": main() prevents the main function from running when you import the file/script somewhere else. If you call a function after defining it without this check, it will run even if the file is imported, which you usually don't want Edit: had to insert spaces between the underscores and name because YT thought I wanted it italic. In actual code, it would be 2 underscores, name, 2 underscores (no spaces between); sometimes read as "dunder name" (concatenating/abbreviating "double underscore" to "dunder")

  • @cherubin7th
    @cherubin7th3 ай бұрын

    I am looking forward, when we can take a binary and automatically turn it with AI in beautiful source code with comments etc.

  • @Codingwannabe-cw1yd
    @Codingwannabe-cw1yd3 ай бұрын

    Thx lll for zooming in

  • @RigoVids
    @RigoVids2 ай бұрын

    Thanks tripple el

  • @hoteny
    @hoteny3 ай бұрын

    cool. now how do i guess what a weird 8 byte value does?

  • @hakushakudoa283
    @hakushakudoa283Ай бұрын

    Thanks triple o

  • @z8den
    @z8den3 ай бұрын

    why on earth do you not have the link to the cracksme in the description man

  • @maz5232
    @maz5232Ай бұрын

    Hi please make more

  • @dtikvxcdgjbv7975
    @dtikvxcdgjbv79753 ай бұрын

    You unbaked the bread!

  • @GameBacardi
    @GameBacardi3 ай бұрын

    ...I need practise "hello world!" again, 60th time

  • @llmnr3xp0sed
    @llmnr3xp0sed3 ай бұрын

    I'm curious how angr works with ASLR enabled.

  • @nomio_o

    @nomio_o

    3 ай бұрын

    When running with correct permissions you can choose to disable ASLR for a spawned process which is likely what angr does. GDB uses the "personality" syscall to do this with the flag ADDR_NO_RANDOMIZE.

  • @llmnr3xp0sed

    @llmnr3xp0sed

    3 ай бұрын

    @@nomio_o ah, good to know.

  • @RandomGeometryDashStuff
    @RandomGeometryDashStuff3 ай бұрын

    do you use computer with arm cpu?

  • @monad_tcp
    @monad_tcp3 ай бұрын

    Is scanf still using self modifying code or something ?

  • @secret_7025
    @secret_70253 ай бұрын

    Low level programming is the hardest my bro ReSearch about it.

  • @JM-is1vf
    @JM-is1vf3 ай бұрын

    Thanks for your channel. I would love it even more without the background music.

  • @boenrobot
    @boenrobot3 ай бұрын

    14:37 - Hold up. Where did these magic hex numbers come from? Why those offsets? Can they be determined in a cleaner way, rather than hard coded like that?

  • @user-bp6xz6ll9t

    @user-bp6xz6ll9t

    6 күн бұрын

    Did you find out this part? also need help here!

  • @theman1860

    @theman1860

    Күн бұрын

    I noticed that too. Didn't he say -0x34?

  • @SadKris
    @SadKris3 ай бұрын

    the a/v desync lmao

  • @catatrophicalist
    @catatrophicalist3 ай бұрын

    do you prefer intel or at&t syntax?

  • @grandmakisses9973

    @grandmakisses9973

    3 ай бұрын

    intel of course

  • @godnyx117

    @godnyx117

    3 ай бұрын

    @@grandmakisses9973 Based opinion

  • @atijohn8135

    @atijohn8135

    3 ай бұрын

    intel addressing syntax and at&t argument order ("mov rax (to) rcx" makes more sense than "mov (to) rcx: rax")

  • @godnyx117

    @godnyx117

    3 ай бұрын

    @@atijohn8135 The thing is, binary instructions follow the intel syntax. So, especially for those who create compilers, the AT&T syntax is confusing, even tho it makes more sense...

  • @flyinginthedark6188

    @flyinginthedark6188

    3 ай бұрын

    AArch64

  • @user-bp6xz6ll9t
    @user-bp6xz6ll9t6 күн бұрын

    why the -0x58? where does it come from?

  • @hyperplano
    @hyperplano3 ай бұрын

    Waiting for LLL x LaurieWired video :)

  • @nsg650
    @nsg6503 ай бұрын

    Wait are you a cuber as well?

  • @ErikBongers
    @ErikBongers3 ай бұрын

    Can you crack how to exit vim?

  • @shteatinggrin
    @shteatinggrin3 ай бұрын

    It’s so weird knowing that the NSA has a program named after the Godzilla monster

  • @VivekYadav-ds8oz

    @VivekYadav-ds8oz

    3 ай бұрын

    Remember that it's still nerds inside NSA that are responsible for creating and maintaining this. If they can get away with it, they will.

  • @shteatinggrin

    @shteatinggrin

    3 ай бұрын

    @@VivekYadav-ds8oz Ofc, every major tech system has been built up and maintained by nerds. It’s still pretty wild regardless

  • @blehbleh9283
    @blehbleh92833 ай бұрын

    Symbolic Execution 🔥🔥

  • @ffeliziani
    @ffeliziani3 ай бұрын

    Wait, how are you running arm code on your machine?

  • @tronosgamingwizard

    @tronosgamingwizard

    3 ай бұрын

    perhaps a VM

  • @ffeliziani

    @ffeliziani

    3 ай бұрын

    @@tronosgamingwizard does ghidra run on ARM? I guess with the magic of editing (or ssh) he could be on different machines

  • @tronosgamingwizard

    @tronosgamingwizard

    3 ай бұрын

    @@ffeliziani I'm unable to answer this one, mate.

  • @ffeliziani

    @ffeliziani

    3 ай бұрын

    Sorry yeah the Q should have been for @lowlevellearning

  • @VINICIUSMOURACARDOSO
    @VINICIUSMOURACARDOSOАй бұрын

    how can I change ghidra to dark mode?

  • @braveitor
    @braveitor3 ай бұрын

    When machines take over us, I hope you speak for us all as you know their native language. Interesting to watch, don't hava a clue about how anyone can learn those skills... :D

  • @vsevolodalipov4375
    @vsevolodalipov43753 ай бұрын

    May be a dumb question, but why not brute force it instead?

  • @rudymoralesjr
    @rudymoralesjr21 күн бұрын

    I need to learn how to do this proficiently so I can hack car ECUs for tuning. They made it so hard to tune cars these days...

  • @MenkoDany
    @MenkoDany3 ай бұрын

    There's a piece of abandoned niche commercial software which I'd love to crack for archival purposes. Will this work on it? It's written in Delphi and it can be activated offline even though there was an internet activation option (which obviously doesn't work anymore). There is version 3.x which is still being sold even though there were no updates for 8 years or any activity from the dev whatsoever. Thing is, version 3.x is a joke. Well, 2.x was an actual joke, not worth a penny, and 1.x is the legendary version which I'd like to crack. I believe it would still be used today if the dev released a 64bit version like he promised :( The released version crashes way too often because of the ram limitation.

  • @rallokkcaz
    @rallokkcaz3 ай бұрын

    LFG!!!! LLG GANG GANG!

  • @veritas7010
    @veritas70103 ай бұрын

    Now crackmes are cool but whos gonna actually have good info on compiling osx/xnu kernel, modifying kernel/writing a kernel driver to disable debugging detection, bypass address randomization. What for? Oh yeah, just to bypass debug detection and also have a way to dump consistent traces. And just to begin on actually getting progress with 20mb+ binaries

  • @a_f_a_b
    @a_f_a_b3 ай бұрын

    Man you don't have to apologize for python. You don't have to apologize for anything!^_^

  • @UnrealEngine_Master
    @UnrealEngine_Master3 ай бұрын

    nothing is clear, but very interesting 🤠

  • @wrathofainz
    @wrathofainz3 ай бұрын

    Someone should write an ANGR-y UI for gui people

  • @danielrubin3649
    @danielrubin36493 ай бұрын

    Tack 3xL

  • @almightyhydra
    @almightyhydra3 ай бұрын

    Meh, automating the reverse engineering takes the fun out of the problem :p if each of those functions was only checking one of the bytes, you could solve each fairly simply, I'd imagine.

  • @semitangent
    @semitangent3 ай бұрын

    Thanks triple L - in the chat!

  • @katchen2626
    @katchen26263 ай бұрын

    what does SAT mean?

  • @LowLevelLearning

    @LowLevelLearning

    3 ай бұрын

    satisfiability solver

  • @AndrewOverthrow
    @AndrewOverthrow3 ай бұрын

    Thanx Triple L

  • @billy-cg1qq
    @billy-cg1qq3 ай бұрын

    That angr math solver didn't make any sense lol

  • @yurilsaps
    @yurilsapsАй бұрын

    I didn’t like that was necessary to use angr to solve the challenge

  • @konfushon
    @konfushon3 ай бұрын

    W in the sHaT!

  • @grandmakisses9973
    @grandmakisses99733 ай бұрын

    ghidra???? why dont you use GDB like cool people do

  • @dtikvxcdgjbv7975
    @dtikvxcdgjbv79753 ай бұрын

    The magic starts at 15:44 😃

  • @SuperKingtofu
    @SuperKingtofu3 ай бұрын

    Thanks triple L!

  • @spacebunsarah
    @spacebunsarah2 ай бұрын

    Thanks LLL. Still needs to be bigger for my blind ass 😂

  • @christianremboldt1557
    @christianremboldt15573 ай бұрын

    i love you

  • @christianremboldt1557

    @christianremboldt1557

    3 ай бұрын

    Context: I am interested in low level coding and cyber security. I've learned to compute RSA with a calculator and I am learning to use ASM and reverse enineering. You are on a level I want to get to. And I love learning from your Video. I started studying Computer Science and I'm working at an IT job. The IT Job doesn't really teach me about the low level stuff and the university only teaches computer architecture, some algorithms and high level programming (and C). But you can teach me what I ACTUALLY want to learn

  • @mail2toan
    @mail2toan3 ай бұрын

    I can't focus beyond those empty boxes ... Ugh 😅

  • @danielvalle8875
    @danielvalle88753 ай бұрын

    I heard they got raided by Jason Statham

  • @juststudying1019
    @juststudying10193 ай бұрын

    a prerequisite for this video is ReactJS

  • @LowLevelLearning

    @LowLevelLearning

    3 ай бұрын

    Literally no lol

  • @juststudying1019

    @juststudying1019

    3 ай бұрын

    😂😂😂😂@@LowLevelLearning

  • @tablettablete186

    @tablettablete186

    3 ай бұрын

    ​@@LowLevelLearningTrue, it is actually VueJS! 😂

  • @rdn9700
    @rdn97003 ай бұрын

    Don't apologize for writing Python. It's a great language.

  • @Scriabinfan593
    @Scriabinfan5933 ай бұрын

    Thanks triple L

  • @EmperorRobin
    @EmperorRobin3 ай бұрын

    Now that LowLevelLearning uses python in his videos should the channel be renamed to HighLevelLearning? That does sound nice though, JK.

  • @TheHackysack
    @TheHackysack3 ай бұрын

    omg whats with the empty boxes lol

  • @LowLevelLearning

    @LowLevelLearning

    3 ай бұрын

    IM JUST MOVING

Келесі