-
-
[旧帖] 添加中断项后的返回问题 0.00雪花
-
发表于: 2011-9-17 02:45 2794
-
在虚拟机的单核环境下,运行通过。但是和ring3交互总是出问题
IDTENTRY IdtEntry = {0};
IdtEntry.DPL = 3;
IdtEntry.LowOffset = (USHORT)ulFunAddr;
IdtEntry.HiOffset = (USHORT)(ulFunAddr >> 16);
IdtEntry.P = 1;
IdtEntry.segment_type = 0xe;
IdtEntry.selector = 0x8;
IdtEntry.system_segment_flag = 0;
IdtEntry.unused_lo = 0;
__asm
{
cli
push eax
mov eax,cr0
and eax,not 0x10000
mov cr0,eax
pop eax
}
*(IDTENTRY *)ulINT24 =IdtEntry;
__asm
{
push eax
mov eax,cr0
or eax,0x10000
mov cr0,eax
pop eax
sti
}
上边是我的添加int 0x24号中断。。
然后从ring0返回ring3是ring0的堆栈已经在图中给你,我发现堆栈地址从高到低是ss,esp,eflags,cs,eip,ebp 。。
问题就出来ring0返回ring3,返回ring3后程序自动退出,int 0x24后边的语句不再执行。。
ring3层的调用代码:
__asm int 0x24
__asm nop //od和windbg配合的时候从内核返回到用户空间,od显示的是int 0x24往后推两个字符,并且od标明程序的状态是已结束。。
DWORD dwNum = 0;
__asm mov dwNum,eax //程序是想利用int中断来进行驱动和用户程序的交互数据,但还没交互,就卡在添加中断上了,神伤呀!!!
printf("%d\n",dwNum);
getchar();//什么getchar(),sleep(),MessageBox 函数,还有cmd.exe启动用户程序,这些方法都用了,可是都没有执行int 0x24后边的代码,程序自动退出。。
看雪牛人很多,帮帮小菜。。明早考试,今晚却把时间都霍腾在这上边。。哎。。不爽。。
IDTENTRY IdtEntry = {0};
IdtEntry.DPL = 3;
IdtEntry.LowOffset = (USHORT)ulFunAddr;
IdtEntry.HiOffset = (USHORT)(ulFunAddr >> 16);
IdtEntry.P = 1;
IdtEntry.segment_type = 0xe;
IdtEntry.selector = 0x8;
IdtEntry.system_segment_flag = 0;
IdtEntry.unused_lo = 0;
__asm
{
cli
push eax
mov eax,cr0
and eax,not 0x10000
mov cr0,eax
pop eax
}
*(IDTENTRY *)ulINT24 =IdtEntry;
__asm
{
push eax
mov eax,cr0
or eax,0x10000
mov cr0,eax
pop eax
sti
}
上边是我的添加int 0x24号中断。。
然后从ring0返回ring3是ring0的堆栈已经在图中给你,我发现堆栈地址从高到低是ss,esp,eflags,cs,eip,ebp 。。
问题就出来ring0返回ring3,返回ring3后程序自动退出,int 0x24后边的语句不再执行。。
ring3层的调用代码:
__asm int 0x24
__asm nop //od和windbg配合的时候从内核返回到用户空间,od显示的是int 0x24往后推两个字符,并且od标明程序的状态是已结束。。
DWORD dwNum = 0;
__asm mov dwNum,eax //程序是想利用int中断来进行驱动和用户程序的交互数据,但还没交互,就卡在添加中断上了,神伤呀!!!
printf("%d\n",dwNum);
getchar();//什么getchar(),sleep(),MessageBox 函数,还有cmd.exe启动用户程序,这些方法都用了,可是都没有执行int 0x24后边的代码,程序自动退出。。
看雪牛人很多,帮帮小菜。。明早考试,今晚却把时间都霍腾在这上边。。哎。。不爽。。


[培训]科锐软件逆向54期预科班、正式班开始火爆招生报名啦!!!
赞赏
他的文章
- [原创]unity的et热更新分析和补丁 12757
- whatsapp的越狱特征检测 16529
- [原创] lua脚本还原 10229
- [原创]实战某信外挂插件之字符串还原 10755
- [原创]cocos2d游戏的lua脚本解密 17602
赞赏
雪币:
留言: