From mboxrd@z Thu Jan 1 00:00:00 1970 From: machi1271 Subject: Modify cr0 at dom0 Date: Fri, 17 Oct 2014 09:47:54 +0800 Message-ID: <201410170947517919470@gmail.com> Reply-To: machi1271 Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5173169215951380575==" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --===============5173169215951380575== Content-Type: multipart/alternative; boundary="----=_001_NextPart537484072403_=----" This is a multi-part message in MIME format. ------=_001_NextPart537484072403_=---- Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 aGksDQpCYWNrZ3JvdW5kOg0KSSB3YW50IHRvIGhvb2sgdGhlIHN5c2NhbGxzIGZvciBkb20wLiBT bywgSSBnZXQgdGhlIHN5c2NhbGxfZW50ZXIgYWRkcmVzcyBieSBjYWxsaW5nIEhZUEVSVklTT1Jf ZG9tY3RsLCB3aXRoIHhlbl9kb21jdGwuY21kID0gWEVOX0RPTUNUTF9nZXR2Y3B1Y29udGV4dC4N ClRoZSByZXR1cm5lZCBjdHguc3lzY2FsbF9jYWxsYmFja19laXAgaXMgY29ycmVjdCwgYW5kIEkg ZmluZCB0aGUgc3lzY2FsbF90YWJsZSBhZGRyZXNzIGZyb20gdGhlIHN5c2NhbGxfY2FsbGJhY2tf ZWlwLg0KTm93LCBteSB0YXJnZXQgaXMgdG8gbW9kaWZ5IHRoZSBvcmlnaW5hbCBzeXNjYWxsX3Rh YmxlLCBhbmQgSSBrbm93IEkgc2hvdWxkIGNsZWFyIHRoZSBDUjAuV1AgYml0IGJlZm9yZSBtb2Rp ZnkuDQoNCkhvd2V2ZXIsIHdoZW4gSSB0cnkgdG8gc2V0IGNyMCBiYWNrIHRvIGh5cGVydmlzb3Ig YWZ0ZXIgdGhlIGNyMC5XUCBiZWluZyBjbGVhcmVkIHRocm91Z2ggSFlQRVJWSVNPUl9kb21jdGwo d2l0aCB4ZW5fZG9tY3RsLmNtZCA9IFhFTl9ET01DVExfc2V0dmNwdWNvbnRleHQpLCANCmRvbTAg REVBRC4gDQoNCkkgdHJhY2VkIGludG8gdGhlIGh5cGVyY2FsbCwgYW5kIEkgZmluZCB0aGUgcHJv Z3JhbSBkZWFkIGluIHRoZSBmb2xsb3dpbmcgd2hpbGUgbG9vcDoNCnZvaWQgdmNwdV9zbGVlcF9z eW5jKHN0cnVjdCB2Y3B1ICp2KQ0Kew0KICAgIHZjcHVfc2xlZXBfbm9zeW5jKHYpOw0KDQogICAg d2hpbGUgKCAhdmNwdV9ydW5uYWJsZSh2KSAmJiB2LT5pc19ydW5uaW5nICkNCiAgICAgICAgY3B1 X3JlbGF4KCk7DQoNCiAgICBzeW5jX3ZjcHVfZXhlY3N0YXRlKHYpOw0KfQ0KaW4gZG9tYWluX3Bh dXNlLg0KDQpXaHk/IElzIENhbGxpbmcgWEVOX0RPTUNUTF9zZXR2Y3B1Y29udGV4dCBmcm9tIGRv bTAgbm90IGFsbG93ZWQ/IE9yLCBpcyB0aGVyZSBhbm90aGVyIHdheSB0byBtYWtlIHRoZSBtZW1v cnkgYXJlYSBwcm90ZWN0ZWQgYnkgV1AgdG8gYmUgd3JpdGFibGU/DQoNCkkgYW0gcnVubmluZyBt eSBjb2RlIG9uIDIuNi4xOC0xOTQuZWw1eGVuLiwgbm8gZG9tYWluIGlzIHJ1bm5pbmcgZXhjZXB0 IGRvbTAuDQoNClJlZ2FyZHN+DQoNCg0KDQoNCm1hY2hpMTI3MQ== ------=_001_NextPart537484072403_=---- Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable
hi,
Background:
I want to hook the syscalls for dom0. So, = I get=20 the syscall_enter address by calling HYPERVISOR_domctl, with xen_domctl.cm= d =3D=20 XEN_DOMCTL_getvcpucontext.
The returned ctx.syscall_callback_eip is c= orrect,=20 and I find the syscall_table address from the syscall_callback_eip.
Now, my target is to modify the original=20 syscall_table, and I know I should clear the CR0.WP bit before modify.
 
However, when I try to set cr0 back to hyp= ervisor=20 after the cr0.WP being cleared through HYPERVISOR_domctl(with xen_domctl.c= md =3D=20 XEN_DOMCTL_setvcpucontext),
dom0 DEAD.
 
I traced into the hypercall, and I find=20 the program dead in the following while loop:
void vcpu_sleep_sync(struct vcpu *v)
{
    vcpu_sleep_nosync(v);
 
    while ( !vcpu_runnable(v) &= ;& v->is_running )
        cpu_relax();
 
    sync_vcpu_execstate(v);
}
in domain_pause.
 
Why? Is Calling XEN_DOMCTL_setvcpucon= text=20 from dom0 not allowed? Or, is there another way to make the memory area=20 protected by WP to be writable?
 
I am running my code on 2.6.18-194.el5xen.= , no=20 domain is running except dom0.
 
Regards~
 

machi1271
------=_001_NextPart537484072403_=------ --===============5173169215951380575== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============5173169215951380575==--