Dear Coders, We need an x64 mutator for some x64 instructions. The routine will receive a pointer to a binary x64 instruction and will mutate it if the instruction is recognised by the mutator. We do NOT require a mutation for every single x64 instruction, but just for the following instructions: MOV r64, r64 MOV r64, imm OP r64, r64 OP r64, imm MOV r64, qword [r64 + x] OP r64, qword [r64 + x] MOV [r64 + x], r64 MOV [r64 + x], imm OP qword [r64 + x], r64 OP qword [r64 + x], imm LEA r64, [r64 + x] PUSH / POP r64 NOTES: - OP = "ADD", "SUB", "OR", "AND" - x = nothing, imm8, imm32 - r64 = any 64-bit register (RAX, RBX...R15) - imm = imm8, imm32 The function prototype will be something like: size_t MutateInstruction(void *pInstruction, int RecursionLevel, void *outBuffer) Where: - “pInstruction?? is a pointer to binary data that will be the instruction to mutate - “RecursionLevel?? is the recursion level to mutate the instruction. For example, an instruction can be mutated and remutate again to produce more combinations - “outBuffer?? is the output buffer where we will generate the mutated opcodes The function will return the size of the generated “outBuffer??. If the function cannot be mutated (not included in the above list), the return size is ZERO. NOTE: The generated solution will generate several kinds of mutations for every single instruction accepted. For example: MOV rax, rbx Can generate: 1) PUSH rbx POP rax 2) MOV QWORD [RSP], rbx POP rax Well, you can put your imagination in action :) We will give extra bonuses for this! REQUERIMENTS ---------------- The solution will be coded in VC 2003 or VC 2005. Good coding style and comments We hope to work with you in this and in our next similar projects. Thanks.
## Deliverables
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).
## Platform
Windows