fiddler中stream数据加密解码
时间: 2023-10-23 10:13:09 浏览: 104
Fiddler可以使用自定义插件实现对流量的加密解密。下面是一个简单的示例:
1. 创建一个名为“CustomDecrypt”的类,继承自Fiddler的“ISessionStateHandler”接口,并实现其中的“OnBeforeResponse”方法和“OnBeforeRequest”方法:
```C#
public class CustomDecrypt : ISessionStateHandler
{
public void OnBeforeResponse(Session oSession)
{
// 解密响应数据
byte[] decryptedData = Decrypt(oSession.responseBodyBytes);
oSession.utilSetResponseBody(decryptedData);
}
public void OnBeforeRequest(Session oSession)
{
// 加密请求数据
byte[] encryptedData = Encrypt(oSession.requestBodyBytes);
oSession.utilSetRequestBody(encryptedData);
}
private byte[] Decrypt(byte[] data)
{
// 在这里实现解密逻辑
// 返回解密后的数据
}
private byte[] Encrypt(byte[] data)
{
// 在这里实现加密逻辑
// 返回加密后的数据
}
}
```
2. 将插件类注册到Fiddler中:
```C#
CustomDecrypt decryptPlugin = new CustomDecrypt();
FiddlerApplication.AfterSessionComplete += decryptPlugin.OnBeforeResponse;
FiddlerApplication.BeforeRequest += decryptPlugin.OnBeforeRequest;
```
3. 启动Fiddler并开始捕获流量。
在上面的示例中,我们定义了一个名为“CustomDecrypt”的插件类,该类继承自Fiddler的“ISessionStateHandler”接口,并实现其中的“OnBeforeResponse”方法和“OnBeforeRequest”方法。在这两个方法中,我们可以实现我们自己的加密和解密逻辑。
在“OnBeforeResponse”方法中,我们获取响应数据并将其解密,然后使用Fiddler的“utilSetResponseBody”方法将解密后的数据设置为响应数据。
在“OnBeforeRequest”方法中,我们获取请求数据并将其加密,然后使用Fiddler的“utilSetRequestBody”方法将加密后的数据设置为请求数据。
最后,我们将插件类注册到Fiddler中,以便Fiddler可以调用我们的插件方法来处理流量。
阅读全文