Stop using these wrong.
4:37
7 ай бұрын
How games fake smooth graphics
3:17
How does a compiler work?
3:43
Жыл бұрын
Hacking like it's the 90's
20:11
Жыл бұрын
Why C++?
4:41
Жыл бұрын
Пікірлер
@ahmedmani1051
@ahmedmani1051 5 сағат бұрын
great content educative and entertaining, learned a lot about code injection, been using it a lot with frida on Android but never really took the time to look under the hood, thanks for the insights
@ColinRichardson
@ColinRichardson 7 сағат бұрын
Makes me laugh when people call C a low level language.. I mean, it relatively *is* nowadays, but only if you are thinking relatively.
@RusticaBeachHouse-TortugaPrope
@RusticaBeachHouse-TortugaPrope 23 сағат бұрын
the hand gestures are way too fast and your avatar is in the middle of the screen which adds no value, please edit that out to make your video more effective.
@mho...
@mho... Күн бұрын
im soooo glad i kept all these "no-cd crack's" from back in the days! alll the old games are basically impossible install&play anymore without using "illegal" patches, wich is insane & these companies want us to buy them again as digital copies these days......
@Xitrial
@Xitrial 2 күн бұрын
Some installers use Lua, so using cheat engine and searching the string of the failed code or check, the searching the memory around it will usually lead you to the check in Lua. Then you either modify the Lua or get the requirement (in my case was a file with a specific crc32)
@cheaterman49
@cheaterman49 2 күн бұрын
Good answer - do it using the tool you're proficient with, and if it can also teach a few things, why the heck not. Your autorelease container was neat, if a bit verbose hehe (but this is C++ after all) - and just as you said, in Python you'd pretty much just call the same APIs either fully runtime with ctypes, either making is faster (and spicier hehe) with cffi or Cython.
@sadunozer2241
@sadunozer2241 3 күн бұрын
I think the question is understood by understanding utf-8. The problems we solve are the problems we invented for absolutely no reason. Which is why the wise man in the video uses clion, it deals with similar problems absolutely amazingly
@junaid-vc3js
@junaid-vc3js 4 күн бұрын
Nice tips-
@nathantron
@nathantron 4 күн бұрын
Do you have a github where you are tracking all these changes in your project?
@nathanbaggs
@nathanbaggs 4 күн бұрын
github.com/nathan-baggs/blind_io - I try and update it each week after the livestream
@nathantron
@nathantron 3 күн бұрын
@@nathanbaggs amazing. Thank you. By the way, you mentioned making this interface easy for use in other projects, I thought of a follow-up series you could do to do just that. I've always been intrigued how emulators have save states for programs. What if you could use your API to grab "save states" of running programs, albeit simpler ones, and restore them on command. Lol, imagine running the old Sim City 3000 PC game with save states, or something like minesweeper. 😹
@Putrid186
@Putrid186 5 күн бұрын
so... knowing as little as i do... is this (06:00) what we would consider to be concealment by obfuscation? I mean, it seems like it's just a bunch of spaghetti code with the sole purpose of hiding a super simple algorithm
@jonweinraub
@jonweinraub 5 күн бұрын
Python is hot garbage. For a shit language that was invented before most of its end users were born it’s weird how colleges teach computer science in it. I had to make my own vector, list, iterator and so on in data structures. In C++ of course. I think it was a mistake to step away from that. Why not just use QBasic 😂
@xbinxpurp6118
@xbinxpurp6118 5 күн бұрын
I was curious if you possibly could lead me in the right direction, i am trying to modify a dx9 game or create a trainer to enable wireframe. any ideas? ++ghidra can load the exe and shows me alot of info and some d3d functions. im just not sure where i should look. there was a trainer made that had this feature but im unable to locate it anymore as the links are dead any help is appreciated! love your videos you have been one of my new subscribers!
@KX36
@KX36 5 күн бұрын
you're quickly becoming my favourite code youtuber. If only you didn't use Allman braces.
@serenneji9898
@serenneji9898 6 күн бұрын
Very nice, I like so much your video💪
@madamsmith9175
@madamsmith9175 6 күн бұрын
Camera is a bit blurry on a 4k monitor
@nathanbaggs
@nathanbaggs 6 күн бұрын
It’s cut down from a livestream, so maybe that’s why?
@madamsmith9175
@madamsmith9175 6 күн бұрын
@@nathanbaggs ok cool no worries greate job of explaining things as well do you have github
@bolter99
@bolter99 4 күн бұрын
Its a tad blurry on 1080p lol
@madamsmith9175
@madamsmith9175 3 күн бұрын
@@nathanbaggs all good great learning from you
@tomysshadow
@tomysshadow 6 күн бұрын
If you just want an existing tool to view process memory without attaching as a debugger, HxD has a built in option to view the memory of a process. Of course, it's still valuable to understand how it works under the hood. Something to bear in mind when doing this: it's a good idea to suspend the process first before attempting to read or write memory from it, because otherwise you open yourself up to race conditions. The process could easily decide to allocate some more virtual memory while you are in the middle of your VirtualQueryEx loop, and if it does you'll end up with inconsistent information in your resulting table, from multiple different points in time. Similarly if you decide to read any of that memory with ReadProcessMemory, you could end up with race conditions because it actually changes the permissions on the section temporarily in some scenarios (there is an Old New Thing blog on this) and if the memory is written to by the process mid-reading, you could end up with a block of data where the bytes on the end are more recent than the bytes at the beginning. In a debugger this is a non-issue because the process is always suspended (by the Windows Debugger API) while you are using the debugger interface, but in this demo you are not attached as a debugger so race conditions are likely. Suspending a process is itself tricky: you can do it with Toolhelp Snapshots to get a list of the process threads and then calling SuspendThread on each thread, but to do it safely you'll need more than one snapshot. This is because a snapshot is, well, a snapshot in time and can be assumed out of date as soon as you receive it - once again, there is nothing preventing the process from starting a new thread while you are in the midst of suspending the others. So basically, you need to suspend all the threads with SuspendThread (allowing this operation to fail, because that thread might've died before you got a chance to suspend it,) then take another snapshot to confirm there are no new threads, and do that on repeat until you can confirm every thread is suspended. This is slow because there is no way to get a snapshot of just the one process and need to loop every thread on the system every time, which is a lot of memory to copy, so doing this outside of a debugger will take several milliseconds, at least 5 ms or so in my testing. Since Windows XP there is also NtSuspendProcess which does exactly this but much faster, which you can use at your own risk since it's not officially documented. It can also be done very slightly faster than Toolhelp Snapshots (though still slower than NtSuspendProcess) with the semi-documented NtQueryProcessInformation, though it is significantly more complicated to use - if you intend to use it be aware that the struct this returns changed in Windows XP, and prior versions return a different struct, though in current Windows it has remained the same since XP. So, you should at a bare minimum do a version check before using NtQueryProcessInformation
@nathanbaggs
@nathanbaggs 6 күн бұрын
Thanks for the in depth comments. You are right all this is inherently racey and we can only mitigate the risk of something going bang. Future stream/video we will look at suspending threads, will probably go down the snapshot + SuspendThread route
@iwasinnamuknow
@iwasinnamuknow 6 күн бұрын
Hacking away trying to improve my 2d renderer, how about a nice break and watch some more C++ :)
@nathanbaggs
@nathanbaggs 6 күн бұрын
Good luck!
@TU7OV
@TU7OV 6 күн бұрын
10% coding 90% c++ boilerplate
@rnts08
@rnts08 6 күн бұрын
That's all c++ for ya. Great language.
@nathanbaggs
@nathanbaggs 6 күн бұрын
That’s software engineering (:
@sonarun
@sonarun 6 күн бұрын
I just know that this video will be valuable for anyone who is interested in addressing memory and finding more information about the windows api. Thank you for making these kinds of videos, especially since they won’t attract a more mainstream audience.
@Oddsfeline
@Oddsfeline 6 күн бұрын
I don't think I will ever learn enough to understand what you're saying, but that's also the reason it's so fascinating. People like you may as well be wizards to me
@nathanbaggs
@nathanbaggs 6 күн бұрын
Just takes time and practice, anything is learnable
@sinus4784
@sinus4784 6 күн бұрын
wowza
@mrboblox4444
@mrboblox4444 6 күн бұрын
Hello Good Sirs And Madams :D
@moversti92
@moversti92 6 күн бұрын
And enby pals
@pancakemeow
@pancakemeow 5 күн бұрын
Boblox 🥰
@mrboblox4444
@mrboblox4444 5 күн бұрын
@@pancakemeow HELLO GREATEST SIR MR PANCAKEWITHPOTATO :D
@nathanbaggs
@nathanbaggs 6 күн бұрын
Become a member to get early access to videos (and to previous livestreams in full) - kzbin.info/door/QvW_89l7f-hCMP1pzGm4xwjoin
@GaneicMehiro
@GaneicMehiro 8 күн бұрын
I remember a similar game installer with just numbers where i just once input random numbers three times and managed to install. Good old games