浅墨浓香

想要天亮进城,就得天黑赶路。
随笔 - 743, 文章 - 16, 评论 - 87, 阅读 - 53万

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

02 2016 档案

摘要:23.3 终止处理程序 23.3.1 程序的结构 (1)框架 __try{ //被保护的代码块 …… } __finally{ //终止处理 } (2)__try/__finally的特点 ①finally块总是保证,无论__try块中的代码有无异常,finally块总是被调用执行。 ②try块后面 阅读全文

posted @ 2016-02-29 21:14 浅墨浓香 阅读(566) 评论(0) 推荐(0) 编辑

摘要:23.2 编译器层面对系统SEH机制的封装 23.2.1 扩展的EXCEPTION_REGISTRATION级相关结构:VC_EXCEPTION_REGISTRATION (1)VC_EXCEPTION_REGISTRATION结构 (2)scopetable_entry结构体 (3)VC异常帧堆栈 阅读全文

posted @ 2016-02-27 23:23 浅墨浓香 阅读(913) 评论(0) 推荐(0) 编辑

摘要:23.1 基础知识 23.1.1 Windows下的软件异常 (1)中断和异常 ①中断是由外部硬件设备或异步事件产生的 ②异常是由内部事件产生的,可分为故障、陷阱和终止三类。 (2)两种异常处理机制:SEH和VEH(WindowsXP以上新引进) (3)结构化异常处理(SEH)是Windows操作系 阅读全文

posted @ 2016-02-21 19:46 浅墨浓香 阅读(1594) 评论(0) 推荐(0) 编辑

摘要:22.6 API拦截的一个例子 22.6.1 通过覆盖代码来拦截API (1)实现过程 ①在内存中对要拦截的函数(假设是Kernel32.dll中的ExitProcess)进行定位,从而得到它的内存地址。 ②把这个函数的起始的几个字节保存在我们自己的内存中。 ③用CPU的一条JUMP指令来覆盖这个函 阅读全文

posted @ 2016-02-11 21:01 浅墨浓香 阅读(2267) 评论(0) 推荐(0) 编辑

摘要:22.4 使用远程线程来注入DLL 22.4.1 概述 (1)远程线程注入是指一个进程在另一个进程中创建线程,然后载入我们编写的DLL,并执行该DLL代码的技术。其基本思路是通过CreateRemoteThread创建一个远程线程,并将LoadLibrary函数作为该线程函数来启动线程,同时将Dll 阅读全文

posted @ 2016-02-04 22:43 浅墨浓香 阅读(1116) 评论(0) 推荐(0) 编辑

摘要:22.1 注入的一个例子(跨进程子类化窗口) ①子类化窗口可以改变窗口的行为,让发往该窗口的消息重新发到我们指定的过程来处理。但这种行为只能在本进程中(如A),对于从一个进程(如B)去子类化另一个进程(如A)时,会遇到无法跨越进程地址空间的边界问题。 ②上图,进程B试图调用SetWindowLong 阅读全文

posted @ 2016-02-04 00:20 浅墨浓香 阅读(2066) 评论(0) 推荐(0) 编辑

摘要:21.1 动态TLS 21.1.1 为什么要使用线程局部存储 编写多线程程序的时候都希望存储一些线程私有的数据,我们知道,属于每个线程私有的数据包括线程的栈和当前的寄存器,但是这两种存储都是非常不可靠的,栈会在每个函数退出和进入的时候被改变,而寄存器更是少得可怜。假设我们要在线程中使用一个全局变量, 阅读全文

posted @ 2016-02-01 10:57 浅墨浓香 阅读(624) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示