首页
社区
课程
招聘
[求助] 为何 winxpsp3 下 _ASM INT 3 会发生中断异常?
发表于: 2020-6-27 17:52 2407

[求助] 为何 winxpsp3 下 _ASM INT 3 会发生中断异常?

2020-6-27 17:52
2407

作为看雪新注册用户,无法在逆向区提问,只好先把问题贴在这里。

 

一段c代码

#include<stdio.h> 
#include<stdlib.h> 
#include<string.h> 

char shellcode[]= "\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"; 

void test(char * input) 
{ 
    char str[200];
    strcpy(str,input);         
    int zero=0;        
    zero=1/zero; 
} 

void main() 
{   

    char * buf=(char *)malloc(500);        
    __asm int 3
    strcpy(buf,shellcode);        
    test(shellcode);  
}

这段代码很简单,在windows xp中使用vs2008编译链接后,执行会引发中断(__asm int 3),我使用olldbg或x32dbg作为JIT调试器。当中断发生时,点击debug可以转入调试器,但想从INT 3处向下运行却无法实现。即下列机器码无法向下执行,程序止步于INT 3 处,希望高手帮忙解答一二,十分感谢。

00401065 | CC  | int3   | demo.cpp:35
00401066 | 68 00304000  | push <1104.char * shellcode>  | demo.cpp:36
0040106B | 8B45 FC  | mov eax,dword ptr ss:[ebp-4] |
0040106E | 50               | push eax
...

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 1558
活跃值: (3453)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
略懂异常,不太懂实时调试器,
dbg在此下断,没有继续执行.
猜测dbg未处理int 3异常.
建议看下软件调试这本书
2020-7-6 12:31
0
游客
登录 | 注册 方可回帖
返回
//