Skip to content

There was an error when VUzzer reads the *.names and *.pkl files. #17

@MoonLight-SteinsGate

Description

@MoonLight-SteinsGate

When I start VUzzer to fuzz base64 from LAVA-M, it shows that:

root@moonlight:~/vuzzer64/fuzzer-code# python runfuzzer.py -s '/root/target_of_lava/LAVA-M/base64 -d %s' -i '/root/vuzzer64/fuzzer-code/datatemp/b64' -w '/root/idafiles/base64.pkl' -n '/root/idafiles/base64.names'
Exception in thread Thread-1:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "runfuzzer.py", line 704, in main
    gau.prepareBBOffsets()
  File "/root/vuzzer64/fuzzer-code/gautils.py", line 394, in prepareBBOffsets
    tdata=pickle.load(tFD)
  File "/usr/lib/python2.7/pickle.py", line 1384, in load
    return Unpickler(file).load()
  File "/usr/lib/python2.7/pickle.py", line 864, in load
    dispatch[key](self)
  File "/usr/lib/python2.7/pickle.py", line 1096, in load_global
    klass = self.find_class(module, name)
  File "/usr/lib/python2.7/pickle.py", line 1130, in find_class
    __import__(module)
ImportError: No module named __builtin__

After my analysis, the reason is that the base64.names and base64.pkl are generated by IDA using text mode on Windows. In this mode on Windows, \n will be transferred as \r\n.

According to https://stackoverflow.com/questions/46350566/pickle-importerror-no-module-named-builtin, we just need to convert the \r\n into \n in the *.names and *.pkl.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions