This repository was archived by the owner on Mar 4, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 35
TypeError: unhashable type: 'dict' #5
Copy link
Copy link
Open
Description
I'm setup with the same configuration as I've reported in issue #1.
I've also tried to run things without the cache:
$ BINARY=~/src/3rd/BOPC/evaluation/nginx1
$ PAYLOAD=~/src/3rd/BOPC/payloads/execve.spl
$ ENTRY=0x41cd03
$ ./source/BOPC.py -dd --binary $BINARY --source $PAYLOAD --entry $ENTRY --format gdb
I get a different kind of error:
WARNING | 2019-01-23 23:34:00,256 | angr.analyses.disassembly_utils | Your version of capstone does not support MIPS instruction groups.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% ::::::::: :::::::: ::::::::: :::::::: %
% :+: :+: :+: :+: :+: :+: :+: :+: %
% +:+ +:+ +:+ +:+ +:+ +:+ +:+ %
% +#++:++#+ +#+ +:+ +#++:++#+ +#+ %
% +#+ +#+ +#+ +#+ +#+ +#+ %
% #+# #+# #+# #+# #+# #+# #+# %
% ######### ######## ### ######## %
% %
% Block Oriented Programming Compiler %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[*] Starting BOPC v2.1 at 23/01/2019 23:34
[23:34:00,281] [+] Compiling '/home/tullsen/src/3rd/BOPC/payloads/execve.spl'...
[23:34:00,281] [+] Parsing started.
[23:34:00,284] [+] Parsing complete.
[23:34:00,284] [+] Fixing jump/goto targets...
[23:34:00,284] [+] Done.
[23:34:00,284] [+] Semantic analysis started.
[23:34:00,284] [+] Semantic analysis completed.
[23:34:00,284] [+] Compilation completed.
[23:34:00,284] [+] Optimizer started. Mode: 'none'
[23:34:00,284] [+] Removing labels...
[23:34:00,285] [+] Done.
[23:34:00,285] [+] Optimization completed.
[23:34:00,285] [+] Optimized IR:
[23:34:00,285] [+] -------------------------------- @__0 --------------------------------
[23:34:00,285] [+] {'type': 'entry', 'uid': 0}
[23:34:00,285] [+] -------------------------------- @__2 --------------------------------
[23:34:00,285] [+] {'type': 'varset', 'uid': 2, 'val': ['/bin/sh\x00'], 'name': 'prog'}
[23:34:00,285] [+] -------------------------------- @__4 --------------------------------
[23:34:00,285] [+] {'type': 'varset', 'uid': 4, 'val': [('prog',), '\x00\x00\x00\x00\x00\x00\x00\x00'], 'name': 'argv'}
[23:34:00,285] [+] -------------------------------- @__6 --------------------------------
[23:34:00,285] [+] {'reg': 0, 'type': 'regset', 'valty': 'var', 'val': ('prog',), 'uid': 6}
[23:34:00,285] [+] -------------------------------- @__8 --------------------------------
[23:34:00,286] [+] {'reg': 1, 'type': 'regset', 'valty': 'var', 'val': ('argv',), 'uid': 8}
[23:34:00,286] [+] -------------------------------- @__10 --------------------------------
[23:34:00,286] [+] {'reg': 2, 'type': 'regset', 'valty': 'num', 'val': 0, 'uid': 10}
[23:34:00,286] [+] -------------------------------- @__12 --------------------------------
[23:34:00,286] [+] {'uid': 12, 'args': [0, 1, 2], 'dirty': ['rax', 'rcx', 'rdx', 'r10', 'r11'], 'alt': [], 'type': 'call', 'name': 'execve'}
[23:34:00,513] [+] Generating CFG. It might take a while...
WARNING | 2019-01-23 23:34:10,886 | angr.engines.successors | Exit state has over 256 possible solutions. Likely unconstrained; skipping. <BV64 global_c000014_17_64{UNINITIALIZED}>
WARNING | 2019-01-23 23:34:11,001 | angr.engines.successors | Exit state has over 256 possible solutions. Likely unconstrained; skipping. <BV64 global_c00001d_35_64{UNINITIALIZED}>
...
[23:34:18,090] [+] CFG generated.
[23:34:18,090] [+] Normalizing CFG...
[23:34:18,722] [+] Done.
[23:34:18,731] [*] CFG has 24169 nodes and 44565 edges
[23:34:18,776] [+] Basic block abstraction process started.
defaultdict(<type 'list'>, {'pruned': [], 'deadended': [], 'active': [], 'unconstrained': [], 'errored': [], 'unsat': [], 'stashed': []})
[23:34:18,840] [WARNING] Symbolic Execution at block 0x40218d failed: 'There are no usable stashes!' Much sad :( Skipping current block....
defaultdict(<type 'list'>, {'pruned': [], 'deadended': [], 'active': [], 'unconstrained': [], 'errored': [], 'unsat': [], 'stashed': []})
[23:34:20,692] [WARNING] Symbolic Execution at block 0x4029a5 failed: 'There are no usable stashes!' Much sad :( Skipping current block....
defaultdict(<type 'list'>, {'pruned': [], 'deadended': [], 'active': [], 'unconstrained': [], 'errored': [], 'unsat': [], 'stashed': []})
...
[23:55:30,960] [WARNING] Symbolic Execution at block 0x45d996 failed: 'There are no usable stashes!' Much sad :( Skipping current block....
defaultdict(<type 'list'>, {'pruned': [], 'deadended': [], 'active': [], 'unconstrained': [], 'errored': [], 'unsat': [], 'stashed': []})
[23:55:30,972] [WARNING] Symbolic Execution at block 0x45d9b0 failed: 'There are no usable stashes!' Much sad :( Skipping current block....
[23:55:30,972] [+] 100% completed
defaultdict(<type 'list'>, {'pruned': [], 'deadended': [], 'active': [], 'unconstrained': [], 'errored': [], 'unsat': [], 'stashed': []})
[23:55:30,986] [WARNING] Symbolic Execution at block 0x45d9b4 failed: 'There are no usable stashes!' Much sad :( Skipping current block....
[23:55:30,986] [+] Done.
[23:55:30,986] [+] Searching CFG for candidate basic blocks...
[23:55:30,986] [+] Creating vartab...
[23:55:30,986] [+] Done.
Traceback (most recent call last):
File "./source/BOPC.py", line 447, in <module>
X = mark.mark_candidate(sorted(map(lambda s : tuple(s.split('=')), args.mapping)))
File "/home/tullsen/src/3rd/BOPC/source/mark.py", line 940, in mark_candidate
nx.set_node_attributes(self.__rg, 'immutable', {'__r%d' % vr:1})
File "/home/tullsen/.virtualenvs/bopc1/local/lib/python2.7/site-packages/networkx/classes/function.py", line 654, in set_node_attributes
G.nodes[n][name] = values
TypeError: unhashable type: 'dict'
Metadata
Metadata
Assignees
Labels
No labels