zzuf变异器的python实现

pyZZUF的Python项目详细描述


位翻转zzuf变异器的python实现。

不再有os.systemsubprocess.check_outputsubprocess.Popen:thumbsup:

基本用法

内联

frompyZZUFimport*printpyZZUF('good').mutate()

选项

frompyZZUFimport*zzuf=pyZZUF('good')# Random seed (default 0)zzuf.set_seed(9)# Bit fuzzing ratio (default 0.004)zzuf.set_ratio(0.91)# Offsets and rangeszzuf.set_offset(6)# Only fuzz bytes at offsets within <ranges>zzuf.set_fuzz_bytes([[0,3],[6,EOF]])# Protect bytes and characters in <list>zzuf.set_protected([0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39])# Append more byteszzuf.set_protected("0123456789",True)# Refuse bytes and characters in <list>zzuf.set_refused("abcd")# Append more byteszzuf.set_refused([0x00,0xFF],True)# Permit bytes and characters in <list>zzuf.set_permitted('bad')# Append more byteszzuf.set_permitted('!',True)# Fuzzing mode <mode> ([xor] set unset)zzuf.set_fuzz_mode(FUZZ_MODE_XOR)printzzuf.mutate()

诱变剂

zzuf=pyZZUF('good')fordatainzzuf.mutagen(start=0.0,stop=1,step=0.1):if__debug__:seed,ratio,index=data.get_state()printdata.tostring().encode('hex'),seed,ratio,indexifdata=='bad!':break

前一状态的遗传(肉)

zzuf=pyZZUF('good')fordatainzzuf.mutagen(start=0.0,stop=1,step=0.1,inheritance=True):if__debug__:seed,ratio,index=data.get_state()printdata.tostring().encode('hex'),seed,ratio,indexifdata=='bad!':break

恢复突变状态的流发生器

obj=pyZZUF('good')gen=obj.mutagen(start=0.0,stop=1,step=0.01)whileTrue:try:data=gen.next()seed,ratio,index=data.get_state()if__debug__:printdata.tostring().encode('hex'),seed,ratio,indexifseed==20:# Set next state of generator (<seed>, <ratio>).# In this example, it makes an infinite loop!gen.send((0,0.0))ifdata=='bad!':breakexceptStopIteration:break

身份检查

$ echo -n "The quick brown fox jumps over the lazy dog"| zzuf -r0.04 | hd

000000005468652071756963  6b 206272 6f 57 6c 20|The quick broWl |0000001066 4f 5820 6a 75 6f 707324 6f 7675722074|fOX juops$ovur t|00000020686521 6c 61 7a 782066 6f 67|he!lazx fog|
0000002b

$ python -c "import pyZZUF, sys; sys.stdout.write(pyZZUF.pyZZUF('The quick brown fox jumps over the lazy dog', ratio=0.04).mutate().tostring())"| hd

000000005468652071756963  6b 206272 6f 57 6c 20|The quick broWl |0000001066 4f 5820 6a 75 6f 707324 6f 7675722074|fOX juops$ovur t|00000020686521 6c 61 7a 782066 6f 67|he!lazx fog|
0000002b

安装

pip install pyZZUF

注释*

使用PyPy加速

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring freemarker多模板加载程序路径   在java插件中从控制台获取输入   java在包中创建继承类   网页抓取Java Jsoup网页抓取   java在线程内创建一个对象,而true条件具有相同的引用   java如何根据空格数拆分字符串   java新的安卓 studio更新中的配置文件“app”是什么?   java在将ArrayList写入/读取到文件时出现奇怪的问题   java Reg替换文本块第一次出现+最后一次出现   java当我单击任何RecyclerView列表项时,如何在MainActivity的EditText中显示特定的单击项?   JAVA XML删除节点仅删除第一个外观   java如何在数组中查找特定值   java SVG/矢量图形对象布尔运算(并集、交集、减法)   java在Android中创建线程需要多长时间   尝试从JBOSS联系Oracle LDAP服务器时发生java连接重置异常   java基于参数获取特定的实现实例   使用java就地修改文件内容   java MonetaryException:未加载MonetaryAmountsSingletonSpi   java接受用户的不同输入并使其触发完全相同的代码段的最短方法是什么   Spring 3.2.8应用程序中未找到java HTTP 404错误