Windows 编程
文章平均质量分 71
Quartz010
不予置评
展开
-
Windows 全局钩子 Hook 详解
监控程序的实现 我们发现一些木马或其他病毒程序常常会将我们的键盘或鼠标的操作消息记录下来然后再将它发到他们指定的地方以实现监听.这种功能其他是利用了全局钩子将鼠标或键盘消息进行了截取,从而获得了操作的消息.要得到鼠标和键盘的控制权,我们要用SetWindowsHookEx这个函数: HHOOK SetWindowsHookEx( int idHook, /转载 2017-09-17 01:48:16 · 11435 阅读 · 1 评论 -
Win Api 有名管道通信--扫雷辅助(四)
有名管道的使用同linux 下一样 通过有名管道 实现非父子进程(资源继承)关系的 进程间通信(Inter Process Communicate) 无名管道是通过内核进行内存共享 , 而有名管道是通过文件系统进行的核心代码m_hPipe = CreateNamedPipe(lpPipeName, PIPE_ACCESS_DUPLEX | FILE_FLAG_OVERLAPPED, \原创 2017-12-03 22:54:57 · 324 阅读 · 0 评论 -
创建线程时候多参数传递方法及参数改变问题--扫雷辅助(三)
创建线程时候参数传递方法及参数改变问题多参数传递这个是MSDN 给出的函数原型HANDLE WINAPI CreateRemoteThread( _In_ HANDLE hProcess, _In_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwSta原创 2017-12-03 12:11:38 · 1634 阅读 · 0 评论 -
CALL注入--扫雷辅助(二)
Call注入简介差不多有一周的时间,完成了扫雷辅助的项目 项目地址 (感觉好玩的东西, 多有不足,还请各位交流指正) 过程中遇到相当多的问题与麻烦, 逐个解决.难得闲暇, 就记录过程中的一些 point核心代码CONST LPWORD offsetFnClick = (LPWORD)0x01003512; //选方格的函数地址BOOL Click(原创 2017-12-03 10:29:20 · 1387 阅读 · 0 评论 -
<漏洞战争软件漏洞分析精要> 学习笔记
(拖延症越来越严重)对常见软件漏洞的分类和简介常见漏洞列表栈溢出漏洞堆溢出漏洞整数溢出漏洞格式化字符串漏洞双重释放漏洞双重引用漏洞数组越界访问漏洞OtherS漏洞基本原理解析栈溢出漏洞原理先看代码原理int main(int argc, char const *argv[]){ char *junk= "AAAAAAAAAAAAAAAA" //这里定义填充 fun原创 2017-11-13 20:10:22 · 2143 阅读 · 0 评论 -
只允许运行一个实例的方法
查找窗口法 TCHAR wndName = ["blahblah"]; hWnd = FindWindow(NULL, wndName); if(hwnd == 0) // 没找到,就是没运行 //TODO 使用互斥对象 TCHAR mutexName = ["blahblah"]; hMutex = CreateMutex(NULL, FALSE, mutexN原创 2017-11-06 10:06:23 · 936 阅读 · 0 评论 -
去掉控制台程序的黑框框
有时候写的console的程序有时候只想让它运行, 弹个黑框框 , 挺尴尬的.况且有些代码想在偷偷的执行这时候就需要一些小技巧了#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")//不显示窗口 本来想着记录这个操作大,发现了更好的博文以下全文引用 原博文链接 众所周知,控制台应用程序一般都会显转载 2017-11-15 01:08:53 · 6030 阅读 · 0 评论 -
DLL 远程线程注入
远程线程注入首先 , 这里讲和为注入 , 通俗讲 , 就是把自己的东西强加给别人 也就是在 其他程序的运行的内存空间里面 插入自己的代码 这里提到的远程线程注入 这个算是很常用,也算是用的比较多的一种注入方式了实用代码解析打开进程 // 打开远程线程 if ((hRemoteProcess = OpenProcess(PROCESS_CREATE_THREAD |原创 2017-10-31 01:02:00 · 774 阅读 · 0 评论 -
关于VS环境下制作和使用静态库和动态库
转载理由:虽然操作什么的很基础,不过作为初学还是很好的文章,手把手教学关于VS2013下制作和使用静态库和动态库引言什么是库:库是写好的现有的,成熟的,可以复用的代码。所谓静态、动态是指链接。将一个程序编译成可执行程序的步骤:静态库在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。因此对应的链接方式称为静态链接。为什么还需要动态库?转载 2017-10-11 23:40:22 · 3340 阅读 · 0 评论 -
PE 格式详解
PE文件是Win32的原生文件格式.每一个Win32可执行文件都遵循PE文件格式.对PE文件格式的了解可以加深你对Win32系统的深入理解.一、 基本结构。 上图便是PE文件的基本结构。(注意:DOS MZ Header和部分PE header的大小是不变的;DOS stub部分的大小是可变的。)一个PE文件至少需要两个Section,一个是存放代码,一个存放数据。NT上的PE转载 2017-09-20 21:23:06 · 2400 阅读 · 0 评论 -
修改注册表实现程序开机自启动
注册表简介何为注册表注册表相当于Windows下的一个庞大的层次性数据库. 基本上有责系统所有的配置信息 注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用。 以上是引用百科的话注册表组成注册表由键(rootkey)(也叫主键或称“项”)子键(su原创 2017-09-27 10:55:37 · 5019 阅读 · 0 评论 -
使用互斥体使程序只运行一个
何为互斥体引用了百科的话 互斥体实现了“互相排斥”(mutual exclusion)同步的简单形式(所以名为互斥体(mutex))。互斥体禁止多个线程同时进入受保护的代码“临界区”(critical section)。其实互斥体就像信号量的PV操作一样的,可以用于线程间的同步,避免一个资源在被一个线程操作的同时,另外的一个线程也在进行操作,这样就会破坏操作的原子性。带来未知的错误互斥体的作用原创 2017-09-18 19:44:32 · 2173 阅读 · 0 评论 -
GetLastError函数使用及返回代码对照
DWORD i = ::GetLastError(); 功能:查询LoadIcon()函数返回的错误值 〖0〗-操作成功完成。 〖1〗-功能错误。 〖2〗-系统找不到指定的文件。 〖3〗-系统找不到指定的路径。 〖4〗-系统无法打开文件。 〖5〗-拒绝访问。 〖6〗-句柄无效。 〖7〗-存储控制块被损坏。 〖8〗-存储空间不足转载 2017-09-26 19:59:25 · 952 阅读 · 0 评论 -
Windows 钩子的使用
我们知道Windows中的窗口程序是基于消息,由事件驱动的,在某些情况下可能需要捕获或者修改消息,从而完成一些特殊的功能(MFC框架就利用Windows钩子对消息进行引导)。对于捕获消息而言,无法使用IAT或Inline Hook之类的方式去进行捕获,这就要用到接下来要介绍的Windows提供的专门用于处理消息的钩子函数。1. 挂钩原理Windows下的应用程序大部分都是基于消息机转载 2017-09-17 02:08:44 · 579 阅读 · 0 评论 -
学习MFC首先要知道的--程序执行顺序
MFC的程序执行顺序很多刚学MFC的人都会被MFC给弄的晕头转向。以前传统的C语言中的main()不见了,window sdk api 中的WinMain()函数也不见了,到底用MFC编写的程序是如何开始运行的呢?到底MFC有没有遵从最基本的C++的标准呢?到底MFC的代码运行的顺序又是怎么样的呢?那么多个文件,那么多函数,到底哪一个先运行,哪一个后运行,哪一个调用哪一个,哪一个又被哪一个调用(你看转载 2017-11-27 15:10:35 · 763 阅读 · 0 评论