【新】易语言异常捕获,基于东灿大佬的异常捕获模块5-2版本-易语言

上传者: 38526751 | 上传时间: 2023-11-30 17:01:23 | 文件大小: 412KB | 文件类型: ZIP
前言 本程序基于东灿的异常调试模块5.2部分版权信息如下: 1. 该模块功能是补足易错误管理器无法捕捉的异常。
2. 本模块可以截获许多异常,比如内存读写错误,非法汇编指令,算术异常,其他异常等等。
3. 本模块拥有try/catch的异常处理模型,支持多层嵌套,支持向上处理。允许用户自己设定跳过致命异常。
4. 并且支持易原错误管理器接管
5. 建议配合配套工具使用更加好用 正文: 程序原使用模块: 模块名 作者或工作室 用处 高级ApiHookEx 作者未知 HookApi,在模块中用于Hook:CreateRemoteThreadEx和CreateRemoteThread AppThreadVar 作者未知 进程内变量,线程内变量。可以在任意ec模块,任意DLL内调用,全部共享 callstack 作者未知 函数调用堆栈跟踪。 disasm 作者未知 支持MMX/SSE/SSE2/SSE3/3DNow取CPU指令长度 GetThisModuleHandle 作者未知 取出当前ModuleHandle e-try/catch(即new_SEH) 星锋工作室-东灿 SEH结构体等 精简内容 简化模块(即多模块合一,但互相不影响,并且删去了重复的API,数据类型等) 增加注释:对于代码,追加了更多的注释。 部分原理理解(很多都是本人自己的理解,可能不对,若有错误,欢迎指出):AppThreadVar:工作核心:tls线程局部存储(缩写为TLS。进程中的全局变量与函数内定义的静态(static)变量,是各个线程都可以访问的共享变量。在一个线程修改的内存内容,对所有线程都生效。这是一个优点也是一个缺点。说它是优点,线程的数据交换变得非常快捷。说它是缺点,一个线程死掉了,其它线程也性命不保; 多个线程访问共享数据,需要昂贵的同步开销,也容易造成同步相关的BUG。) 部分功能:它主要是为了避免多个线程同时访存同一全局变量或者静态变量时所导致的冲突,尤其是多个线程同时需要修改这一变量时。为了解决这个问题,我们可以通过TLS机制,为每一个使用该全局变量的线程都提供一个变量值的副本,每一个线程均可以独立地改变自己的副本,而不会和其它线程的副本冲突。从线程的角度看,就好像每一个线程都完全拥有该变量。而从全局变量的角度上来看,就好像一个全局变量被克隆成了多份副本,而每一份副本都可以被一个线程独立地改变。 用途:动态TLS和静态TLS这两项技术在创建DLL的时候更加有用,这是因为DLL通常并不知道它们被链接到的应用程序的结构是什么样的。1. 如果应用程序高度依赖全局变量或静态变量,那么TLS可以成为我们的救生符。因而最好在开发中最大限度地减少对此类变量的使用,更多的依赖于自动变量(栈上的变量)和通过函数参数传入的数据,因为栈上的变量始终都是与某个特定的线程相关联的。如果不使用此类变量,那么就可以避免使用TLS。2. 但是在编写应用程序时,我们一般都知道自己要创建多少线程,自己会如何使用这些线程,然后我们就可以设计一些替代方案来为每个线程关联数据,或者设计得好一点的话,可以使用基于栈的方法(局部变量)来为每个线程关联数据 TLS分动态和静态,AppThreadVar我认为是动态TLS(调用了TlsAlloc函数) 相当于静态变量(我也只能理解到这里了) ApiHookEx和大部分的APIHook工作原理类似 e-try/catch说实话,这个模块我几乎不能理解原理(能理解的基本上是一些Api,比如MiniDumpWriteDump) 这个可能也是用于捕获异常,而且比较神奇的是,这个捕获到异常以后不会导致程序的退出,而是程序能够正常运行! 可以抛出自定义数值异常,由catch_int/catch_eq_int接收 可以抛出最后一次异常,让上层错误处理器处理 部分实例: try/catch测试:try/catch结果: 部分崩溃代码测试: 结果部分: 程序可以自己写出DMP文件: 更多功能请自己测试!!

文件下载

资源详情

[{"title":"( 23 个子文件 412KB ) 【新】易语言异常捕获,基于东灿大佬的异常捕获模块5-2版本-易语言","children":[{"title":"10.TreeCtrl.e <span style='color:#111;'> 17.96KB </span>","children":null,"spread":false},{"title":"TreeCtrl.ec <span style='color:#111;'> 15.29KB </span>","children":null,"spread":false},{"title":"4.ApiHookEx.e <span style='color:#111;'> 28.54KB </span>","children":null,"spread":false},{"title":"7.disasm.e <span style='color:#111;'> 12.10KB </span>","children":null,"spread":false},{"title":"GetThisModuleHandle.ec <span style='color:#111;'> 7.04KB </span>","children":null,"spread":false},{"title":"callstack 修改版.ec <span style='color:#111;'> 18.30KB </span>","children":null,"spread":false},{"title":"13.易语言代码解析模块.e <span style='color:#111;'> 52.17KB </span>","children":null,"spread":false},{"title":"ApiHookEx.ec <span style='color:#111;'> 34.97KB </span>","children":null,"spread":false},{"title":"new_seh.ec <span style='color:#111;'> 45.88KB </span>","children":null,"spread":false},{"title":"易语言代码解析模块.ec <span style='color:#111;'> 48.06KB </span>","children":null,"spread":false},{"title":"代码转HTML.ec <span style='color:#111;'> 45.92KB </span>","children":null,"spread":false},{"title":"AppThreadVar.ec <span style='color:#111;'> 8.66KB </span>","children":null,"spread":false},{"title":"6.callstack 修改版.e <span style='color:#111;'> 15.02KB </span>","children":null,"spread":false},{"title":"Win10.ec <span style='color:#111;'> 150.21KB </span>","children":null,"spread":false},{"title":"disasm.ec <span style='color:#111;'> 11.38KB </span>","children":null,"spread":false},{"title":"3.代码解析.e <span style='color:#111;'> 65.71KB </span>","children":null,"spread":false},{"title":"12.代码显示.e <span style='color:#111;'> 49.40KB </span>","children":null,"spread":false},{"title":"1.异常辅助模块 修改版.e <span style='color:#111;'> 164.23KB </span>","children":null,"spread":false},{"title":"2.异常测试.e <span style='color:#111;'> 24.86KB </span>","children":null,"spread":false},{"title":"11.Win10.e <span style='color:#111;'> 158.23KB </span>","children":null,"spread":false},{"title":"8.GetThisModuleHandle.e <span style='color:#111;'> 9.77KB </span>","children":null,"spread":false},{"title":"9.new_seh.e <span style='color:#111;'> 45.51KB </span>","children":null,"spread":false},{"title":"5.AppThreadVar.e <span style='color:#111;'> 10.33KB </span>","children":null,"spread":false}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明