Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int InjectHelperMethod(String^ path)
- {
- AssemblyDefinition^ asmDef = AssemblyDefinition::ReadAssembly(path);
- MethodDefinition^ mDef = gcnew MethodDefinition("_Main", (MethodAttributes::ReuseSlot | MethodAttributes::Static), asmDef->MainModule->Import(int::typeid));
- mDef->Parameters->Add(gcnew ParameterDefinition("arg", ParameterAttributes::None, asmDef->MainModule->Import(String::typeid)));
- ILProcessor^ ilProc = mDef->Body->GetILProcessor();
- ilProc->Append(ilProc->Create(OpCodes::Call, (MethodReference^)asmDef->EntryPoint));
- ilProc->Append(ilProc->Create(OpCodes::Ldc_I4, 1));
- ilProc->Append(ilProc->Create(OpCodes::Ret));
- asmDef->EntryPoint->DeclaringType->Methods->Add(mDef);
- path = path->Replace(".exe", "_.exe");
- asmDef->Write(path);
- return 1;
- }
Add Comment
Please, Sign In to add comment