First I apologize if in wrong section of forum for this question, but I will eventually be working in C++.
I don't know where to start on this project, so my terms will most likely be wrong.

The idea is to partially hash an executable file, that part of the file which holds the binary code.
For example, if I create an MD5 of an executable, then I change the code, recompile and hash again, the two will be different, even if just a single byte of data is changed.

That is fine, that is what I want. But if I update a resource, for instance, an icon or bitmap in that same executable file, the hash will again be different, from the hash before I updated the resource.

My goal is to create a tool, where if only resources are updated/changed/added, but the code is not, then the tool will produce the same hash.

I've probably gone around the block to explain this, and I'm sorry about that.

My question is if this is even possible, and what should I be reading up on to get started?
All I can think of is reading as binary some of the file and createing a hash of that "binary string" for want of a better phrase. bUt how would I know what parts of the file are resourses and what is not?

I hope someone can make sense of my explanation and offer some pointers.

thank you for taking time to read.

On the assumption that you're intending to use this on Win32 executables, it sounds like you want to know about the internal structure of a Win32 executable.

Start here: http://en.wikipedia.org/wiki/Portable_Executable

and then follow the references.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.21 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.