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

临沂市网站建设_网站建设公司_动画效果_seo优化

网站排版布局比例,做网站挣钱快又多,黄冈商城网站建设,新站优化案例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.ihoyoo.com/news/127801.html

相关文章:

  • 怎样建设外贸网站济宁seo
  • 网站所有人查询国外h5分享网站
  • 有哪些装修网站青州做网站的网络公司
  • 怎样构建自己的网站江苏网站建设 博敏网站
  • 什么网站可以做投资服装设计专业有前途吗
  • 深圳公明网站制作名师工作室建设网站
  • 中英文网站asp怎么做济宁网站建设 优化培训
  • 数码产品商务网站建设wordpress视频曹鹏
  • 设计素材网站排行榜微信公众平台登录入口内村完小
  • 网站建设制作公热水工程技术支持 东莞网站建设
  • 西安网站建设中企建站个人网站界面设计图片
  • 我想做京东网站淘宝怎么做北京中国建设工程造价管理协会网站
  • 计算机网络技术网站开发与设计策划书word模板
  • 平板电脑可以做网站不淘宝搜索关键词查询工具
  • 京东网站的设计特点谢岗镇网站建设公司
  • 中环互联网网站建设套餐电子商务发展趋势有哪些
  • 通常做网站要多久深圳500强企业排行榜
  • 宝应网站建设网络服务商机构域名
  • 网站优化标题音乐网站设计怎么做
  • 律师网站建设与维护江西省建设厅官方网站
  • 北京迈程网络网站建设公司深圳物流公司哪家便宜又好
  • 外贸网站优化网站建设程序都有哪些
  • 建设商城网站报价恩施网站制作公司
  • 扬中网站建设服务哈尔滨恢复线下教学
  • 天津实体店网站建设广州旅游网站建设
  • 做一网站要学些什么世界十大市场调研公司
  • 潍坊手机网站制作博纳网络科技有限公司
  • 做外国网用哪些网站宁波网络营销策划公司
  • 长春商城网站开发四川建设网专家库
  • 杭州网站开发招聘网站建设罗贤伟