vlambda博客
学习文章列表

经验总结:使用Fiddler进行数据篡改测试(修改十六进制流)

Fiddler不但是强大的抓包工具,还能做篡改、Mock测试等,学会工具并灵活应用才是真本事

这是一篇对 Fiddler深入应用的文章,但只要对Fiddler有最基本的了解即可看懂哦!

1.故事背景

这次程序组升级了LBG模型文件的版本号,本地LBG库也做了更新强化,既然LBG有版本号的概念,那肯定要测试后续新LBG模型在老LBG库中或老LBG模型在新LBG库中使用是否正常,老版本LBG好找,我们只要把之前的工程拿过来测试就OK了,但后续的新LBG模型肯定是拿不到了,因为这是未来版本,那我们怎么测试了,要程序做一个未来包含的模型文件?也是可以的,但如果这样的话,就没有这篇文章了,哈哈,对于一个有追求技术的测试来说,我还是希望自己动手丰衣足食的。

我们知道LBG模型文件中肯定有一个地方是写着版本号,不然程序是怎么判断的?具体到什么地方我们可以问程序,我们现在要做的就是把这个版本号变大,假设你已经找到了这个位置,那怎么改这个版本号?LBG是一个模型文件不可能简单的直接改文件了,最后我们咨询了一下程序,我们可以通过改十六进制的方式达到我们的目,我这里主要介绍通过fiddler修改方式,还有很多其它工具也可以。

2.操作步骤

1.首先打开fiddler调整好手机抓包,选择一个工程,进入到工程界面,然后把手机抓包断点模式调整到响应断点。

经验总结:使用Fiddler进行数据篡改测试(修改十六进制流)

3.右击这个请求,选择保存,选择“Response Body...”如下图。

经验总结:使用Fiddler进行数据篡改测试(修改十六进制流)

4.用MD5工具计算一下刚保存的文件的MD5,把这个MD5记下来。

7.这时候会看到客户端会弹出提示“图形文件版本过高,请升级软件版本”的提示,这就是我们要测试的点,看程序是否正常处理了这样的异常,通过这种测试我们提前预知了未来版本可能出现的异常,当然在这个过程中我们还发现了程序在处理高版本时的其它BUG,如果我们不提前测试,可能在下次出现打开高版本LBG时出现不能使用的事故。


注:是不是感觉4、5、6看不懂,这是因为程序本地会检验MD5与下载的文件是否同一个,这也是最基本的校验。其实也可以通过Mock的方式解决这个问题,反正条条大路通罗马,选择一条适合自己的吧。

3.总结

测试不是一个墨守成规的职业,他需不断发动头脑思考可能出现的问题,提前预知、提前预防是测试应有的嗅觉;做一件事不是看你有没有能力,而是看你愿不愿意把这件事做好;所以不要给自己的思维设限,发挥想像力,你能想到的可能都是问题,要一一验证。


如果你认同这篇文章,请点击在看