刘收获

导航

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页

2017年9月7日 #

重载重写重定义

摘要: 1.重载:overload,是指同一可访问区内被声明的几个具有不同参数列表(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。 2.隐藏(重定义):隐藏是指派生类的函数屏蔽了与其同名的基类函数。注意只要同名函数,不管参数列表是否相同,基类函数都会被隐藏。 阅读全文

posted @ 2017-09-07 22:03 沉疴 阅读(227) 评论(0) 推荐(0) 编辑

2017年9月6日 #

栈帧

摘要: 百度百科的解释是:“栈帧也叫过程活动记录,是编译器用来实现过程/函数调用的一种数据结构。 实际上,可以简单理解为:栈帧就是存储在用户栈上的(当然内核栈同样适用)每一次函数调用涉及的相关信息的记录单元。栈帧表示程序的函数调用记录,而栈帧又是记录在栈上面,很明显栈上保持了多个栈帧的实体。 阅读全文

posted @ 2017-09-06 21:40 沉疴 阅读(230) 评论(0) 推荐(0) 编辑

2017年9月2日 #

MinHook 分析01 (x86的jmp+offset类型hook)

摘要: MinHook的原理就在于重写目标函数。在这次分析的X86模式中,32位相对JMP覆盖了整个地址空间。因为在相对地址计算中溢出的位被忽略,所以在X86模式中,函数的地址是容易掌控的。 直接来进入正题。 使用时需要通过#pragma来导出模块定义文件 (.def)中的DLL函数: LIBRARY EX 阅读全文

posted @ 2017-09-02 21:40 沉疴 阅读(1423) 评论(0) 推荐(0) 编辑

2017年9月1日 #

C++多态实现原理

摘要: C++多态的实现原理,一言以蔽之:在父类中存在虚函数(virtual),如果在子类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。由于虚函数的存在,编译器实行运行时绑定的机制,如果运行时实际指向的对象类型是子类的对象,就调用子类的虚函数;如果运行时实际指向的对象类型是父类的对象,就调用父 阅读全文

posted @ 2017-09-01 23:15 沉疴 阅读(189) 评论(0) 推荐(0) 编辑

2017年8月31日 #

浅议APC

摘要: 0x01 APC中断请求级别 在Intel x86体系结构中,外部硬件中断是通过处理器上的"中断管脚"或者一个称为"本地APIC(local APIC)"的内置模块来发生的。本地APIC可以接收的中断源包括: 1处理器管脚(LINT0和LINT1) 2本地APIC定时器(timer) 3性能监视计数 阅读全文

posted @ 2017-08-31 23:12 沉疴 阅读(841) 评论(0) 推荐(0) 编辑

2017年8月30日 #

fastIO

摘要: 文件系统除了处理正常的IRP 之外,还要处理所谓的FastIo.FastIo是Cache Manager 调用所引发的一种没有irp 的请求。换句话说,除了正常的Dispatch Functions 之外,你还得为DriverObject 撰写另一组Fast Io Functions.这组函数的指针 阅读全文

posted @ 2017-08-30 23:42 沉疴 阅读(1840) 评论(0) 推荐(0) 编辑

设备对象 驱动对象

摘要: 0x01 驱动对象: 一个驱动对象代表了一个驱动程序。或者说一个内核模块。下面有一些域用省略号代替。 这里可以看到三个重要的成员:设备对象,快速IO分发函数,以及普通分发函数 typedef struct _DRIVER_OBJECT { // 结构的类型和大小。 CSHORT Type; CSHO 阅读全文

posted @ 2017-08-30 23:12 沉疴 阅读(1118) 评论(0) 推荐(1) 编辑

2017年8月29日 #

PostMessage和SendMessage的区别

摘要: 1.返回值 其中 函数4 个参数的意义是一样的,返回值类型不同(其实从数据上看他们一样是一个 32 位的数,只是意义不一样),LRESULT 表示的是消息被处理后的返回值,BOOL 表示的是消息是不是 Post 成功。 2、PostMessage 是异步的,SendMessage 是同步的。 Pos 阅读全文

posted @ 2017-08-29 20:32 沉疴 阅读(1644) 评论(0) 推荐(0) 编辑

2017年8月28日 #

使用DLL在进程间共享数据

摘要: 0x01 DLL在进程间共享数据理论 1.可以在Dll中使用#pragma data_seg建立共享类型的数据段将需要共享的数据分离出来,放置在一个独立的数据段里,并把该段的属性设置为共享,从而实现不同进程的数据共享。并且必须给这些变量赋初值,否则编译器会把没有赋初始值的变量放在一个叫未被初始化的数 阅读全文

posted @ 2017-08-28 21:10 沉疴 阅读(708) 评论(0) 推荐(0) 编辑

32位程序读写64位程序内存

摘要: 32位程序可以通过NtWow64ReadVirtualMemory64,NtWow64WriteVirtualMemory64读写64程序内存。 步骤: 1.自定义函数参数结构,获取模块中的函数指针: 2.获取进程ID和64进程中想要读写处的地址,调用函数读写目标进程内存 阅读全文

posted @ 2017-08-28 18:49 沉疴 阅读(4641) 评论(0) 推荐(0) 编辑

上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 14 下一页