windows核心编程
WeinKee
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
windows线程栈
以下内容引述《windows核心编程》 线程栈 当系统创建线程时,会为线程栈预定一块地址空间区域(每个线程都有自己的栈),并给区域调拨一些物理存储器。默认情况下,系统会预定1MB的地址空间并调拨2个页面的存储器。 也可以通过编译器选项控制 MicroSoft C++编译器的/F选项,或者MSVC链接器的/STACK 选项 /Freserve /STACK:reserve[, commit] 链接器...原创 2020-05-02 11:13:59 · 513 阅读 · 0 评论 -
windows未处理异常
以下内容引述《windows核心编程》 未处理异常 异常过滤函数返回EXCEPTION_CONTINUE_SEARCH,系统会继续在调用树的上层寻找异常过滤函数。如果每个异常过滤程序都返回EXCEPTION_CONTINUE_SEARCH,我们就会遇到所谓的未处理异常。 微软提供了函数SetUnhandleExceptionFilter,它给我们处理异常的最后机会,否则widows会正式认为这个异...原创 2020-04-26 23:45:03 · 1128 阅读 · 0 评论 -
windows异常处理程序与软件异常
以下内容引述《windows核心编程》 异常 异常分为硬件异常和软件异常 硬件异常 CPU负责捕获类似非法内存访问和以0作为除数这样的问题,一旦侦测到这些错误行为,它会抛出相应的异常。 由CPU抛出的异常都是硬件异常 软件异常 操作系统和应用程序抛出的异常,是软件异常 __try{ // Guard body ... } __except{ // Exception handler ... } ...原创 2020-04-23 09:23:30 · 729 阅读 · 0 评论 -
windows终止程序
本文内容引述至《windows核心编程》 结构化异常处理SEH 结构化异常处理(structed exception handling, SEH) Microsoft Visual C++ 支持异常处理,它在内部实现上其实就是利用了编译器和Windows操作系统的结构化异常处理功能。 SEH实际上包含两个功能:终止处理和异常处理。 终止处理 终止处理程序确保不管一个代码块(被保护代码)是如何退出的...原创 2020-04-21 23:34:24 · 1051 阅读 · 0 评论 -
windows注入续讲
本文内容引述至《windows核心编程》 DLL注入 Dll注入除了使用前文《windows注入》中所推荐的三种方法 修改注册表 Hook RemoteThread 还有其他的注入方式 木马注入DLL 木马注入常见的黑客手法,把预知常见的进程必然载入的DLL库同名替换。 Dll库除了名字要相同,还有原来DLL中导出的所有符号,而且随着替换的Dll版本发生变化,更改了导入表甚至是导入地址,那么这...原创 2020-04-19 16:01:30 · 369 阅读 · 0 评论 -
windows线程局部栈
TLS 本文内容引述《windows核心编程》 TLS Thread Local Storage 需求 软件开发中,需要将数据与一个对象的实例关联起来。如使用SetWindowWord和SetWindowLong函数,将数据与某个指定窗口关联起来。 同样,我们可以用TLS将数据与指定的线程关联起来。例如,获知线程的运行时长。 而C/C++库中也实现了这些内容,比如_tcstok_s,asctime...原创 2020-04-19 11:29:21 · 312 阅读 · 0 评论 -
windows系统之Hook实例DIPS
windows系统下Hook 文章示例来至《Windows核心编程》第22章实例Desktop Item Position Saver工具 原理说明 windows下使用Hook实现对远程进程注入DLL技术,通过共用操作系统下同一份DLL,实现对目标进程的特定消息传输,甚至达到控制的技术。 首先需要了解的实现DLL注入实现Hook进程的方式 HHOOK hHook = SetWindowsHook...原创 2020-04-18 23:52:30 · 556 阅读 · 1 评论 -
windows注入
windows注入 本文内容引述至《windows核心编程》 注入引入需求: 从另一个进程创建的窗口派生子类窗口 需要一些方式来辅助调试,比如确定另一个进程正在使用哪些DLL 对另一个进程Hook 窗口派生 User32.dll被映射到进程A的地址空间中,负责对发到和发往进程A的任何窗口的消息进行接收和派发。当User32.dll检测到一个消息的时候,会先确定该窗口的WndProc的地址,然后...原创 2020-04-17 08:49:09 · 547 阅读 · 0 评论 -
windows下DLL基础
动态链接库 windows应用程序编程接口(application programming interface,API)所提供的所有函数都包含在DLL中。 DLL 描述 kernal32.dll 包含的函数用来管理内存、进程以及线程 User32.dll 包含的函数用来执行与用户界面相关的任务 GDI32.dll 包含的函数用来绘制图像和显示文字 AdvAPI32.dl...原创 2020-04-16 01:04:41 · 426 阅读 · 0 评论 -
windows内核态线程同步
内核态线程同步 以下内容引述《windows核心编程》 为什么用内核态同步 在用户态下进行线程同步的最大好处就是速度非常快,但是也存在一些局限性,而且不适用于许多应用程序。 例如,对interlockd系列函数只能对一个值进行操作,他们从来不会把线程切换到等待状态; 使用关键段把线程切换到等待状态,但是他们只能用来对同一个进程中的线程进行同步; 在使用关键段的时候我们容易陷入死锁,因为无法为进入关...原创 2020-04-11 14:39:07 · 565 阅读 · 0 评论 -
windows用户模式线程同步
windows用户模式线程同步 以下内容引述至《windows核心编程》 用户模式,及用户态。 原子访问 原子访问:一个线程在访问某个资源的同时能够保证没有其他线程会在同一时刻访问同一资源。 Interlokced系列函数提供了我们需要的解决方案 InterlockedExchangeAdd 传一个长整形变量的地址和增量值,函数就会保证递增操作是以原子方式进行。x86上函数维持一个硬件信号,会...原创 2020-04-10 23:00:51 · 347 阅读 · 0 评论 -
windows下线程C/C++运行库
window下C/C++运行库 以下内容引述至《windows核心编程》 C/C++运行库 库名称 描述 LibCMt.lib 库的静态链接发行版本 LibCMtD.lib 库的静态链接调试版本 MSVCRt.lib 导入库,用于动态链接MSVCR80.dll库的发行版本(默认) MSVCRtD.lib 导入库,用于动态链接MSVCR80D.dll库的调试版本 MS...原创 2020-04-09 09:59:00 · 627 阅读 · 0 评论 -
windows线程内幕
windows线程内幕 以下内容引述至《windows核心编程》 创建和初始化 CreateThread函数的一个调用导致系统创建一个线程内核对象。该对象的初始化引用计数为2,(除非线程终止,而且从CreateThread返回的句柄关闭,否则线程内核对象不会被销毁) 一旦创建了内核对象,系统就分配内存,提供给线程的堆栈使用。内存是从进程的地址空间内分配的,因为线程没有自己的地址空间。然后,系统将...原创 2020-04-09 09:20:20 · 306 阅读 · 0 评论 -
windows下线程入门
windows线程 以下内容引述《windows核心编程》 线程与进程 进程实际上有两个组成部分:一个进程内核对象和一个地址空间;同样的,线程也有两个组成部分: 线程的内核对象,操作系统用它管理线程,系统还用内核对象来存放线程统计信息的地方; 线程栈,用于维护线程执行时所需的所有函数参数和局部变量 创建线程 对于用MSVC编译器生成的应用程序,这个线程首先会执行C/C++运行库的启动代码,后者...原创 2020-04-08 10:00:03 · 208 阅读 · 0 评论 -
windows进程相关
windows 进程 windows进程创建 CreateProcess函数 系统创建一个进程内核对象,初始引用计数为1。进程内核对象不是进程本身,系统为新进程创建一个虚拟地址空间,将可执行文件(和所有必要dll)的代码及数据加载到进程的地址空间。 然后,系统为新进程的主线程创建一个线程内核对象(引用计数为1),操作系统用它来管理这个线程。 主线程一开始就会执行c/c++运行时的启动例程,它是由链...原创 2020-04-07 09:48:57 · 267 阅读 · 0 评论 -
windows下编码简述
编码问题是计算机的第一门课堂。 总所周知的是,ASCII码是最原创 2019-11-28 23:38:00 · 945 阅读 · 0 评论
分享