首页 > 其他分享 >中断调用之猜想

中断调用之猜想

时间:2022-09-05 17:24:30浏览次数:63  
标签:调用 猜想 中断 edi sceleton eax ebx tss esi

launcher.asm中,使用了launch_applications过程三次调用了int 0x40去启动3个应用,构成了桌面背景,桌面图标和底部任务栏。这三次调用使用了eax,放置调用号19ebx放置了应用的名称,ecx放置了参数BOOT。那么到了start_application_fl过程中,怎么eax指向了应用名称,而ebx指向了传递的参数了呢?

int 0x40(sys32.inc)->syscall_startapp(kernel.asm)->start_application_fl(sys32.inc)->start_app_c(sys32.inc)->add_app_parameters(sys32.inc)。

在i40过程中(sys32.inc中第623)行有如下一段代码:

     pusha

    mov edi,[esi+l.eax-tss_sceleton]
    mov eax,[esi+l.ebx-tss_sceleton]
    mov ebx,[esi+l.ecx-tss_sceleton]
    mov ecx,[esi+l.edx-tss_sceleton]
    mov edx,[esi+l.esi-tss_sceleton]
    mov esi,[esi+l.edi-tss_sceleton]

    sti
    push eax
    and edi,0xff
    call dword [servetable+edi*4]
    pop eax
    cli

    popa

 

从这段代码中,大致可以猜到,中断后的edi中是调用者的eax,ebx中放置的是调用者eax,而ebx放置的是调用者的ecx值。而call dword [servetable+edi*4]则调用了syscall_startapp。

标签:调用,猜想,中断,edi,sceleton,eax,ebx,tss,esi
From: https://www.cnblogs.com/menuetos32/p/16658622.html

相关文章

  • 10.2 函数调用的参数传递_位置实参_关键字实参
     defcalc(a,b):#a,b是形参,在函数定义处c=a+breturncresult=calc(10,20)#按位置传递参数#10,20为实参,在函数调用处print(re......
  • 10.1 函数的定义与调用
       defcalc(a,b):c=a+breturncresult=calc(10,20)print(result)E:\PycharmProjects\pythonProject\venv\Scripts\python.exeE:/PycharmProje......
  • 利用CMD命令调用ENVITask实现混合编程
    IDL可以将pro源码编译为sav文件,然后利用cmd命令执行此sav文件,即可实现混合编程。下面的测试版本为ENVI5.3.1/IDL8.5.1。此方法同样适用于纯IDL开发方式。1.编写ID......
  • uniApp调用科大讯飞语音识别离线包
    之前在uniapp有语音识别的需求,hbuilderX自带可以方便配置百度语音识别的插件,但由于需求进一步提高-无网络环境,便转向了唯一实现了离线语音识别的科大讯飞...(话说无网络不......
  • IDL界面程序直接调用envi菜单对应功能的实现方法
    ENVI软件具备强大的二次开发功能,提供了绝大多数功能的函数调用接口。但二次开发的时候需要自己编写处理和操作界面,很多时候这也是个头疼的问题。如果希望在自己的程序界面......
  • MAUI 使用 Refit 调用接口库
    今天给大家推荐一个APP调用API的类库:Refit我们在做客户端程序时,经常是要调用后台开发的API,调用API直接使用HttpClient是非常繁琐而原始的方式,现在提供一直更方便......
  • 查尔斯·达纳的达纳猜想
    查尔斯·达纳的达纳猜想DefinitionofaConjecture.当我写这些行时,我对数学大厦的第一个贡献是在互联网上直播。我在业余时间工作四年的结果。我不会发表长篇演讲来描......
  • 反射加缓存,解决不同的业务下调用不同的实现
    根据前端传入不同的支付code,动态找到对应的支付方法,发起支付。我们先定义一个注解。@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)public@inter......
  • 简析Linux内核中断机制
    目录一、背景介绍二、基本原理三、分类四、中断流程接受中断信号查找向量表五、exception/异常六、interrupt/中断1、hardirq2、softirq七、中断与同步八、参考资料一、背......
  • .Net下的简易Http请求调用(Post与Get)
    http请求调用是开发中经常会用到的功能。在内,调用自有项目的WebApi等形式接口时会用到;在外,调用一些第三方功能接口时,也会用到,因为,这些第三方功能往往是通过http地址的形式......