Just thought I'd throw a terminology nazi on you folks.
An address is an absolute location in memory. An offset is a displacement from an absolute address.
Just sayin'.
Just thought I'd throw a terminology nazi on you folks.
An address is an absolute location in memory. An offset is a displacement from an absolute address.
Just sayin'.
and where did such infraction occur at :P
And an offset from zero is effectively an absolute address.
It's not about how you express your addresses/offsets in your code, it's about the semantics of the terms. It's simply the fact that absolute addresses CAN be expressed as offsets. You were implying that the two terms are mutually exclusive, when they are not. Stop trying to troll, you're bad at it, and in this case you're wrong anyway.
Last edited by Cypher; 04-28-2011 at 08:28 AM.
"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." - Martin Golding
"I cried a little earlier when I had to poop" - Sku
If you do not know the difference between an address and an offset, you should not be snooping in the dump anyways nor on this forum section. Thats right all you noobs (that like to message me) reading this thread to figure it out! Go away and read a few books!
Hi! My name is Devon and I’m an alcoholic. Moving on…
https://www.ownedcore.com/forums/world-of-warcraft/world-of-warcraft-bots-programs/wow-memory-editing/319172-guide-how-make-wow-bot-complete-newbs.html
And what about 0x0 (as you call it address) being just an offset into your thread's memory?
interesting thread...
So what determines where 'absolute 0' starts from? Is it 0x0? Or the image base?
Also; is an offset of 0x0 from 0x0 still an offset? Or an address?
MY MIND HAS BEEN BLOWN
I suppose some clarification is needed....
What constitutes an absolute address obviously depends on your viewpoint. From an application point of view, an address is the image base plus an offset into the virtual memory. From an OS point of view, that is an offset (depending on its implementation...obviously). I think it's safe to say that the development going on in this forum does not go OS-level, so for all practical purposes, the result of image base plus offset might as well be an absolute address here, and is what I'm going to assume in the rest of this post.
The resulting value, yes. The act of saying 0x0 + <something>, no. That's offsetting, and <something> is the offset, which is what I'm getting at. In the end, a value is not an offset unless it's used as the offset in an offsetting expression...And an offset from zero is effectively an absolute address.
I don't think I said it wasn't. 0x0 alone is as much an absolute address as 0xffffffff is.Sooooo.... 0x0 is NOT an absolute address?
They can be expressed as the result of a base plus an offset, yes, or simply a full, absolute value. Just taking the offset part of a base + offset expression and calling it both an absolute address and an offset is not valid. The moment you're using it as an absolute address, it no longer takes part in an offsetting expression, and thus...is not an offset. So yes, they are very much mutually exclusive.It's not about how you express your addresses/offsets in your code, it's about the semantics of the terms. It's simply the fact that absolute addresses CAN be expressed as offsets. You were implying that the two terms are mutually exclusive, when they are not.
You can represent an absolute address as the result of an offsetting expression, but an absolute address is not an offset, which is what my thread title is saying.
Per definition, it still is an offsetting expression, even if this is a bit of an edge case. The result would be an address (although, probably not a very useful one).Also; is an offset of 0x0 from 0x0 still an offset? Or an address?
Since ASLR was enabled in WoW, offsets. Before that, absolute addresses (image base (0x400000) plus offset). Quite obviously.I'm curious, what do you think is posted in those dump threads? Addresses or offsets?
You seem to be assuming that I'm implying 'offset' is the incorrect term for what's currently posted in those info dump threads. I didn't say that. On the contrary, calling what's currently posted addresses would be wrong, which is actually what I'm getting at. Maybe you should be a bit less hasty with jumping the "lol ASLR noob" bandwagon.
Virtual memory invalidates my statements so far completely if we're looking from an OS point of view, but there's no reason you would need to in this forum of all places, as already stated. ASLR does not invalidate my argument; ASLR simply defers finding the absolute address to runtime. I don't quite see how this relates to my statements so far.And besides; ASLR (and even virtual memory in a way) invalidates the OP's argument even more.
When people talk about offsets, they are actually talking about.. waait for it.. offsets.
My entire point with this thread is that incorrect terminology leads to confusion (as was very effing evident in this forum after WoW's switch to ASLR), and that it needs to be fixed. This obviously means that this thread doesn't even target any of the people who have replied so far, but rather, newcomers.
Hopefully this clarification helps with getting that simple point across.
But the point is that an offset is a value that is relative to another value. An absolute address is a value that is relative to 0. Therefore an absolute address is just as much an offset as an RVA, for instance, because an absolute address is relative to 0.
[16:15:41] Cypher: caus the CPU is a dick
[16:16:07] kynox: CPU is mad
[16:16:15] Cypher: CPU is all like
[16:16:16] Cypher: whatever, i do what i want