我目前正在寻找Python字典的fuzzer。我已经知道一些模糊工具,例如:
然而,它们似乎比我要找的东西要宽泛一点。实际上,我的目标是为给定的工具提供一个Python字典,并获得一个与输入字典非常相似的新字典,但是有些值发生了更改。在
例如,提供
{k1: "aaa", k2: "bbb", k3: "ccc"}
我打算获得以下新词典:
^{pr2}$你知道这种工具吗?欢迎提出任何建议。在
在最好的情况下,我希望这是一个开源工具。在
编辑1: 我发布了我目前尝试过的代码:
def change_randomly(self, v):
from random import randint
import string
new_v = list(v)
pos_value = randint(0, len(v)-1)
random_char = string.letters[randint(0, len(string.letters)-1)]
new_v[pos_value] = str(random_char)
return ''.join(new_v)
当然,它可能会改进,所以我期待着任何关于它的想法。在
谢谢!在
基于对问题的评论,为什么不简单地编写一个基于固定长度模板的fuzzer,如下所示:
在用例输入上,它可能会产生以下结果:
^{pr2}$因此,这应该让OP开始一些事情,因为这可能是一个引导问题,Python知识才刚刚开始。。。在
我只是在PEP8兼容的环境下破解了它,不管是pythonv2还是v3,它都能正常工作。在
还有很多工作要做。。。但是如果一个库或者一些简单的增强编码就足够了,那么应该让一个去评估。只有运营商会知道,但欢迎评论这个答案建议或更新问题。在
提示:我几乎总是使用SystemRandom,这样您就可以更可靠地并行化了。可能有更快的方法,但是在规范中我看不到性能。印刷品当然是散乱的,因为这充其量是教育性的。高温
更新: 在阅读了关于只更改部分字符串以保持某些相似性的OP注释后,可以通过以下方式交换上面的fuzzer函数:
然后作为样本输出:
调用此函数而不是另一个函数时。在
相关问题 更多 >
编程相关推荐