Finding a text in raw data(size nearly 10GB) and Printing its memory address using python

Hac4u samakshkaushik at gmail.com
Mon Apr 23 17:07:19 EDT 2018


On Tuesday, April 24, 2018 at 1:28:07 AM UTC+5:30, Paul Rubin wrote:
> Hac4u <samakshkaushik at gmail.com> writes:
> > I have a raw data of size nearly 10GB. I would like to find a text
> > string and print the memory address at which it is stored.
> 
> The simplest way is probably to mmap the file and use mmap.find:
> 
> https://docs.python.org/2/library/mmap.html#mmap.mmap.find

Thanks alot Buddy,

And yea I will try to convert it in mmap..

Ur code helped alot. But I have few doubts 
1. What is the use of overlap.
2. Ur code does not end..Like it does break even after searching through the entire file.


Bdw, I modified your code.. 




import os
import re
filename="E:/bitdefender/test.vmem"
read_data=2**24
offset=0
chunk_start=0
searchtext=b"bd:mongo:"
search_length=len(searchtext)
overlap_length = search_length - 1 
he=searchtext.encode('hex')
with open(filename, 'rb') as f:
	while True:
		data= f.read(read_data)
		if not data:
			break
		while True:
			offset=data.find(searchtext,offset)
			# print offset
			if offset < 0:
				break
			print "Found at",hex(chunk_start+offset)
			offset+=search_length

		chunk_start += len(data)  
		data=data[read_data:]     
		offset=0		
		











More information about the Python-list mailing list