Python - 模糊测试

时间:2012-08-21 08:25:55

标签: python testing

我正在使用Python进行此Fuzz测试,但我遇到了一些问题。当我编译这段代码时,我有下一个错误:

Traceback (most recent call last): 
  File "vm_main.py", line 33, in <module> 
    import main 
  File "/tmp/vmuser_tgqlkfrnov/main.py", line 44 
    return fuzzit 
SyntaxError: 'return' outside function

我可以提供建议吗?

这是我的代码:

import array

import random

import math

content = """
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Phasellus sollicitudin condimentum libero,
sit amet ultrices lacus faucibus nec.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Cum sociis natoque penatibus et magnis dis parturient montes,
nascetur ridiculus mus. Cras nulla nisi, accumsan gravida commodo et,
venenatis dignissim quam. Mauris rutrum ullamcorper consectetur.
Nunc luctus dui eu libero fringilla tempor. Integer vitae libero purus.
Fusce est dui, suscipit mollis pellentesque vel, cursus sed sapien.
Duis quam nibh, dictum ut dictum eget, ultrices in tortor.
In hac habitasse platea dictumst. Morbi et leo enim.
Aenean ipsum ipsum, laoreet vel cursus a, tincidunt ultrices augue.
Aliquam ac erat eget nunc lacinia imperdiet vel id nulla."""


def fuzzit(content):

    buf = bytearray(content)
    strlst = list()

    for j in range(numwrites):
        rbyte = random.randrange(256)
        rn = random.randrange(len(buf))
        buf[rn] = "%c" %(rbyte)
        strlst[i] = array.tostring(buf)
fuzzed = strlst[:]
return fuzzit

感谢!!!

2 个答案:

答案 0 :(得分:2)

Python使用缩进设置它的结构而不是花括号。您需要将return缩进以与for语句保持一致。

从它的外观来看,您似乎试图在.py中返回fuzzit方法?这是不可能的我做python,你想做什么?

答案 1 :(得分:1)

我不确定你是否理解弗雷德里克有关缩进的内容。看起来你最想要的就是你要回归的。试试这个

for j in range(numwrites):
    rbyte = random.randrange(256)
    rn = random.randrange(len(buf))
    buf[rn] = "%c" %(rbyte)
    strlst[i] = array.tostring(buf)
return strlst[:]