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