Skip to content
This repository was archived by the owner on Mar 4, 2025. It is now read-only.
This repository was archived by the owner on Mar 4, 2025. It is now read-only.

TypeError: unhashable type: 'dict' #5

@mtullsen

Description

@mtullsen

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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions