Implementing a memory scanner in python
You should check if ReadProcessMemory fails (returns 0)
parse sys.argv only once
read bigger chunks of memory in a row into an efficient array
best use numpy for search  (or at least array.array)


Key lines using numpy:

import numpy as np

match_val = int(sys.argv[1])
a = np.zeros(4096, 'l')     # chunk size; should be even bigger ..
r = ReadProcessMemory(ph, chunk_start_adr, a.ctypes.data, 
                      a.itemsize * a.size, c.byref(bytesRead))
if r:
    indices, = np.where(a == match_val)   # fast bulk search
    log.write(''.join('%x\r\n' % i for i in indices))


It will be lightning fast.