We want a simple function that appends a buffer into a new section in a ELF application (for linux/i386 and linux/AMD64). The new section will be executable/writable
The prototype could be:
int AppendToLastFileSection(char *Filename, byte *Buffer, int SizeBuffer)
Filename: pointer to a file name where we will append a new section
Buffer: contains our buffer of code that will go into the new section
SizeBuffer: size of "Buffer". That is, the size of the new section.
The RETURN value will be the Virtual Address where the new section should be loaded when running the application.
1) The section is added into the ELF file as the last one
2) The new section can be executed. That is, if the original application jumps over the new section, the code can be executed from the new section
3) Only ELF for i386/AMD64 are handled
3) The solution will be implemented in Visual Studio 2003/2005. Obtaining a resulting Windows application
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
Windows, ELF, linux