2014-01-22 128 views
2

我正在关注“https://www.mandiant.com/blog/parsing-registry-hives-python/”。错误未定义

在运行下面的代码:

f = open("SAMPLE1.DAT") 
buf = f.read() 
regf = RegistryParse.REGFBlock(buf, 0, false) 

for HBIN in regf.hbins(): 
    for cell in HBIN.cells(): 
     if cell.is_free(): 
      print "Unallocated cell at offset 0x%x" % (cell.offset()) 

我得到一个错误:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'false' is not defined 

可以什么原因呢?现在

,就来到了:

Traceback (most recent call last): 
    File "mig.py", line 11, in <module> 
    regf = RegistryParse.REGFBlock(buf, 0, False) 
    File "/usr/local/lib/python2.7/dist-packages/Registry/RegistryParse.py", line 236, in   __init__ 
    raise ParseException("Invalid REGF ID") 
Registry.RegistryParse.ParseException: Registry Parse Exception(Invalid REGF ID) 

回答

5

Python是区分大小写的。 False = false = fAlSe

2

使用False以大写F:!

regf = RegistryParse.REGFBlock(buf, 0, False) 

不幸的是,博客帖子有拼错了。

8

False应在Python资本化:

regf = RegistryParse.REGFBlock(buf, 0, False) 

记住,Python是区分大小写的。