[panda-users] Get PANDA to monitor a particular memory range?

Brendan Dolan-Gavitt brendandg at nyu.edu
Sat May 21 17:45:27 EDT 2016


Great, thanks for the writeup! One note is that we recently introduced
a -os command line option that lets you avoid some of the verbosity of
the OSI stuff. So I think you should be able to write your asidstory
command line as:

~/panda/qemu/x86_64-softmmu/qemu-system-x86_64 -replay notepad -os
windows-32-7 -panda asidstory -m 2048 >/dev/null

Glad you got it working!

-Brendan

On Sat, May 21, 2016 at 5:56 PM, Bridgey theGeek
<bridgeythegeek at gmail.com> wrote:
> Awesome! Thanks Brendan =)
>
> To avoid a denvercoder9* situation, here's how I did it:
>
> $ ~/panda/qemu/x86_64-softmmu/qemu-system-x86_64 -replay notepad -panda osi
> -panda win7x86intro -panda asidstory -m 2048 >/dev/null
> (The output to /dev/null is just to speed it up a little; I'm going to
> review the output later anyway.)
>
> In a different terminal, I watched the progress of this operation with:
> $ watch tail asidstory
>
> Once it'd finished:
> $ grep Count asidstory && grep notepad asidstory
>      Count   Pid        Name              Asid       First            Last
>       1136  2392     notepad          7f8f72c0   373716596  ->  1741620197
>    notepad : [                  ########  #    #   #   ##  # #  #  #    ###
> ##### # ####  ###### ##]
>
> So my Asid is: 7f8f72c0
>
> I'm monitoring at offset 0x30e108, for 576 (0x240) bytes in the Asid found
> above:
> $ echo 30e108 240 7f8f72c0 >search_buffers.txt
>
> Then run bufmon:
> $ ~/panda/qemu/x86_64-softmmu/qemu-system-x86_64 -replay notepad -panda
> callstack_instr -panda bufmon -m 2048
>
> And finally,
> $ head -1 buffer_taps.txt
> WRITE 416590000 0000000077845d5a 0000000077846600 000000007f8f72c0
> 000000000030e107 0000000000000001 00
>
> Thanks,
> Adam
>
> * https://xkcd.com/979/
>
> On 21 May 2016 at 16:20, Brendan Dolan-Gavitt <brendandg at nyu.edu> wrote:
>>
>> Sure, have a look at bufmon:
>>
>>
>> https://github.com/moyix/panda/blob/master/qemu/panda_plugins/bufmon/USAGE.md
>>
>> You will need to know how to get the address space identifier (i.e.
>> CR3) of the process you're interested in, though. Something like
>> asidstory can help with that.
>>
>> -Brendan
>>
>> On Sat, May 21, 2016 at 5:09 PM, Bridgey theGeek
>> <bridgeythegeek at gmail.com> wrote:
>> > Hi PANDAs,
>> >
>> > I'm trying to come up with a process where I can observe the changes to
>> > a
>> > specific virtual address range of a specific process's memory.
>> >
>> > For example: In Win7SP1x86, I have process app.exe with a pid of 1200,
>> > and I
>> > want to see what changes in the 512 byte range from 0x005e0000 to
>> > 0x005e01ff
>> > of that process's virtual memory during the recording I made.
>> >
>> > I've read around tapindex/memdump, but that doesn't seem to quite do
>> > what I
>> > want.
>> > memsavep and memsnap aren't quite right either.
>> >
>> > Is there a way of doing this with PANDA? Might I be into the realm of
>> > writing my own plugin?
>> >
>> > Thanks!
>> > Adam
>> >
>> > _______________________________________________
>> > panda-users mailing list
>> > panda-users at mit.edu
>> > http://mailman.mit.edu/mailman/listinfo/panda-users
>> >
>>
>>
>>
>> --
>> Brendan Dolan-Gavitt
>> Assistant Professor, Department of Computer Science and Engineering
>> NYU Tandon School of Engineering
>
>
>
> _______________________________________________
> panda-users mailing list
> panda-users at mit.edu
> http://mailman.mit.edu/mailman/listinfo/panda-users
>



-- 
Brendan Dolan-Gavitt
Assistant Professor, Department of Computer Science and Engineering
NYU Tandon School of Engineering


More information about the panda-users mailing list