I've always had a great interest in computer security and after reading:
Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection
-I'd like to implement some of these algorithms, which assume that you are able to modify an executable at the binary level.
Using a HEX editor, I have accomplished to insert a simple checksum algorithm for tamper-proofing protection of a code region. However, this technique is not feasible in practice, so I'm looking for ways of automating this.
Are there any well-known frameworks or techniques that takes an executable as input and allow the programmer to work with the code in a programatically way? If not, what are my options?
By programatically, I mean, parse it into, e.g., a tree-like structure that can be written back out as a new (modified) executable.
Thank you for your time and interest.