Exemple #1
0
def make_message() -> bytes:
    pub_header = PublicHeader()
    pub_header.protocol_version = bytes(VERSION, 'ascii')
    pub_header.packet_number = 1
    pub_header.connection_id = random.randint(0, 0xffffffffffffffff)

    chlo_msg = handshake.Message()
    chlo_msg.tag = b'CHLO'
    chlo_msg.tags = tags.Container({
        'VER': VERSION, 'PDMD': 'X509',
        'PAD': b'\x00' * 1000
    })
    chlo_msg_buff = chlo_msg.to_bytes()

    stream_header = StreamFrameHeader()
    stream_header.id = 1
    stream_header.has_data_length = True
    stream_header.data_length = len(chlo_msg_buff)
    # TODO: infer id length from id field.
    stream_header.id_length = 1

    pub_header_buff = pub_header.to_bytes()
    stream_header_buff = stream_header.to_bytes()
    padding = b'\x00' * (1300 - (len(pub_header_buff) + 12 \
        + len(stream_header_buff) + len(chlo_msg_buff)))
    packet_hash = fnv.hash(pub_header_buff + stream_header_buff + chlo_msg_buff + padding)

    return pub_header_buff + packet_hash.to_bytes(16, byteorder='little')[:12] \
        + stream_header_buff + chlo_msg_buff + padding
Exemple #2
0
def make_message() -> bytes:
    pub_header = PublicHeader()
    pub_header.protocol_version = bytes(VERSION, 'ascii')
    pub_header.packet_number = 1
    pub_header.connection_id = random.randint(0, 0xffffffffffffffff)

    chlo_msg = handshake.Message()
    chlo_msg.tag = b'CHLO'
    chlo_msg.tags = tags.Container({
        'VER': VERSION,
        'PDMD': 'X509',
        'PAD': b'\x00' * 1000
    })
    chlo_msg_buff = chlo_msg.to_bytes()

    stream_header = StreamFrameHeader()
    stream_header.id = 1
    stream_header.has_data_length = True
    stream_header.data_length = len(chlo_msg_buff)
    # TODO: infer id length from id field.
    stream_header.id_length = 1

    pub_header_buff = pub_header.to_bytes()
    stream_header_buff = stream_header.to_bytes()
    padding = b'\x00' * (1300 - (len(pub_header_buff) + 12 \
        + len(stream_header_buff) + len(chlo_msg_buff)))
    packet_hash = fnv.hash(pub_header_buff + stream_header_buff +
                           chlo_msg_buff + padding)

    return pub_header_buff + packet_hash.to_bytes(16, byteorder='little')[:12] \
        + stream_header_buff + chlo_msg_buff + padding
    def get_index_of_word(self, word):
        hash = None

        if (word in self.dict):
            hash = self.dict[word]

        else:
            hash_input_int = fnv.hash(word.encode('utf-8'), bits=64)
            hash = (self.a * hash_input_int + self.b) % self.p
            self.dict[word] = hash

        return hash
Exemple #4
0
    def calc_packet_hash(self) -> int:
        """Calculates packet hash.

        FNV-1a algorithm is used to hash the packet content.

        Returns:
            96 bit packet hash.
        """
        self._ensure_packet_hash_offset_is_set()
        without_hash = bytes_excluded(self.data, self.packet_hash_offset,
                                      PACKET_HASH_SIZE)
        return fnv.ensure_bits_count(fnv.hash(without_hash),
                                     PACKET_HASH_SIZE * 8)
Exemple #5
0
    def calc_packet_hash(self) -> int:
        """Calculates packet hash.

        FNV-1a algorithm is used to hash the packet content.

        Returns:
            96 bit packet hash.
        """
        self._ensure_packet_hash_offset_is_set()
        without_hash = bytes_excluded(self.data, self.packet_hash_offset,
            PACKET_HASH_SIZE)
        return fnv.ensure_bits_count(
            fnv.hash(without_hash), PACKET_HASH_SIZE * 8)
Exemple #6
0
def fnv1Hash(file):
    total = 0
    count = 0
    with open(file, "r", encoding='utf-8') as f:
        for line in f:
            if (line[0] == 'Q'):
                x = fnv.hash(line.encode(), algorithm=fnv.fnv, bits=64)
                binVal = str(format(x, '#010b'))
                binVal = binVal.replace('0b', "")
                binVal = binVal.split('1')
                if (binVal[-1] != ''):
                    total += pow(2, len(binVal[-1]))
                count += 1
    return ([total, count])
Exemple #7
0
def main(json_file):
    hashes = [
        0x3944AA7E,
        0x7EA69E72,
        0xDBA7A248,
        0x57FF1EA4,
        0x71948CA4,
    ]

    names = json.load(open(json_file, "r"))
    for i in names:
        n = i["name"] if i["name"] != "None" else i["orig-name"]
        if n != "None" and n is not None:
            # s = fnv.hash(n[2:].encode("ascii") + b"\x00", algorithm=fnv.fnv_1a, bits=32)
            s1 = fnv.hash(n[2:].encode("ascii"), algorithm=fnv.fnv_1a, bits=32)
            if s1 in hashes:
                print("%s: 0x%X" % (n, s1))
Exemple #8
0
 def _hash(x):
     return fnv.hash(str.encode(x)) % num_bucket
Exemple #9
0
 def _hash(self, word):
     return fnv.hash(str.encode(word)) % self.length
Exemple #10
0
def hash_function(a, b, word):
    encoded_word = fnv.hash(word.encode("utf-8"), bits=64)
    hf = (a * encoded_word + b) % p
    return hf
Exemple #11
0
        def it_returns_the_calculated_hash_for_specified_data():
            data = b'\x01\x02\x03\x04'

            assert_that(fnv.hash(data, algorithm=fnv.fnv_1a),
                        is_(136442159731806137627837275212626352805))
Exemple #12
0
p=ayy[:,0:21]
z=ayy[:,1:21]
for i in range(len(x)):
    train.append(x[i])

for i in range(len(z)):
    test.append(z[i])

BFM=[0]*2381

for i in range(len(train)):
    y=xxhash.xxh32()
    y.update(str(train[i]))
    h1=y.intdigest()%794
    h2=m.hash(str(train[i]))%794
    h3=(fnv.hash(train[i],algorithm=fnv.fnv_1a,bits=64))%793
    BFM[h1]=1
    BFM[h2+794]=1
    BFM[h3+1588]=1

ds=open("outputBFM.csv","w")
ds.write("NAME,MALWARE,BEGING\n")
for i in range(len(test)):
    mal=0
    ben=0
    y=xxhash.xxh32()
    y.update(str(test[i]))
    h1=y.intdigest()%794
    h2=m.hash(str(test[i]))%794
    h3=(fnv.hash(test[i],algorithm=fnv.fnv_1a,bits=64))%793
    if(BFM[h1]==1 and BFM[h2+794]==1 and BFM[h3+1588]==1):
Exemple #13
0
def _hash(word):
    return fnv.hash(str.encode(word)) % 10000000
Exemple #14
0
 def hash(self, bits=32):
     return fnv.hash(self.name, algorithm=fnv.fnv_1a, bits=bits)
Exemple #15
0
 def ngram2Vector(self, ngram, model):
     id = fnv.hash(str.encode(ngram)) % model.shape[0]
     return model[id]
Exemple #16
0
 def ngram2Vector(self, ngram):
     id = fnv.hash(str.encode(ngram)) % self.fasttext_model_ngram.shape[0]
     return self.fasttext_model_ngram[id]
Exemple #17
0
def get_task(client, table, owner_id, project, task_id):
    suffix = "{:04X}".format(
        fnv.hash(task_id.encode(), algorithm=fnv.fnv_1a, bits=32) % 0x10000)
    upa = "{}:{}:{}:{}".format(owner_id, project,
                               task_id.split('-')[0], suffix)
    return get_row(client, table, {"UPA": upa, "TaskID": task_id})
Exemple #18
0
        def it_allows_to_specify_hash_size_in_bits():
            data = b'\x01\x02\x03\x04'

            assert_that(fnv.hash(data, algorithm=fnv.fnv_1a, bits=64),
                        is_(13725386680924731485))