this post was submitted on 27 Dec 2025
97 points (97.1% liked)

Ask Lemmy

36215 readers
1411 users here now

A Fediverse community for open-ended, thought provoking questions


Rules: (interactive)


1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can't say something nice, don't say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. Please familiarize yourself with them


2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?


3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.


4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either !asklemmyafterdark@lemmy.world or !asklemmynsfw@lemmynsfw.com. NSFW comments should be restricted to posts tagged [NSFW].


5) This is not a support community.
It is not a place for 'how do I?', type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to Lemmy.world Support or email info@lemmy.world. For other questions check our partnered communities list, or use the search function.


6) No US Politics.
Please don't post about current US Politics. If you need to do this, try !politicaldiscussion@lemmy.world or !askusa@discuss.online


Reminder: The terms of service apply here too.

Partnered Communities:

Tech Support

No Stupid Questions

You Should Know

Reddit

Jokes

Ask Ouija


Logo design credit goes to: tubbadu


founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] datavoid@sh.itjust.works 8 points 1 day ago (1 children)

What exactly does patching a program on the binary level entail?

[–] Treczoks@lemmy.world 4 points 20 hours ago (1 children)

Well, a software (I.e. a. exe file) is a long list of numbers. Some are commands like "do something when the user clicks there", some are data, like text on a button.

If you are very familiar with those intricacies, you can change a few bytes here or there to change what the program does.

[–] datavoid@sh.itjust.works 2 points 15 hours ago (1 children)

I'm more curious as to the process than the concept I guess. Open your exe in notepad, hold alt, and mash the numpad?

[–] mdk@feddit.org 3 points 6 hours ago* (last edited 6 hours ago) (1 children)

This all is under the umbrella of reverse engineering or software cracking. This is an old e-magazine (https://www.exploit-db.com/ezines/kr5hou2zh4qtebqk.onion/ARTeam/ARTeam.Ezine.Number2.pdf) showing a rather easy way to add a menu to notepad (Windows XP/7/10) to add functionality. This is in chapter 1. In this case only small modifications are done in the original software (resources and loading a dll), but the changes could have been done without a dll library using code caves or a new section instead.

Reverse engineering is a very large area containing many topics, depending on the software, the methods, the hardware, and even the operating systems. So you need to learn a lot. It starts from crackmes, patching, debugging and reading assembler code. Then it goes to anti debugging techniques, manual unpacking of protections/packers, understanding protocols and file formats, keygenning, custom authentication servers, inline patching, copy protections (disc based and online) hypervisors and drivers and much much more.

[–] datavoid@sh.itjust.works 1 points 49 minutes ago* (last edited 45 minutes ago)

That's for sharing, now im wondering why my highly relevant degree never bothered to discuss reverse engineering!