xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Cutter 409 <cutter409@gmail.com>
To: Tim Deegan <tim@xen.org>
Cc: Aravindh Puthiyaparambil <aravindh@virtuata.com>,
	xen-devel@lists.xensource.com
Subject: Re: (no subject)
Date: Mon, 22 Apr 2013 17:56:04 -0400	[thread overview]
Message-ID: <CAG4Ohu8537Kh1bsBMqvXKf0r=kqcE0ospW_Z+E=HBS+YX48rRQ@mail.gmail.com> (raw)
In-Reply-To: <20121115120836.GA75988@ocelot.phlegethon.org>


[-- Attachment #1.1: Type: text/plain, Size: 3206 bytes --]

Hi,

I'm finally to a point where I can start looking at this more closely. I'm
trying to wrap my head around the shadow code to figure out the right
course of action.

I'd want HVMOP_set_mem_access to work with both shadow and EPT, so I'd want
things to work via p2m somehow. I think I understand this part.

* HVMOP_set_mem_access is used to change the p2m_access_t for the target
page(s). This should already be implemented I think?
* During propagation, I'll check the p2m map to see if I should mask off
any permission bits.
* On a shadow paging fault, I'll check if the fault was caused by p2m
permissions, somehow integrating that with the code for read-only guest
page tables safely.

Questions:

* Just for background, am I correct in my understanding that the log_dirty
code is used to track which gfns have been written to by the guest, in
order to speed up migration?
* Are multiple shadow tables maintained per domain? Is there one per VCPU?
One shadow table per guest page table? Is it blown away every time the
guest changes CR3? I'm having some trouble tracking this down.
* How should I clear/update existing shadow entries after changing the
p2m_access_t? Can I clear the shadow tables somehow and force everything to
be repopulated? Is that insane?

Thanks!



On Thu, Nov 15, 2012 at 7:08 AM, Tim Deegan <tim@xen.org> wrote:

> Bcc: Tim Deegan <tjd-xen@phlegethon.org>
> Subject: Re: [Xen-devel] Guest memory access hooking
> Reply-To:
> In-Reply-To: <
> CAG4Ohu_p-vVF9ZS01PeMqHvscCrrO+UDawK-noaaP8k+MuqHrQ@mail.gmail.com>
>
> Hi,
>
> At 10:56 -0500 on 13 Nov (1352804161), Cutter 409 wrote:
> > I'm trying to do some research with malware, and I'm trying to get
> > notifications on arbitrary guest page accesses (similar to what Ether
> > does.) I've noticed the mem-event API and it seems like it might be close
> > to what I need, but I can't find much documentation about how it works or
> > how to use it.
>
> Yes, the mem-event api, and in particular the HVMOP_set_mem_access
> hypercall, looks like what you want.  As you say, there isn't much
> documentation for it, except the xen-access.c client and the mailing
> list archive.
>
> CC'ing Aravindh, who has worked on this code most recently and might be
> able to help with specific questions.
>
> > I know that that mem-event API works only with EPT, but is the code to
> > change permissions modifying the guest page tables, or does it work via
> > EPT? (Can the guest detect it?)
>
> It works by EPT.  The guest can't detect it by looking at its pagetables
> or page fault patterns, though it might be able to detect it by looking
> at timings.
>
> > I'm also interested monitoring arbitrary page access via the shadow page
> > tables. I've been reading through the code, but if anyone has any insight
> > or some kind of push in the right direction, I'd really appreciate it.
>
> Your best bet is to modify _sh_propagate.  Look at how it handles
> shadow_mode_log_dirty() -- any time a writeable mapping is shadowed, the
> shadow PTE is made read-only until the guest is actually doing a write,
> then mark_dirty can be called.  You should be able to do the same thing
> for other kinds of access.
>
> Cheers,
>
> Tim.
>

[-- Attachment #1.2: Type: text/html, Size: 4078 bytes --]

[-- Attachment #2: Type: text/plain, Size: 126 bytes --]

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  parent reply	other threads:[~2013-04-22 21:56 UTC|newest]

Thread overview: 147+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-15 12:08 (no subject) Tim Deegan
2012-11-15 23:04 ` Aravindh Puthiyaparambil
2013-04-22 21:56 ` Cutter 409 [this message]
2013-04-23  8:49   ` Tim Deegan
  -- strict thread matches above, loose matches on Subject: below --
2018-11-19 17:26 Razvan Cojocaru
2018-11-19 17:34 ` Razvan Cojocaru
2017-11-15 15:29 futurelieswithin
2017-08-25  5:16 Chao Gao
2017-07-28  5:27 Manonmani
2017-07-26 19:04 Raviprasad Gurikar
2017-04-04 11:29 Seraphime Kirkovski
2017-02-27 18:12 Dmitry Rockosov
2017-03-06 10:48 ` George Dunlap
2017-02-17 17:17 dhara buch
2017-02-20 17:56 ` Dario Faggioli
2017-02-17 10:47 Norbert Manthey
2017-02-17 11:35 ` Andrew Cooper
     [not found] <1484304406-10820-2-git-send-email-nicolas.dichtel@6wind.com>
     [not found] ` <3131144.4Ej3KFWRbz@wuerfel>
     [not found]   ` <1484304406-10820-1-git-send-email-nicolas.dichtel@6wind.com>
2017-01-13 15:36     ` David Howells
2017-01-13 15:43     ` David Howells
2016-12-29  0:56 Ronald Rojas
2017-01-04  1:10 ` Stefano Stabellini
2016-11-28 17:18 Ronald Rojas
2016-07-16 11:51 姚 忠将
2016-07-07  9:36 George Dunlap
2016-07-07 11:03 ` Dario Faggioli
2016-07-07 12:48   ` George Dunlap
2016-07-07 15:42     ` Dario Faggioli
2016-10-31 10:33     ` Ian Jackson
2016-05-19 14:34 Roger Pau Monné
2016-03-17 12:20 Safa Hamza
2016-03-18 11:34 ` Safa Hamza
2016-02-25 12:38 Ayushi Arora
2015-12-07 17:27 Ian Jackson
2015-08-05 13:27 [RFC PATCH v3.1 2/2] xsplice: Add hook for build_id Martin Pohlack
2015-08-05 14:06 ` (no subject) Martin Pohlack
2015-01-06 17:17 Konrad Rzeszutek Wilk
2014-12-19  9:53 Minalkumar Patel
2014-12-19  9:59 ` Ian Campbell
2014-02-13 23:47 Zir Blazer
2014-02-13 16:01 Simon Martin
2014-02-13 16:10 ` Andrew Cooper
2014-02-13 17:27   ` Don Slutz
2013-12-31 15:15 Konrad Rzeszutek Wilk
2013-12-17 18:35 Ian Jackson
2013-12-18 11:19 ` George Dunlap
2013-12-18 13:35   ` Ian Campbell
2014-01-07 13:55     ` Ian Campbell
2013-12-15  7:58 Adel Amani
2013-11-13 19:02 Jim Durand
2013-11-18 14:17 ` George Dunlap
2013-09-13 16:59 David Vrabel
2013-08-14  2:28 yvxiang
2013-08-14  2:31 ` yvxiang
2013-08-14  2:57 ` agya naila
2013-07-04 11:32 Tim Deegan
2013-06-28 16:10 ` [PATCH 08/10] xen: arm: add scope to dsb and dmb macros Ian Campbell
2013-07-04 11:44   ` (no subject) Tim Deegan
2013-06-26 11:42 Divya Kapil
2013-06-26 11:54 ` Ian Campbell
2013-06-16 13:45 wei.liu2
2013-05-14 15:11 Feng Tang
2013-05-03  8:48 Lars Kurth
2013-04-21 22:26 Lonnie Cumberland
     [not found] <CAHyyzzTtK+LbxOh2r_X0=Zd2FsTxoAiLLaWahv5FY-QZnQxhLQ@mail.gmail.com>
     [not found] ` <CAHyyzzSO0vY3LquDjXVAeV3U9sLnAY28+iADzsOLFkMGcJHLOQ@mail.gmail.com>
     [not found]   ` <CAHyyzzSDqmBNWmyRKFijei8YrJD5i40AJ9mcxxnme9CeCLZX2g@mail.gmail.com>
     [not found]     ` <CAHyyzzQcjzeWv-Z6SBOb8Ra0u6BOMzjKV3Ze482rMmMHkAMccw@mail.gmail.com>
     [not found]       ` <CAHyyzzQsh30y7-4M1xmJc+8p-EcqS0+jaibpTrXxTQi92iGDgw@mail.gmail.com>
2013-04-10 15:28         ` jacek burghardt
2013-04-10  6:57 Mina Jafari
2013-03-15  7:40 digvijay chauhan
2013-03-15  9:59 ` Ian Campbell
2013-03-15 11:18 ` Pasi Kärkkäinen
2013-01-08 21:51 Rushikesh Jadhav
2012-07-27 23:02 lmw
2012-07-14  4:16 张智
2012-07-19 10:24 ` Tim Deegan
2012-04-15  6:09 Lin Ming
2012-04-05 18:26 Francisco Rocha
2012-04-05 19:36 ` Wei Huang
2012-04-05 20:17   ` Francisco Rocha
2012-04-05 20:27     ` Wei Huang
2012-04-05 20:43       ` Francisco Rocha
2012-04-06 14:53         ` Francisco Rocha
2012-04-06 14:51           ` Wei Huang
2012-04-06 15:02             ` Francisco Rocha
2012-04-06 15:14             ` Konrad Rzeszutek Wilk
2012-04-06 16:09               ` Francisco Rocha
2012-02-24 18:54 Ian Jackson
2012-02-17 19:15 Ian Jackson
2011-10-17  7:40 Paolo Bonzini
2011-10-17 17:05 ` Konrad Rzeszutek Wilk
2011-10-17 21:02   ` Ian Campbell
2011-10-18  7:13   ` Paolo Bonzini
2011-10-06 13:11 Pratik shinde
2011-10-06 13:18 ` Andrew Cooper
2011-07-27  8:33 Grant McWilliams
2011-06-21  3:39 Attila Jecs
2011-06-21 13:20 ` Konrad Rzeszutek Wilk
2011-04-04  6:18 Novik, Alex
2011-03-20 22:27 Keshav Darak
2010-11-16 11:12 Ken Ash
2010-10-07  2:46 Mike Viau
2010-10-07 10:43 ` Stefano Stabellini
2010-10-07 13:43   ` George Shuklin
2010-10-07 14:21     ` Ian Campbell
2010-10-07 16:54       ` George Shuklin
2010-10-07 14:02 ` Ian Campbell
2010-04-16 10:59 Jiang, Yunhong
2009-10-09 21:47 Eads, Joshua Michael (S&T-Student)
2009-01-23  6:45 Alexia Benington
2008-11-19 22:29 Bowen, Clair
2008-11-19 22:36 ` James Harper
2008-10-10 12:27 Swapna Shingre
2008-09-18  7:10 James Song
2007-06-11 10:35 Gautham Kampalapur Shankar, TLS, Chennai
2007-06-11 10:53 ` pradeep singh rautela
2006-10-09 11:55 Timo Benk
2006-07-17 14:44 Li, Xin B
2006-06-07 23:48 vineet chadha
2006-06-02 13:23 Kevin Tronkowski
2006-04-06 22:26 Nivedita Singhvi
2006-02-10  8:55 Li, Xin B
2005-11-19 22:44 Purav Saraiya
2005-10-02  2:59 Prashanth Radhakrishnan
2005-09-29  5:55 Li, Chengyuan
2005-09-23 19:07 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-24  0:28 ` Christian Limpach
2005-09-21 20:49 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 20:52 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 21:18 ` Christian Limpach
2005-09-19 19:20 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 19:58 ` Christian Limpach
2005-09-19 16:57 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 16:49 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 17:39 ` Christian Limpach
2005-09-19 15:29 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 16:09 ` Christian Limpach
2005-09-19 13:43 Magenheimer, Dan (HP Labs Fort Collins)
2005-09-19 14:18 ` Christian Limpach
2005-09-19 14:30 ` Jerone Young
2005-09-19 15:34   ` Mark Williamson
2005-07-05 22:54 Igor Feoktistov
2005-06-26  3:26 Reiner Sailer
2005-04-28  4:11 田冠华
2005-04-28  4:10 田冠华
2005-04-18 16:43 tarawa1943
2005-04-18 17:07 ` Keir Fraser
2005-01-22 16:20 Ian Pratt
2005-01-21 17:38 Adam Heath
2005-01-21 17:35 Adam Heath
2004-12-31 15:43 M.A. Williamson
2004-08-20 12:09 James Harper
2004-04-19  7:27 Jan van Rensburg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAG4Ohu8537Kh1bsBMqvXKf0r=kqcE0ospW_Z+E=HBS+YX48rRQ@mail.gmail.com' \
    --to=cutter409@gmail.com \
    --cc=aravindh@virtuata.com \
    --cc=tim@xen.org \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).