Hi George,
On Wed, Jan 9, 2013 at 6:29 PM, George M. Garner Jr.
<ggarner_online(a)gmgsystemsinc.com> wrote:
 Moonsols Community Edition appears to support a "/s" option which will
 generate a cryptographic checksum which may be compared to the actual
 checksum of the output file.  While it is true, as you say, that
 cryptographic checksums will not detect tampering which occurred prior to
 the checksum's creation, adding the "/s" option should detect all of the
 kernel mode attacks which you document.  It will force you to attack along
 the read path (NtMapViewOfSection, MmMapIoSpace and MmMapMemoryDumpMdl) or
 else to fake both the content and the checksum. I am assuming that Matthieu
 is generating the checksum before writing the data to disk and not from the
 output file after it has been written.  +1 for Matthieu (maybe). 
Unfortunately, that's not the case:(
The reason is that the checksum is calculated on the buffer *after* it
has been written to the file (basically the next call after
ZwWriteFile).
When Dementia is used, checksum of the dump created by win32dd equals
to the one printed out in the console.
Matthieu, what do you think about making the checksum before writing
the buffer to dump?
Cheers,
Luka