当前位置: 首页 > news >正文

商城网站建设网络公司公共部门网站建设维护

商城网站建设网络公司,公共部门网站建设维护,图片识别 在线识图,pc网站开发Win32为每个线程定义了一个线程信息块,其中保存了线程的一些属性数据,线程信息块的属性被定义为NT_TIB结构 typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; PVOID StackBase; PVOID StackLimit; PVOID SubSystemTib; union { PVOID FiberDa…Win32为每个线程定义了一个线程信息块,其中保存了线程的一些属性数据,线程信息块的属性被定义为NT_TIB结构 typedef struct _NT_TIB { struct _EXCEPTION_REGISTRATION_RECORD *ExceptionList; PVOID StackBase; PVOID StackLimit; PVOID SubSystemTib; union { PVOID FiberData; ULONG Version; }; PVOID ArbitraryUserPointer; struct _NT_TIB *Self; } NT_TIB; ExceptionList指向一个EXCEPTION_REGISTRATION结构-也就是SEH链的入口地址 EXCEPTION_REGISTRATION STRUCT prev           dd       ?                       ;前一个EXCEPTION_REGISTRATION结构的地址 handler     dd       ?                        ;异常处理回调函数的地址 EXCEPTION_REGISTRATION ends 所以  一系列的EXCEPTION_REGISTRATION结构  就组成了一个SEH链... TIB是放在fs段寄存器指向的数据段的0偏移处  所以 fs;[0]指向TIB结构的ExceptionList字段,由于同一个进程中 有不同的线程,所以不同线程中的fs段寄存器可以使用不同的值,这种特性使得每个线程都可以设置不同的回调函数 如果内存是从高到低构建...栈则也是从高到低构建....那么对于栈而言 push offset _Handler           ;异常处理程序的回调函数地址 push fs:[0]                               ;上一个EXCEPTION_REGISTRATION结构的地址 mov   fs:[0],esp                       ;设置当前EXCEPTION_REGISTRATION结构的地址 esp此时 正好指向你构建的EXCEPTION_REGISTRATION结构体 SEH异常处理回调函数的参数定义与筛选器器的回调函数的参数定义有所不同,其定义如下,其调用约定为C格式, _Handler proc C _lpExceptionRecord,_lpSEH,_lpContext,_lpDispatcherContext _lpExceptionRecord  指向EXCEPTION_RECORD结构(保存异常的相关信息) _lpContext                   指向一个Thread Context结构-保存线程上下文 _lpSEH                         指向注册回调函数时EXCEPTION_REGISTRATION结构的首地址--利用这个字段可以用栈来传递一些自定义数据如SafeCode地址 回调函数的返回值: ExceptionContinueExecution(等于0):回调函数返回后,系统将线程环境设置为_lpContext参数指定的CONTEXT结构并继续执行 ExceptionContinueSearch(等于1):回调函数拒绝处理这个异常,系统将通过 EXCEPTION_REGISTRATION结构的prev字段得到前一个回调函数的地址并调用他 ExceptionNestedException(等于2):回调函数执行过程中,又发生了新的异常,即触发了嵌套异常 ExceptionCollidedUnwind(等于3):发生了嵌套展开操作 代码: span stylefont-family:Microsoft YaHei;font-size:13px; .386.model flat,stdcalloption casemap:none ; include windows.inc include user32.inc includelib user32.lib include kernel32.inc includelib kernel32.libL macro var:VARARGLOCAL lbl.constlbl db var,0.codeexitm offset lbl endm ; ;Code Segment ;.code ; ;SEH Handler ; _Handler proc C _lpExceptionRecord,_lpSEH,_lpContext,_lpDispatcherContextLOCAL szBuffer[256]:BYTEpushadmov esi,_lpExceptionRecordmov edi,_lpContextassume esi:ptr EXCEPTION_RECORD,edi:ptr CONTEXTinvoke wsprintf,addr szBuffer,L(异常位置:%08x,异常代码:%08x,异常标志:%08x),[edi].regEip,[esi].ExceptionCode,[esi].ExceptionFlagsinvoke MessageBox,NULL,addr szBuffer,L(---),MB_OKmov eax,_lpSEHpush [eax 8]pop [edi].regEippush [eax 0ch]pop [edi].regEsp ;这个是属于当前线程的-而不是当前的栈指针assume esi:nothing,edi:nothingpopadmov eax,ExceptionContinueExecution ;这个会先返回到内核里面去ret_Handler endp start:assume fs:nothingpush ebp ;添加的自定义数据push offset _SafePlace ;添加的自定义数据......push offset _Handlerpush fs:[0]mov fs:[0],espxor eax,eaxmov dword ptr [eax],0_SafePlace:invoke MessageBox,NULL,L(----),L(----),MB_OKpop fs:[0]add esp,0ch ;恢复栈平衡invoke ExitProcess,NULL end start /span
http://www.sadfv.cn/news/65859/

相关文章:

  • 网站开发员一月多少工资网站 建设文档
  • 普宁17网站一起做淘宝没内容的网站怎么优化
  • 单页网站赚钱百度一下你就知道首页
  • 外贸网站海外推广3个必去网站wordpress 账号图片
  • 永州市网站建设软文台
  • 成都网站建设冠辰西安抖音运营
  • 广州中小企业网站制作微盟登录平台
  • 网站做百度竞价邯郸移动网站建设
  • tomcat 建网站网站定制建设公司
  • 33岁改行做网站建设西安企业网站排名优化工具
  • 重庆没建网站的企业中国网库企业黄页
  • 小榄网站建设公司wordpress首次请求慢
  • 食品网站的建设背景余姚网站建设余姚
  • 镇江网站建设企业做旅游计划上哪个网站
  • 教师在哪些网站可以做兼职国外 设计公司手机网站
  • 个人淘宝客网站有哪些休闲食品网站建设规划书
  • 学校招聘教师网站建设建设部网站防排烟规范
  • 服装设计有哪些网站黄骅港金沙滩门票价格
  • 公司的网站难不难做本机iis发布网站后台管理
  • 电子商务平台如何推广营销网页搜索优化seo
  • 南宁专业网站制作前十排名网架公司运营经验
  • wordpress站点地址没有微信小程序如何做
  • 网站可信认证必做设计制作小车二教学设计
  • 网站建设中的html页面网站建设流程代理商
  • 高端网站建设公司有哪些项目aspx高性能网站建设
  • 成都行业网站建设那里好深圳设计网站费用
  • 济南app网站建设word文档怎么做网站跳转链接
  • cms网站建设商业空间设计案例
  • 先做网站还是先域名备案南安seo关键词
  • 官方网站做自适应好还是响应式北京网站建设的服务商