私は、US CERT の python で書かれたソフトウェアを使用して、いくつかのファジングを行っています。このソフトウェアには、どのバイト変異がクラッシュを引き起こしているかを正確に判断するために、クラッシュを引き起こす特定のテスト ケースに対して実行するように設計された Minimizer.py ツールが含まれています。
ただし、ツールを実行しようとすると、エラーが発生します。ツールとエラーの両方をGoogleで検索すると、空白が表示されます。限られた Python の経験で自分でトラブルシューティングを試みても、役に立ちません。エラーの原因についてのアイデアはありますか?エラーを修正してツールを機能させることができますか?
使用されているコマンド ライン オプションは次のとおりです。
エラー出力は次のとおりです。
Traceback (most recent call last):
File "C:\FOE2\tools\minimize.py", line 234, in <module>
main()
File "C:\FOE2\tools\minimize.py", line 183, in main
config = Config(cfg_file).config
File "C:\FOE2\certfuzz\campaign\config\__init__.py", line 76, in __init__
self._set_derived_options()
File "C:\FOE2\certfuzz\campaign\config\foe_config.py", line 93, in _set_derived_options
t = Template(self.config['target']['cmdline_template'])
TypeError: 'NoneType' object has no attribute '__getitem__'
エラーの最後の 2 行にある両方のファイルのコード セグメントは次のとおりです。
__init__.py
:
def __init__(self, config_file):
self.file = config_file
self.config = None
self.load()
self._set_derived_options()
self.validations = []
self._add_validations()
self.validate()
def _set_derived_options(self):
pass
そして、からfoe_config_.py
(関連する場合に備えて、前のコード行を追加しました。):
class Config(ConfigBase):
def _add_validations(self):
self.validations.append(self._validate_debugger_timeout_exceeds_runner)
def _set_derived_options(self):
# interpolate program name
# add quotes around $SEEDFILE
t = Template(self.config['target']['cmdline_template'])
#self.config['target']['cmdline_template'] = t.safe_substitute(PROGRAM=self.config['target']['program'])
self.config['target']['cmdline_template'] = t.safe_substitute(PROGRAM=quoted(self.config['target']['program']), SEEDFILE=quoted('$SEEDFILE'))