A friend and I are poking around with some 32-bit Windows binaries and wanted to get some info about relocation tables.
What is the difference between an exe that does not contain a relocation table (its base memory always starts at a specific address e.g. 0x0040000), and an exe that does contain a relocation table with a base memory that starts at different addresses?
What are the benefits or detriments to having a relocation table and not having one in an exe?
If an exe has a relocation table already inside of it, what will happen if it is removed? What are the consequences of doing so?