public void CopyMethodToAssembly(AssemblyHandler assemblyHandlerToInject, String typeNameToInject, String methodNameToInject, String typeNameToCopy, String methodNameToCopy) { AssemblyDefinition assemblyToInject = assemblyHandlerToInject.GetAssembly(); Instruction[] instructions = this.DecompileMethodAsInstructions(typeNameToCopy, methodNameToCopy, assemblyToInject); MethodDefinition methodToInject = assemblyHandlerToInject.FindMethodInAssembly(typeNameToInject, methodNameToInject); /* inject the instructions in the main assembly */ InjectInstructions(methodToInject, instructions); }
/* CONSTRUCTOR ***************************************************************************/ public PayloadCreator(AssemblyHandler assemblyHandlerToInject, String FormParentName, String FormMethodName) { InitializeComponent(); assemblyToInject = assemblyHandlerToInject; typeNameToInject = FormParentName; methodNameToInject = FormMethodName; if (assemblyToInject.CheckIfMethodIsInjectable(typeNameToInject, methodNameToInject) == false) { throw new Exception("Can't inject in this method"); } }