首页 > 其他分享 >pt_regs结构

pt_regs结构

时间:2023-04-25 11:01:09浏览次数:38  
标签:pt int regs long 寄存器 edx pushl 结构


struct pt_regs { 

long ebx;                  //可执行文件路径的指针(regs.ebx中 

long ecx;                  //命令行参数的指针(regs.ecx中) 

long edx;                  //环境变量的指针(regs.edx中)。 

long esi; 

long edi; 

long ebp; 

long eax; 

int xds; 

int xes; 

long orig_eax; 

long eip; 

int xcs; 

long eflags; 

long esp; 

int xss; 

};


该 参数描述了在执行该系统调用时,用户态下的CPU寄存器在核心态的栈中的保存情况。通过这个参数,sys_execve能获得保存在用户空间的以下信息: 可执行文件路径的指针(regs.ebx中)、命令行参数的指针(regs.ecx中)和环境变量的指针(regs.edx中)。

/* this struct defines the way the registers are stored on the 
 24    stack during a system call. */
 25 
 26 struct pt_regs {
 27         long ebx;
 28         long ecx;
 29         long edx;
 30         long esi;
 31         long edi;
 32         long ebp;
 33         long eax;
 34         int  xds;
 35         int  xes;
 36         long orig_eax;
 37         long eip;
 38         int  xcs;
 39         long eflags;
 40         long esp;
 41         int  xss;
 42 };



《understanding the linux kernel》中说 struct pt_regs中前9个是存放通过SAVE_ALL压入的寄存器值。 orig_eax存放的是IRQ number. 后面的几个是处理器自动压入的寄存器值。

我不明白的是: xds xes xcs xss等是什么寄存器? 他们与edx ecs 等有什么区别? 而且类型还不一样。
哪位能解释一下。



答:是段寄存器,类型其实是一样的

保存断点现场:在内核栈中保存中断处理程序将要用到的所有cpu寄存器的内容叫保护断点现场。这时调用宏SAVE_ALL来完成的。

#define SAVE_ALL 
  cld; 
 pushl %es; 
 pushl %ds; 
 pushl %eax; 
 pushl %ebp; 
 pushl %edi; 
 pushl %esi; 
 pushl %edx; 
 pushl %ecx; 
 pushl %ebx; 
 movl $(__KERNEL_DS),%edx; 
 movl %dx,%ds; 
 movl %dx,%es;

注意到这个宏没有保存EFLAGS,CS,EIP,SS和ESP寄存器,原因是这些寄存器在CPU响应中断是已被cpu自动保存了。在宏的最后,把内核数据段的选择符装入ds和es段寄存器


答:是段寄存器,类型其实是一样的

保存断点现场:在内核栈中保存中断处理程序将要用到的所有cpu寄存器的内容叫保护断点现场。这时调用宏SAVE_ALL来完成的。

#define SAVE_ALL 
  cld; 
 pushl %es; 
 pushl %ds; 
 pushl %eax; 
 pushl %ebp; 
 pushl %edi; 
 pushl %esi; 
 pushl %edx; 
 pushl %ecx; 
 pushl %ebx; 
 movl $(__KERNEL_DS),%edx; 
 movl %dx,%ds; 
 movl %dx,%es;

注意到这个宏没有保存EFLAGS,CS,EIP,SS和ESP寄存器,原因是这些寄存器在CPU响应中断是已被cpu自动保存了。在宏的最后,把内核数据段的选择符装入ds和es段寄存器

标签:pt,int,regs,long,寄存器,edx,pushl,结构
From: https://blog.51cto.com/u_16087831/6223596

相关文章

  • JavaScript回调函数
    一种场景js需要等待一个函数执行完后再执行另一个函数或者其他的操作。本编以最简单的例子来说明回调函数的执行过程。回调函数备注上就是以函数对象作为参数进行传递。demo<!DOCTYPEhtml><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>......
  • use a script run by gromacs to analysis protein protein complex dynamic
    usinggromacstowriteascriptforprotein-proteincomplexmoleculerdynamicsfromforcefieldselectiontotrajectoryanalyzestepbystep,andgiveannotationtoeachlineGROMACSisapowerful moleculardynamicssoftwarepackage usedforsimulati......
  • 【对比】文心一言对飚ChatGPT实操对比体验
    前言......
  • 迁移学习(MEnsA)《MEnsA: Mix-up Ensemble Average for Unsupervised Multi Target Doma
    论文信息论文标题:MEnsA:Mix-upEnsembleAverageforUnsupervisedMultiTargetDomainAdaptationon3DPointClouds论文作者:AshishSinha,JonghyunChoi论文来源:2023 CVPR论文地址:download 论文代码:download视屏讲解:click1前言单目标域和多目标域2介绍单......
  • 前端vue使用jsencrypt进行RAS加密/解密
    前端安装:npminstalljencrypt--sava在utils下创建jsencrypt.js文件,内容如下:importJSEncryptfrom"jsencrypt/bin/jsencrypt.min";/**RSA秘钥对生成网站http://web.chacuo.net/netrsakeypair*//**公钥512位*/constpublicKey='MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJ......
  • [Feign]feign.FeignException$MethodNotAllowed: [405] during [GET]
    一个服务调用另一个服务使用feign,但是报错:feign.FeignException$MethodNotAllowed:[405]during[GET] 原来是其中一个方法是get方法,但是因为feign的@RequestBody,会自动把Get请求变成Post,导致前后调用不一致报错。   解决方法:在pom文件中加上<dependency><groupId......
  • 使用typescript实现Promise
    /***@nameMyPromise*@description简单实现Promise*@author*****/classMyPromise<T>{//存放成功的回调函数privateresolveFn:Function=()=>{};//存放失败的回调函数privaterejectFn:Function=()=>{};//当前的状态/......
  • proxy_pass_header dept-id;
    proxy_pass_headerdept-id;underscores_in_headerson;proxy_pass_request_bodyon;if($http_dept_id=19){#rewrite*http://192.168.19.145/;rewrite^/(.*)$http://192.168.19.145/$1redirect;#rewrite^/(.*)https://vip.h.com......
  • GPT4有那么可怕吗?
    ChatGPT的影响3月22号也就是一个月前,马斯克,对你没听错,就是前几天发射火箭失败爆炸的那个,他联合几千名科学家用公开信请愿暂停一切大型AI实验半年以上,这六个月的时间是用来做一份监督和规范AI发展的协议,避免AI的发展走向极端,超出人类的控制。现在这封公开信已经有超过3万人参与......
  • ACM International Collegiate Programming Contest, Egyptian Collegiate Programmin
    ProblemG.GloriousStadiumInputfile:glorious.inOutputfile:standardoutputBalloonColor:OrangeAlotofpeoplewanttoattendtheWorldCup,sowewouldliketoconstructagloriousstadiumusingthefollowingalgorithm:1.Construct1stla......