前言 本程序基于东灿的异常调试模块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文件: 更多功能请自己测试!!
2023-11-30 17:01:23 412KB 模块控件源码
1
opencv-python学习代码
2023-11-30 15:16:40 16.66MB python opencv 开发语言
1
适合复习或者初学UNIX环境高级编程这本书。这个思维导图基本涵盖了整本书的重要内容,及很多细节问题。 通过这个思维导图至少可以初步了解这本书的大致内容
2023-11-30 14:14:24 911KB unix 编程语言
1
《你必须知道的261个Java语言问题》以问答的形式组织内容,讨论了学习或使用Java语言的过程中经常遇到的一些问题。这些问题均是在经过充分调研的基础上,从实际应用中总结出来的,是作者和众多Java开发者的经验总结。书中精选了Java开发人员经常遇到的261个典型问题,涵盖了基本概念、环境配置、基本语法、异常处理、流操作、图形用户界面编程、网络编程、线程、序列化、数据库操作、Java Web程序设计等各方面的主题,并分别给出了详细的解答,而且结合代码示例阐明了技术要点。, 《你必须知道的261个Java语言问题》结构清晰、讲解透彻、实用性强,是各高校相关专业Java语言课程很好的教学参考书,也是各层次Java程序员的优秀实践指南。
2023-11-30 07:01:21 72.57MB 编程开发
1
第3版的、自动机理论、语言和计算导论的描述。这是教材、纯理论
2023-11-29 21:19:31 70.66MB 自动机理论
1
易语言支持库PBshell.fne解压放对应文件夹就可以了
2023-11-29 20:30:05 53KB
1
程序结合易语言互联网支持库和超文本浏览框,取QQ信息。
2023-11-29 12:05:24 9KB
1
FT-2000/4 处理器的主要技术特征如下: 兼容 ARM v8 64 位指令系统,兼容 32 位指令 支持单精度、双精度浮点运算指令 支持 ASIMD 处理指令 集成 2 个 DDR4 通道,可对 DDR 存储数据进行实时加密 集成34 Lane PCIE3.0接口:2个X16(每个可拆分成2个X8),2个 X1 集成 2 个 GMAC,RGMII 接口,支持 10/100/1000 自适应 集成1个SD卡控制器,兼容SD 2.0规范 集成 1 个 HDAudio,支持音频输出,可同时支持最多 4 个 Codec 集成 SM2、SM3、SM4 模块 集成 4 个 UART,1 个 LPC,32 个 GPIO,4 个 I2C,1 个 QSPI,2 个通 用 SPI,2 个 WDT,16 个外部中断(和 GPIO 共用 IO)
2023-11-28 23:59:14 3.71MB arm 编程语言
1
当谈到Python编程思维导图时,我们可以简单地将其定义为一种以Python语言为基础的可视化工具,用于展示和组织编程概念、语法和逻辑。它通过图形方式呈现了Python编程的核心要素,并帮助学习者更好地理解和记忆相关内容。 思维导图通常由一个中心主题开始,然后分支出多个子主题。在Python编程思维导图中,中心主题可以是Python编程或者具体的Python主题(如数据类型、控制流、函数等),而子主题则包括与中心主题相关的具体概念和语法规则。 Python编程思维导图的优点在于它能够提供一个全局的视角,展示Python编程中各个概念之间的关系和层次结构。这对于初学者来说非常有帮助,因为他们可以通过思维导图的结构来追踪和理解各个概念的演变和联系。此外,思维导图还可以帮助学习者更好地组织和记忆所学内容,提高学习效率。 总而言之,Python编程思维导图是一种强大的工具,它通过可视化和组织Python编程概念的方式,帮助学习者更好地理解和掌握编程知识。它是一个有用的辅助工具,无论是初学者还是有经验的开发人员都可以从中受益。
2023-11-28 19:56:49 14.96MB python 编程语言
1
这一讲里,我们重新回到 Completion 接口。而且这一讲里,我们还会快速搭建出一个 有界面的聊天机器人来给你用。在这个过程里,你也会第一次使用 HuggingFace 这个平台。 HuggingFace 是现在最流行的深度模型的社区,你可以在里面下载到最新开源的模型,以及 看到别人提供的示例代码。 ChatGPT 来了,更快的速度更低的价格 我在第 03 讲里,已经给你看了如何通过 Completion 的接口,实现一个聊天机器人的功 能。在那个时候,我们采用的是自己将整个对话拼接起来,将整个上下文都发送给 OpenAI 的 Completion API 的方式。不过,在 3 月 2 日,因为 ChatGPT 的火热,OpenAI 放出了一个直接可以进行对话聊天的接口。这个接口叫做 ChatCompletion,对应的模型叫做 gpt- 3.5-turbo,不但用起来更容易了,速度还快,而且价格也是我们之前使用的 text-davinci- 003 的十分之一,可谓是物美价廉了。  复制代码 1 import openai 2 openai 这一讲里,我们重新回到 Compl
1