- 博客(11)
- 资源 (11)
- 收藏
- 关注
原创 SEH 进阶(2)
上一篇我们自己手动了解了编译器SHE 的机构,下面我们来学习一下其结构体定义以及如何借用这样的结构构建一个完整的SHE 结构。首先我们来看加入系统的SHE 链表的结构:typedef struct _EXTEND_EXCEPTION_RECORD_{ //Stdandard ESP in frame; //PEXCEPTIO
2017-04-28 21:46:13 627
原创 SEH 进阶(1)
SHE进阶了解了上一篇的文章之后,我们写一个简单的例子来验证我们的想法,并学习新的知识。不同的编译器提供的增强版本SHE 可能不同,但是它们都是基于windows 底层SHE 的。我们使用Win10 1703 + VS2010 生成X86 Rlease 程序来验证已经学过的知识,后面使用XP x86 7600 来学习编译器版本的SHE。编译如下程序#define WIN32_LEA
2017-04-23 19:12:27 1576
原创 SEH 入门
SEH 机制Structedexception handling 结构化异常处理的简称。这里介绍的异常处理并不是我们通常看到的__try__catch 语句,而是操作系统提供的一种异常机制。通过这种称为SHE 的机制,用户可以通过定义注册自己的异常处理函数以在异常出现的时候有机会执行自己的代码,决定程序流程。我们平时直观看到的异常处理机制都是编译器建立在windows SHE 基础之上的一
2017-04-21 09:55:47 667
原创 小记录
#include #include void Func2(inttemp){ temp++;}int Func3(intiTemp,int iTemp1){ return iTemp1+iTemp;}int Func1(intparam1,int param2){ Func2(param2); return Func3(1,param1);
2017-04-17 23:51:25 131
原创 Drag And Drop 进阶
Drag And Drop 进阶上一篇文章我们介绍了基本的Drag And Drop 编程和其运行机制。为了我们的初衷,自动往打开的explorer 管理窗口发送我们的文件,我们应该想到,如果采用静态的枚举当前所有窗口然后进行独立的操作的话,新生成的资源管理器窗口无法被操作。因此,我们应该想一种方法,即使是新生成的窗口也会运行我们的代码。答案是:窗口钩子。窗口钩子简介SetWi
2017-04-17 15:34:32 796
原创 Drag Drop 入门介绍
鼠标拖拽简介初衷完成一个给打开的QQ窗口自动发送文件的程序。使用在资源管理器中进行拖拽操作,没有键盘操作的话。不同分区间默认为拷贝,同分区间默认为move操作。如果加上键盘操作,则会规定操作的类型如下:Shift moveCtrl copyAlt link另外:Drag系统文件
2017-04-17 10:01:55 3787
原创 枚举窗口的两种方法(自己实现 AND API)
#include <Windows.h>#include <stdio.h>// 枚举特定类窗口的所有子窗口,或者特定标题等等void EnumWindows(HWND hParent,LPCSTR szTargetClassName){ // 这种方法获得的窗口可能已经销毁了 CHAR szClass[0x100]; HWND hChild = GetWi...
2017-04-10 16:58:28 2349
原创 IAT注入
IAT 注入 的主要思路就是在PE 中增加一个节,然后将导入表拷贝到当前的节中,在导入表后面增加一个新的导入项,并将导入表重定向到当前的表中。一般情况下,我们的节头到段的真正的开始位置是有一定的空闲区域的。下图为我们的示例程序SimpleEXE.exe的节头,可以看出来,我们的第一个段的起始文件偏移为0x400虽然IMAGE_OPTIONAL_HEADER32. SizeOfHea
2017-04-08 11:17:59 1656
原创 MemoryModule阅读与PE文件解析(五)----导出表
上一篇我们介绍了TLS。下面来看关于函数入口函数: // get entry point of loaded library if(result->headers->OptionalHeader.AddressOfEntryPoint != 0) { if (result->isDLL) { DllEntryProc DllEntry
2017-04-06 12:47:55 878
原创 MemoryModule阅读与PE文件解析(四)---深入理解TLS
下面的操作是关于TLS 和 PE 入口点函数的,首先,了解什么是TLS。TLS 是线程局部存储的简称,这种机制的特殊之处就在于,线程相关。对于普通的变量来说,如果它是全局或静态的,那么如果多线程程序同时访问可能会造成逻辑问题,TLS提供了一种简便的方法来实现线程访问与该线程相关联的全局或静态变量的方法。TLS 分为静态和动态动态TLS如下图所示:PEB 中有一个
2017-04-05 21:13:03 1900 2
原创 MemoryModule阅读与PE文件解析(三)
前面我们提到一个函数 CopySections ,该函数将文件中的段拷贝到我们申请的内存中,并按照内存页面的大小进行对齐。拷贝过程中设置了每个段的PhysicalAddress的值为该段的虚拟地址,用于后面的操作。要理解这个段,首先应该理解_IMAGE_SECTION_HEADER 中 的联合体union { DWORD PhysicalAddress;
2017-04-04 21:04:05 861
获得鼠标下资源管理器路径(Demo)
2017-02-26
获得鼠标下资源管理器路径
2017-02-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人