See detailed reqs below.
## Deliverables
Hello,
In a nutshell, what I want this program to do is to take a compiled and linked .exe (win32 or x64) and 'de-functionise' it.
Essentially this means that - barring any exported symbols or non-determinsitic recursive function calls - that every single function in the exe should be combined into one long entry point machine code sequence with no internal function calling at all.
In order to achieve this the requirements are:
1. Targeting Windows 2000 w/ 0 service packs all the way up to Windows 7 with the latest updates. Note, however, that your program/app only needs to run on Win7 - or any other version(s) - i.e. as long as I can run it I don't care if it needs a specific (presumably latest, i.e 7) Windows version.
2. Implementation language/target program:
(a) You can write this using absolutely any language you like. (Again, I just need to be able to run it.) So pure win32 or win32/x64 C/C++ w/ or w/o STL, ATL/MFC, C++0x all fine. Any .NET language. Any Borland product, i.e. C++ Builder or Delphi is fine. Java, even, is fine.
(b) The program you write can be a console application or a Windows app w/ or w/o GUI that accepts command line which is "-enclosed pathname of target .exe
3. Main functionality:
(a) Scan the .exe; locate function calls; follow each to every possible RET/JMP back (i.e. all function exit points) and then inline every single one of them (so insert the entire function body everywhere it is currently called as a function). Note that you obviously can't do this with library calls.
(b) Ensure all function pro- and epilog removed and only save registers as needed for each individual case.
(c) Iff this is successfully applied throughout the entire .exe - so no internal function calling happens at all. (Literally none except for the exceptions mentioned earlier.) You should then end up with code where you only need to allocate space on the stack once at the start. Note this will be the 'peak' stack size (excluding recursive calls etc. as mentioned earlier).
That's the project. Serious bidders only please.
Many thanks