首页
社区
课程
招聘
[求助]关于Debug Api 处理SEH异常的方法
发表于: 2009-8-18 15:27 3559

[求助]关于Debug Api 处理SEH异常的方法

2009-8-18 15:27
3559
例如:

00799763    61              POPAD
00799764    50              PUSH    EAX
00799765    33C0            XOR     EAX, EAX
00799767    64:FF30         PUSH    DWORD PTR FS:[EAX]
0079976A    64:8920         MOV     DWORD PTR FS:[EAX], ESP
0079976D    EB 01           JMP     SHORT 00799770
0079976F    8700            XCHG    DWORD PTR [EAX], EAX
00799771    0000            ADD     BYTE PTR [EAX], AL
00799773    0000            ADD     BYTE PTR [EAX], AL
00799775    0000            ADD     BYTE PTR [EAX], AL
00799777    0000            ADD     BYTE PTR [EAX], AL
00799779    0000            ADD     BYTE PTR [EAX], AL
0079977B    0000            ADD     BYTE PTR [EAX], AL
0079977D    0000            ADD     BYTE PTR [EAX], AL
0079977F    0000            ADD     BYTE PTR [EAX], AL

当执行到:
00799770    0000            ADD     BYTE PTR [EAX], AL
00799772    0000            ADD     BYTE PTR [EAX], AL
00799774    0000            ADD     BYTE PTR [EAX], AL
00799776    0000            ADD     BYTE PTR [EAX], AL
00799778    0000            ADD     BYTE PTR [EAX], AL
0079977A    0000            ADD     BYTE PTR [EAX], AL

0799770时发生异常

如此是在od的话,可以按shift+f9通过

我在用debug api时也接收到这个异常了

0012FFBC   0012FFE0  指向下一个 SEH 记录的指针
0012FFC0   00799713  SE处理程序

我直接

int she_addr;
int esp_addr = Regs.Esp + 4;

ReadProcessMemory(pi.hProcess,(LPVOID)esp_addr, &she_addr, sizeof(she_addr), NULL);

Regs.Eip = she_addr;

SetThreadContext(pi.hThread, &Regs);

这样,是可以通过了,但是有问题....

请问,要怎么去处理它?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//