![]() To find a pointer you do much like you would to find a cheat, indeed you will probably have to find a cheat several times.ĭo a classic infinite ammo one, and we will assume it has no fancy mirrors, encryption, checksums, duplicates, multi location, register held values or other anti cheat/cheat prevention/code based frustration you might encounter. It can also mean your data you wish to cheat with is not in the same place, that your injected code might not be in the same place and more besides. If you jumble this up (easy enough to do if you build your program with it in mind) randomly then the exploits work less of the time if they can't rely on something being somewhere in memory. Here it was noted that a lot of exploits (and cheats but nobody really cares about that) relied upon having things land in predictable locations in memory. It is a fairly weak security feature but is a thing to tackle. There is also something called ASLR, address space layout randomisation. Likewise if a piece of code fails to release memory after it is done, or continues to add and add and add to the memory it sections off you get a memory leak but that is not really necessary to contemplate too much right now other than to say a game might release code from memory it is not using at that point in time and thus mean your cheat does nothing as it is literally not there in memory to do anything with (you get a minor variation with older consoles as well where a cheat might work in game but crash when it is booting up because the cheat engine does not care but the game does). If there is more on the end then if the next bit of code is directed to be stored after it then having addition items means it might be shuffled forward between boots or that part of the game being loaded. Or if you prefer a game might have said you only have 50 inventory slots because it had assigned only the space necessary for it, today a game can save effectively infinite slots by just adding more on to the end. You also have the option to have tables increase infinitely (or until you run out of memory) which also necessitates pointers. In newer code/languages you have the option to run all sorts of bits of code in different orders, and have the code handle noting where things are in memory rather than typically having them baked into the code. For memory based stuff, at least as far as cheats were concerned, they were rare and everything would be in the same place boot after boot after boot with no scope for any change. ![]() In old school games (anything that ran in REAL mode on X86 or anything 16 bit or older, though it took a long time for it to get phased out - 95% of the time this works just fine on the DS for example) you might have encountered a pointer mainly only in dealing with text and the like, or as a jump in the code. I will note it is a valid thing to do in programming to have multiple pointers nested, not that it really matters for the would be cheat maker if it is a valid coding reason, the dev having a good time or just a frustration to would be cheat makers/cheat users as it is still the same problem to solve. ![]() indeed stacking 20 of them up with a few other things is a common question when they teach new programmers to make sure they truly get the idea but I will hold off there for a moment. You can have a pointer to a pointer to a pointer. ![]() The pointer literally pointing the way to said data or part of the code. Anyway pointers are a concept in programming that allow you to note where something else is in a program/memory.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |