我萌已经把妹纸保护起来了..所以中断向量表就不好找咯,可不是那种没有被保护的妹纸,在内存起始位置喵..;
不过为了推妹纸,我萌留了idtr寄存器[48位,储存中断向量表的地址和大小;],储存妹纸的中断向量表位置...;
我萌要使用在三层安全裤之外就能使用的中断..这样子就能方便的推妹纸了~;
比如⑤号呀..;
这个时候,我萌要定义个储存哒变量..;
xidt df 0;
然后把中断向量表的位置放进来~;
sidt fword ptr xidt;
然后呢,这个48位,高位32位储存的是地址,低位16位是大小.;
想到是小端模式嘛...我萌要获取地址,就这样了:
mov esi,dword ptr [xidt+2];
OK啦,我萌要把原来的东西保存起来~;
push dword ptr [esi+8*5+0]
push dword ptr [esi+8*5+4]
OK呐!保存成功~假设我萌做坏♂坏事情的程序,起始标号是:xwecan;
然后,我萌要把这个地址扔到向量中~;
这样子:
lea eax,xwecan
push eax;
pop word ptr [esi+8*5+0]
pop word ptr [esi+8*5+6]
不过记住,内个程序的最后,要用 iret返回哦...;不然妹纸就被我萌玩♂坏♀了;
int 5
OK,现在我萌就可以推倒被保护的妹纸了..;
不过当我们做♂完事♂情之后..不是要事后烟!而是要,把向量表恢复..;
也就是说:
pop dword ptr [esi+8*5+4]
pop dword ptr [esi+8*5+0]
不然妹纸会内分泌失调神马的..;