0

私は、猿の子守の話の Charlie Miller コードに基づいて、Windows アプリケーションで使用するための単純なファザーを作成しています。しかし、私はエラーを受け取り続けます

  Traceback (most recent call last):
  File "D:/Python27/fuzzer.py", line 29, in <module>
    process=subprocess.Popen([app_choice,fuzz_output])
  File "D:\Python27\lib\subprocess.py", line 679, in __init__
    errread, errwrite)
  File "D:\Python27\lib\subprocess.py", line 896, in _execute_child
   startupinfo)
WindowsError: [Error 5] Access is denied

これをバイパスする方法を知っている人はいますか?正直なところ、私は Windows 7 のアクセス許可や Python 2.7 にあまり詳しくないので、本当に困惑しています。以下の完全なコード

#List of file names (all located in the python folder)
fuzz_files=[ "slides_algo-guiding.pdf", "slides_algo-intro-annotated-   final.pdf","slides_algo-merge1.pdf"]
apps=["C:\Program Files (x86)\Adobe\Reader 9.0\Reader"
  ]
#Creates an output file in the Python folder
fuzz_output="fuzz.pdf"
FuzzFactor=50
num_tests=1000
import math
import string
import random
import subprocess
import time

for i in range(num_tests):
    file_choice=random.choice(fuzz_files)
    app_choice=random.choice(apps)
    buf=bytearray(open(file_choice,'rb').read())
    #Charlie Miller code

    numwrites=random.randrange(math.ceil((float(len(buf))/FuzzFactor)))+1
    for j in range(numwrites):
        rbyte=random.randrange(256)
        rn=random.randrange(len(buf))
        buf[rn]="%c"%(rbyte)
     #End Charlie miller code

     #Write code
     open(fuzz_output,'wb').write(buf)
     process=subprocess.Popen([app_choice,fuzz_output])

     time.sleep(1)
     crashed=process.poll()
    if not crashed:
       process.terminate()
4

1 に答える 1

1

実行可能ファイルではなく、フォルダーC:\Program Files (x86)\Adobe\Reader 9.0\Readerのパスだと思います。したがって、それを実行しようとしても意味がありません。Popen

また、Windows パスを記述するときは生の文字列を使用するr"C:\Program Files (x86)\Adobe\Reader 9.0\Reader\AcroRd32.exe"か、代わりにスラッシュを使用する必要があります"C:/Program Files (x86)/Adobe/Reader 9.0/Reader/AcroRd32.exe"。パスに有効なエスケープ シーケンスがなかったのは幸運でした。

于 2012-08-09T16:26:59.793 に答える