WEB开发网
开发学院网络安全黑客技术 SEH 结构化异常处理(1) 阅读

SEH 结构化异常处理(1)

 2007-01-14 20:14:43 来源:WEB开发网   
核心提示: 77F79B7E55pushebp77F79B7F8BECmovebp,esp77F79B81FF750Cpushdwordptrss:[ebp+C]77F79B8452pushedx77F79B8564:FF350000000>pushdwordptrfs:[0]77F79B8C6
77F79B7E  55       pushebp
77F79B7F  8BEC      movebp,esp
77F79B81  FF750C    pushdwordptrss:[ebp+C]
77F79B84  52       pushedx
77F79B85  64:FF350000000>pushdwordptrfs:[0]
77F79B8C  64:89250000000>movdwordptrfs:[0],esp
 {
 //堆栈建立了1个err结构
 0012FC04 0012FFBC 指针到下一个SEH记录//enter键看看
 0012FC08 77F79BB8 SE句柄
 0012FFBC 0012FFE0 指针到下一个SEH记录
 0012FFC0 0040102E SE句柄//熟悉这个地址吧
 0012FFE0 FFFFFFFF SEH链尾部
 0012FFE4 77E74809 SE句柄
 }
77F79B93  FF7514    pushdwordptrss:[ebp+14]
77F79B96  FF7510    pushdwordptrss:[ebp+10]
77F79B99  FF750C    pushdwordptrss:[ebp+C]
77F79B9C  FF7508    pushdwordptrss:[ebp+8]
77F79B9F  8B4D18    movecx,dwordptrss:[ebp+18]
 {
 //此时我们马上看看堆栈:
 0012FBF4 0012FCD4//指针,指向EXCEPTION_RECORD结构,即EXCEPTION_RECORD的首地址 -----回调函数的参数1
 0012FBF8 0012FFBC//指向err结构.可以看看上面我们截取的SEH链表        -----回调函数的参数2
 0012FBFC 0012FCF0//指针,指向EXCEPTION_CONTEXT结构,即EXCEPTION_CONTEXT的首地址-----回调函数的参数3
 0012FC00 0012FCAC//参数4 _lpDispatchrContext?最先被压入堆栈.
 0012FC04 0012FFBC 指针到下一个SEH记录
 0012FC08 77F79BB8 SE句柄
 0012FC0C 0012FFBC
 }
77F79BA2  FFD1      callecx           //Seh.0040102E到这里执行,就是程序的自己的异常处理代码,f7
                             //这就是异常处理回调函数,其参数含义请往下看.
 {
 0040102C ./EB13    jmpshortSeh.00401041
 0040102E .|6A00    push0                 ;/Style=MB_OK|MB_APPLMODAL
 00401030 .|6800304000 pushSeh.00403000            ;|Title="OK"
 00401035 .|6803304000 pushSeh.00403003            ;|Text="SEHSucceed"
 0040103A .|6A00    push0                 ;|hOwner=NULL
 0040103C .|E807000000 call<jmp.&USER32.MessageBoxA>     ;MessageBoxA
 00401041 >6A00    push0                 ;/ExitCode=0
 00401043 . E806000000 call<jmp.&KERNEL32.ExitProcess>    ;ExitProcess
 00401048 $-FF2508204000jmpdwordptrds:[<&USER32.MessageBoxA>]; USER32.MessageBoxA
 0040104E .-FF2500204000jmpdwordptrds:[<&KERNEL32.ExitProcess>; kernel32.ExitProcess
 }
77F79BA4  64:8B250000000>movesp,dwordptrfs:[0]
77F79BAB  64:8F050000000>popdwordptrfs:[0]
77F79BB2  8BE5      movesp,ebp
77F79BB4  5D       popebp
77F79BB5  C21400    retn14

[总结]

上一页  1 2 3 4 5  下一页

Tags:SEH 结构化 异常

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接