C# 使用reflector与reflexil实现代码注入
2009-10-08 20:59
716 查看
需求
1. 双击窗体,弹出无标题的messageBox源码
using System;
using System.Windows.Forms;
namespace ReflexilDemo
{
public class DemoForm : Form
{
public DemoForm()
{
//InitializeComponent();
this.Click+=DisplayResultButton_Click;
}
private void ComputeAndDisplay(decimal x, decimal y)
{
MessageBox.Show(String.Format("{0}+{1}={2}", x, y, x + y));
}
private void DisplayResultButton_Click(object sender, EventArgs e)
{
decimal a=3.0M;
decimal b=6.0M;
ComputeAndDisplay(a, b);
}
static void Main()
{
DemoForm df=new DemoForm();
df.ShowDialog();
Console.Read ();
}
}
}
2. 注入代码后,双击窗体,弹出有标题的messageBox
实现
使用.NET Reflector与Reflexil ,修改il代码实现。由源码可知,messagebox的调用是在ComputeAndDisplay方法中完成的,所以我们需要修改此方法的il。
实现步骤:
l 用Reflexil打开 ComputeAndDisplay
l 插入字符串
l 修改MessageBox。Show(string)----àMessageBox.Show(string,string)
l 选择Show(string,string),双击
l 然后保存修改后的结果
l 再次运行
相关文章推荐
- 使用C#调用系统API实现内存注入的代码
- 我的C#跨平台之旅(五):使用IoC之依赖注入实现
- C#中怎么使用系统默认浏览器打开指定的URL(代码实现)
- Asp.net使用C#代码实现万年历查询
- 使用C#给PDF文档添加注释的实现代码
- cocos2d-x系列笔记(9.1)---浅谈cocos2d-x使用函数指针实现委托(上)---通过c#代码理解委托
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
- C#使用Conditional元数据Attribute来实现代码调试
- 使用C#代码实现增加 windows 用户帐号
- 使用C#实现在屏幕上画图效果的代码实例
- 编写高质量代码改善C#程序的157个建议——建议15: 使用dynamic来简化反射实现
- C#使用itextsharp生成PDF文件的实现代码
- [C#]使用 C# 代码实现拓扑排序
- 使用C#代码实现增加用户帐号
- C# and VB.NET Code Searcher - Using Roslyn(使用Roslyn实现的C#和VB.Net的代码查询器)
- C#实现使用HTTP管道的.NET远程代码示例
- VS2005(C#)使用AjaxPro.2实现把前台页面的值传到后台代码中
- C#使用ConditionalAttribute特性来实现代码调试
- 使用PInvoke实现C#调用非托管C代码DLL库
- 使用C#代码实现增加用户帐号