Ejemplo n.º 1
0
from rabin import Rabin, get_file_fingerprints, set_min_block_size, set_max_block_size, set_average_block_size

TARGET = 'test.bin'

filesizeM = 10
Mb = 1024 * 1024

os.system("dd if=/dev/urandom of=%s bs=%d count=%d" % (TARGET, Mb, filesizeM))
random.seed(open(TARGET, 'rb').read(1024))

set_min_block_size(1024)
set_max_block_size(2048)
set_average_block_size(1024)

r = Rabin()

before = get_file_fingerprints(TARGET)
f = open(TARGET, 'rb+')
data = f.read(int(filesizeM / 2 * Mb))
r.update(data)
r.update(b'x')
data = f.read()
r.update(data)
after = r.fingerprints()

assert len(before) <= len(after)

diffcount = 0
for i in range(len(before)):
    try:
Ejemplo n.º 2
0
from rabin import Rabin
from common import get_args, sys

## sample file
import os
SAMPLE_FILE = os.path.join((os.path.abspath(os.path.dirname(__file__))), '..',
                           'sample.txt')

if __name__ == '__main__':
    text, to_find = get_args(sys.argv[1:])

    r = Rabin(to_find, text)
    r.search(use_rabin_fingerprint=True)

    if r.result:
        print("Pattern '{}' found at positions {}".format(to_find, r.result))
    else:
        print("No match found for pattern '{}'".format(to_find))