Пример #1
0
        public static void Main(string[] args)
        {
            var inspector = new AssemblyInspector("../../../HelloWorld/bin/Debug/HelloWorld.exe");

            inspector.Method(x => x.FindMethod("HelloWorld.Program", "Main")).Replace("System.Console.WriteLine(\"This is a patched Hello World!\");");

            inspector.SaveAs("HelloWorld.Patched.exe");
        }
Пример #2
0
 public void Run()
 {
     try
     {
         Console.WriteLine("____________Task Reflection____________");
         AssemblyInspector assemblyInspector = new AssemblyInspector(new ConsolePrinter());
         assemblyInspector.DisplayAssemblyInfo();
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
         Logger.Log(e.Message);
     }
 }
        public void Should_Replace_Method_Body_With_Method_Call_And_Method_Call_To_Class_Member()
        {
            // patch the assembly
            var typeLoader = new TypeLoader();
            var inspector  = new AssemblyInspector(SourceFile, typeLoader);

            inspector.Method(x => x.FindMethod("HelloWorld.Program", "Main")).Replace("System.Console.WriteLine(GenerateHelloWorld());");

            inspector.SaveAs(PatchedFile);

            // execute the patched assembly
            var output = RunExecutable(PatchedFile);

            // validate std out
            Assert.AreEqual("Hello World\r\n", output);
        }
        public void Should_Replace_Property_Getter_Body()
        {
            // patch the assembly
            var typeLoader = new TypeLoader();
            var inspector  = new AssemblyInspector(SourceFile, typeLoader);

            inspector.Property(x => x.FindProperty("HelloWorld.Program", "HelloWorldProperty")).ReplaceGet("return \"This is a Test\";");
            inspector.Method(x => x.FindMethod("HelloWorld.Program", "Main")).Replace("System.Console.WriteLine(HelloWorldProperty);");

            inspector.SaveAs(PatchedFile);

            // execute the patched assembly
            var output = RunExecutable(PatchedFile);

            // validate std out
            Assert.AreEqual("This is a Test\r\n", output);
        }