zoukankan      html  css  js  c++  java
  • fiddler插件开发step by step 1

    Fiddler 是优秀的抓包工具,有着众多的优秀插件。Fiddler 软件是由C#语言开发的,运行在.net Framework 框架之上,所以我们也可以使用vs来开发自己的Fiddler插件,下面就介绍fiddler插件开发基本步骤。

    1.打开visual studio 创建一个Visual C# Class Library 类库项目

    .net 框架选择2.0或者3.5,这里我们选择.net Framework 2.0。

    image

    2.在解决方案资源管理器中添加fiddler.exe的引用,

    如下添加fiddler安装目录C:Program FilesFiddler2 下的Fiddler.exe引用。

     image

    3.如果你的插件需要修改fiddler UI界面

    还需要添加 System.Windows.Forms 程序集的引用

    image 

    4.使插件自动部署到fiddler插件目录下

    在解决方案资源管理器中,选择项目右键选择属性,在属性面板中选择生成事件选项卡,并在后期生成事件命令行中填写如下命令:

        copy "$(TargetPath)" "%ProgramFiles%Fiddler2Scripts$(TargetFilename)"

    意思就是编译项目成功时,将生成的程序集复制到fiddler插件目录。

    image

    5.设置插件所运行的fiddler最低版本

    在项目的AssemblyInfo.cs(也可以在你代码的其他任何地方)文件中添加Fiddler.RequiredVersion 特性(Attribute)

    image

    6.下面来看一个实例:创建一个自定义的插件并可以在Fiddler中加载运行。

    首先在项目中添加一个用户控件取名为MyControl.cs(随意),如下图所示:

    image

    然后在用户控件上随意放置一个Button控件,并写一行简单的单击事件代码:

    image

    private void button1_Click(object sender, EventArgs e)
     {
         MessageBox.Show("you clicked me");
     }

    7.最后修改你项目中默认的Class1.cs文件名为MyExtention.cs,内容如下:

    public class MyExtension : IFiddlerExtension
    {
        private TabPage tabPage; //创建插件的选项卡页
        private MyControl myCtrl; //MyControl自定义控件
    
        public MyExtension()
        {
            //构造函数中实例化对象
            this.tabPage = new TabPage("Test");//选项卡的名字为Test
            this.myCtrl = new MyControl();
        }
    
        public void OnLoad()
        {
            //将用户控件添加到选项卡中
            this.tabPage.Controls.Add(this.myCtrl);
            //为选项卡添加icon图标,这里使用Fiddler 自带的
            this.tabPage.ImageIndex = (int)Fiddler.SessionIcons.Timeline; 
            //将tabTage选项卡添加到Fidder UI的Tab 页集合中
            FiddlerApplication.UI.tabsViews.TabPages.Add(this.tabPage); 
        }
    
        public void OnBeforeUnload()
        {
    
        }
    }

    编译项目成功后,生成的程序集dll文件会自动复制到Fiddler的安装目录下的scripts目录下,接着就重新启动fiddler就可以发现自定义的插件了。

    image

  • 相关阅读:
    How to function call using 'this' inside forEach loop
    jquery.validate.unobtrusive not working with dynamic injected elements
    Difference between jQuery.extend and jQuery.fn.extend?
    Methods, Computed, and Watchers in Vue.js
    Caution using watchers for objects in Vue
    How to Watch Deep Data Structures in Vue (Arrays and Objects)
    Page: DOMContentLoaded, load, beforeunload, unload
    linux bridge
    linux bridge
    EVE-NG网卡桥接
  • 原文地址:https://www.cnblogs.com/weekend001/p/3472912.html
Copyright © 2011-2022 走看看