fiddler怎么解码
时间: 2023-11-05 17:51:14 浏览: 25
要使用Fiddler解码数据,有几种方法。其中一种方法是在Fiddler界面的Response面板中找到"Response body is encoded. Click to decode."的链接,点击它将会解码响应体。另一种方法是使用插件或脚本来进行解码。可以在Fiddler的插件或脚本目录下找到适合的编码解码插件,将插件文件复制到Fiddler程序目录下的Scripts文件夹中,然后重新启动Fiddler即可使用插件提供的解码功能。除此之外,还可以通过查看Fiddler的使用说明来了解更多关于解码的方法和技巧。
相关问题
fiddler中stream数据加密解码
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可以调用我们的插件方法来处理流量。
fiddler修改游戏数据
Fiddler可以通过截取游戏和服务器之间的http通讯,来修改游戏数据。具体步骤如下:
1. 打开Fiddler,点击菜单栏上的Tools -> Options,在弹出的窗口中选择HTTPS选项卡,勾选Decrypt HTTPS traffic和Ignore server certificate errors两个选项,然后点击OK保存设置。
2. 在Fiddler中点击菜单栏上的Rules -> Customize Rules,在打开的脚本文件中找到OnBeforeResponse函数,在函数中添加以下代码:
```
if (oSession.uriContains("游戏接口地址")) {
oSession.utilDecodeResponse(); // 解码响应数据
var response = oSession.GetResponseBodyAsString(); // 获取响应数据
response = response.replace("原始数据", "修改后的数据"); // 修改数据
oSession.utilSetResponseBody(response); // 设置响应数据
}
```
其中,游戏接口地址是指游戏和服务器之间的接口地址,原始数据是指游戏接口返回的原始数据,修改后的数据是指你想要修改成的数据。
3. 点击菜单栏上的File -> Save保存脚本文件,然后关闭文件。
4. 在Fiddler中点击菜单栏上的Rules -> Automatic Breakpoints -> Before Requests,然后打开游戏,等待游戏和服务器之间的http通讯被Fiddler截取。
5. 当Fiddler截取到游戏和服务器之间的http通讯时,Fiddler会自动弹出一个窗口,点击Yes暂停通讯。
6. 在Fiddler中找到请求数据的那一条记录,双击打开,然后点击Edit Request Headers,在弹出的窗口中添加以下代码:
```
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
```
7. 点击Save保存修改后的请求数据,然后点击Run to Completion继续通讯。
8. 当Fiddler截取到服务器返回的响应数据时,Fiddler会自动弹出一个窗口,点击Yes暂停通讯。
9. 在Fiddler中找到响应数据的那一条记录,双击打开,然后修改响应数据,点击Save保存修改后的响应数据,然后点击Run to Completion继续通讯。
10. 关闭游戏,然后在Fiddler中点击菜单栏上的Rules -> Automatic Breakpoints -> Before Requests,取消勾选,保存设置。
11. 重新打开游戏,你就可以看到修改后的游戏数据了。