ucsb-seclab / diane

DiAne is a smart fuzzer for IoT devices
38 stars 7 forks source link

lifter does not include LibraryClass, but used in note_filter.py #4

Closed 5erua closed 1 year ago

5erua commented 1 year ago

Hello, when I was running this project, parsing the invoke statement of each SootMethod in node_filter.py, I encountered a class in the library (java.lang.Object), which was not in the classes included in lifter, so it reported a KeyError: 6e14a9e66a7dafa1041f5113422a539

发生异常: KeyError
('java.lang.Object',)
  File "/mnt/d/diane/diane/src/node_filter/node_filter.py", line 52, in get_hierarchy
    clx = self.lifter.classes[cls]
  File "/mnt/d/diane/diane/src/node_filter/node_filter.py", line 63, in dispatch_invoke
    h = self.get_hierarchy(bcls)
  File "/mnt/d/diane/diane/src/node_filter/node_filter.py", line 97, in get_methods
    clx, method = self.dispatch_invoke(callee_cls, callee_mname, callee_params)
  File "/mnt/d/diane/diane/src/node_filter/node_filter.py", line 119, in _get_nodes_core
    methods = [self.get_methods(clx, method, s) for s in st_invoked]
  File "/mnt/d/diane/diane/src/node_filter/node_filter.py", line 137, in start
    self._get_nodes_core()
  File "/mnt/d/diane/diane/src/node_filter/node_filter.py", line 36, in __init__
    self.start(reload=reload)
  File "/mnt/d/diane/diane/run.py", line 76, in __init__
    self.nf = NodeFilter(self.config, lifter=self.lifter)
  File "/mnt/d/diane/diane/src/frida_hooker/frida_hooker.py", line 71, in g
    return f(*args, **kwargs)
  File "/mnt/d/diane/diane/run.py", line 217, in <module>
    IoTFuzzer(config).run(phase)

That is because, when initializing lifter, it only get ApplicationClass, not including LibraryClass: 3342cfadfc580ea12810ba9e592f9fd Could you help me with this problem?

5erua commented 1 year ago

OK, Entering KeyError is normal code logic