![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Win32SDK
文章平均质量分 80
zuishikonghuan
这个作者很懒,什么都没留下…
展开
-
MinGW 与 MSVC 生成 DLL 各种情况的折腾笔记
写这篇博客,主要是刚折腾 MinGW,相关内容网上的资料不全,而且错误很多其实之前我根本没把这个当回事,我就想 MinGW 跟 Linux 上的 GNU 编译器不会有差别,但是事实却不是这样。。。提示:所有代码均使用 __stdcall安装 MSVC 和 MinGWMSVC:安装 Visual Studio,之后即可在开始菜单中找到“Visual Studio开发人员命令提示”,启原创 2016-07-15 18:43:55 · 17331 阅读 · 2 评论 -
[Win32] Windows Sockets 2笔记(3)TCP Server端的实现(长数据接收+超时机制)
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/48027823在上一篇中,我说了Winsock2的基本函数,这一篇,我们来制作一个TCP Server端,并且要求这个TCP Server端要支持长数据接收和接收超时机制由原创 2015-09-01 13:57:20 · 3756 阅读 · 0 评论 -
[Win32] Windows Sockets 2笔记(4)TCP Client端的实现(长数据接收+超时机制)
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:在上上篇中,我说了Winsock2的基本函数,上一篇,我们制作了一个TCP Server端,并且实现了TCP Server端要支持长数据接收和接收超时机制(地址:http://blog.csdn.net/zuishikonghuan/article/details/4802原创 2015-09-01 13:58:03 · 3554 阅读 · 0 评论 -
[Win32 & GDI+Flat] 用分层窗口实现简单仿Aero透明效果
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:首先说一下GDI+Flat:我有写过一个GDI+Flat的系列博客,一共有10篇,都是顺着的,这是第一篇:GdiplusFlat(1)GDI+平面API:用GDI的思想进行GDI+编程,有兴趣的可以看一看。因为本篇中的绘图函数都是用的GDI+Flat,因此我们需要自己声明函数,自己原创 2015-09-01 13:59:16 · 7857 阅读 · 1 评论 -
[Win32] Windows Sockets 2笔记(2)基本函数
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/48001135在上一篇中,我说了网络的基础知识以及Winsock2的开启方法,这一篇,我们来制作一个TCP Server端1。创建Socket:socket()函数SOCK原创 2015-09-01 13:56:04 · 3028 阅读 · 0 评论 -
[Win32] ToolHelp API 和 进程API 详解
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:原创 2015-08-17 15:38:32 · 4750 阅读 · 0 评论 -
[Win32] 启用进程Debug权限
在上一篇中,写过一个KillProcessAndWait函数,这个函数是用来终止一个进程并等待进程退出的函数,我们使用这个函数,可以关闭同一个用户下的进程,但是,即使以管理员权限运行程序,我们发现也无法终止系统的进程(比如系统桌面管理器dwm.exe)!这是为什么呢。另外,在写一篇中获取进程映像路径中,也会出现此问题。甚至只要是访问那些进程,即使是管理员权限都会出问题!其实,管原创 2015-08-18 08:57:21 · 7777 阅读 · 1 评论 -
GdiplusFlat(5)画图片
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:在上两篇篇中,我们说到了通过GdipCreateFromHDC函数将HDC(设备上下文句柄)装换成GDI+的Graphics对象,并讲到了画笔和画刷的使用,这一篇就来讲讲如何利用GDI+Flat来画图片。还是和以前一样,我们必须自己声明GDI+Flat函数,自己定义GD原创 2015-08-05 09:39:46 · 3034 阅读 · 0 评论 -
GdiplusFlat(4)单色画刷 和 线性渐变画刷
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:在上一篇中,我们说到了通过GdipCreateFromHDC函数将HDC(设备上下文句柄)装换成GDI+的Graphics对象,并讲到了画笔的使用,这一篇就来讲讲画刷。画刷和画笔差不多,就是画刷是画的实心的图形、其实画刷有很多种,这里只介绍最常用的两种,分别是单色画刷和原创 2015-08-04 10:26:59 · 3466 阅读 · 0 评论 -
GdiplusFlat(3)GdipCreateFromHDC函数 和 画笔(Pen)
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:上两篇分别介绍了GDI+Flat编程是什么,意义和实现方法,以及对WM_PAINT,子类化和GDI编程中的DC做了简单介绍。今天,我们来看看用GDI+Flat如何进行绘图,在开始之前,首先给大家介绍一种新的颜色,ARGB颜色!想必大家都知道RGB()宏,一种颜色占8位,用R原创 2015-08-03 16:08:27 · 3571 阅读 · 0 评论 -
[Win32] 服务程序开发(1)基本概念和服务程序的框架
一。服务程序基本概念二。服务程序的编写框架1。StartServiceCtrlDispatcher函数BOOL WINAPI StartServiceCtrlDispatcher( _In_ const SERVICE_TABLE_ENTRY *lpServiceTable);函数功能:连接到服务控制管理器参数:一个SERVICE_TABLE_ENTRY结构的指针原创 2015-08-13 16:18:57 · 9700 阅读 · 0 评论 -
[Win32] 服务程序开发(2)Session 0隔离(上)
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:在上一篇博文中,我说了如何创建一个系统服务原创 2015-08-14 15:11:30 · 4282 阅读 · 0 评论 -
[Win32] 服务程序开发(3)Session 0隔离(下)创建SYSTEM权限可交互进程
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/47662727在上上篇博文中,我说了如何编写一个系统服务,上一篇,介绍了如何穿透Session 0在当前用户的桌面上创建一个进程,但是缺陷很明显,如果UAC处于开启状态,创原创 2015-08-14 16:13:27 · 4824 阅读 · 0 评论 -
GdiplusFlat(2)WM_PAINT消息,窗口子类化和设备上下文
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/47169605上一篇博文(GdiplusFlat(1)GDI+平面API:用GDI的思想进行GDI+编程 ,地址:http://blog.csdn.net/zuishikonghu原创 2015-07-31 16:17:35 · 2975 阅读 · 0 评论 -
GdiplusFlat(7)双缓冲绘图和DC透明复制
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:在上几篇中,我们说到了通过GdipCreateFromHDC函数将HDC(设备上下文句柄)装换成GDI+的Graphics对象,讲到了画笔和画刷的使用,并演示了何利用GDI+Flat来画图片和画文字。其实,我们使用GdiplusFlat的根本目的并不是为了作图,而是为了做出原创 2015-08-07 10:07:20 · 4397 阅读 · 0 评论 -
[Win32] DLL的开发和使用
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:为何要开发DLL:1。DLL可以在程序需要时加载或卸载,可以实现软件的“模块化开发”。2。可以达到一些特殊目的,比如通过DLL注入来进入另一个进程的空间,Hook它的函数,等等。所以不管怎么说,DLL是Windows开发中相当重要的一部分。DllMain原创 2015-08-19 15:41:41 · 3442 阅读 · 0 评论 -
[Win32] DLL注入技术
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/47781883DLL注入是什么?DLL注入是把指定的DLL加载到另一个进程的内存空间中去的技术。为何要注入DLL?完成一些特殊目的,病毒把恶意代码隐藏在正常的宿主进程中,瞒天过原创 2015-08-19 16:46:58 · 5916 阅读 · 0 评论 -
Ring3 下 API Inline Hook 优化方案探索与实现
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/51302024 以前写过两篇“[Win32] API Hook(1)在32/64位系统上的实现”博客,介绍并给出了 API inline hook 代码,如下: bl原创 2016-05-03 09:30:33 · 7380 阅读 · 4 评论 -
[Win32] UAC用户账户控制(提权+降权)
首先必须澄清一下:UAC不是Vista才有的东西!我反正知道XP就有了,2000不知道,XP上也有UAC,只不过默认没有开启,你要是愿意可以自己开启,只不过太不人性化了,和Linux上的switch user一样不人性化,没次提权必须输入管理员用户的密码。所以Vista的UAC根本就不是什么新鲜玩意,如果当时完全按照微软的规范编程,升级到Vista以后UAC带来的兼容性问题虽然有但不会原创 2015-07-20 10:40:39 · 19294 阅读 · 1 评论 -
GdiplusFlat(6)绘制文本
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/47296351在上几篇中,我们说到了通过GdipCreateFromHDC函数将HDC(设备上下文句柄)装换成GDI+的Graphics对象,讲到了画笔和画刷的使用,并演示原创 2015-08-05 16:43:18 · 4373 阅读 · 0 评论 -
[Win32SDK基本]ListView Controls(2)Report (details) View 详解(续)
在上一篇”[Win32SDK基本]ListView Controls(1)Report (details) View 详解“中原创 2015-07-15 14:41:28 · 4404 阅读 · 4 评论 -
[Win32] 直接读写磁盘扇区(磁盘绝对读写)
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:正讲着驱动开发呢,这里突然插一篇Win32的博文,其实,还是做引子,上一篇博文“IRP与派遣函数”中,我们知道了驱动程序需要处理I/O请求,我们先来看看怎么发出一个I/O请求。一般的程序不会直接去访问磁盘,毕竟有文件系统(FileSystem)帮助我们轻松地组织文件,但是有原创 2016-01-03 16:31:00 · 23972 阅读 · 17 评论 -
关于无边框窗口的兼容性问题
昨天在虚拟机(XP SP3)测试程序的时候,发现无边框窗口均无法正常显示窗口,之后我又去Win7下测试,发现在开启Areo的情况下,不管是不是开启了透明,窗口都可以正常显示(和Win8一样),如果没有开启Areo,即选择“Win7 Basic”主题,无边框窗口和在Xp下一样,无法显示,于是经过查资料研究,终于找到了一个解决方法。这是原来的窗口无边框的方法,核心是SetWindowLong修改了原创 2015-08-12 10:33:33 · 2539 阅读 · 0 评论 -
[Win32] ShellHook的实现
启动Windows,加载Win32子系统,登录一个用户会话后,会启动Shell程序,默认是explorer.exe,就是我们看到的桌面和任务栏等,其实Shell是可以自定义的,我们完全可以自己编写一个Shell取代系统的Shell。下面我们来看看编写Windows Shell的核心技术之一——ShellHook。ShellHook是什么?当一个窗口创建、激活、关闭时,explorer总原创 2015-11-08 13:25:01 · 4085 阅读 · 0 评论 -
驱动开发(3)使用SCM加载NT驱动(用应用程序加载驱动)
在上一篇中,我简单介绍编写了一个NT驱动空壳,这一篇中,将介绍如何自己编写一个驱动程序加载器,即使用编程的方法加载驱动,而不是使用工具。我在上一篇中也提到了,驱动程序是通过服务加载的,我以前写过SCM(服务控制管理器)API的文章,详细介绍各函数的具体用法,详见:[Win32] SCManager 服务控制管理器API(1):http://blog.csdn.net/zuishi原创 2015-10-02 11:02:59 · 2896 阅读 · 0 评论 -
[Win32] 多线程和线程同步
多线程:一个进程创建时,默认情况下系统会为它创建一个主线程,(如果使用Native API创建的线程就没有主线程,是空的,必须自己创建主线程),应用程序可以自己创建线程,还有以前写过的一篇“DLL注入技术”,就是远程在其他进程中创建线程,然后让远程线程load我们的dll。系统是如何实现多线程的?其实,对于单CPU单核心的设备上,在一个确定的时刻,只能执行内存中的一个指令。所谓的“多任务抢占式原创 2015-10-02 10:46:46 · 6087 阅读 · 0 评论 -
[Win32] 服务程序开发(4)自定义控制码与服务通信
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/47720285在上几篇博文中,我演示了如何编写一个系统服务,介绍了如何穿透Session 0在当前用户的桌面上创建一个用户进程,也可以获取服务自己的权限令牌在用户的桌面上创建一原创 2015-08-17 09:35:07 · 3553 阅读 · 0 评论 -
[Win32] SCManager 服务控制管理器API(1)
1。OpenSCManager 打开服务控制管理器函数原型:SC_HANDLE WINAPI OpenSCManager( _In_opt_ LPCTSTR lpMachineName, _In_opt_ LPCTSTR lpDatabaseName, _In_ DWORD dwDesiredAccess);lpMachineName:置NULLlpD原创 2015-08-20 15:40:25 · 5346 阅读 · 0 评论 -
[Win32] SCManager 服务控制管理器API(2)
在上一篇博文“[Win32] SCManager 服务控制管理器API(1)”中(地址:http://blog.csdn.net/zuishikonghuan/article/details/47803033),讲到了打开服务控制管理器、创建服务、打开服务、删除服务、获取服务状态、启动服务、发送控制码,这一篇继续。9。枚举服务原创 2015-08-21 10:43:53 · 4043 阅读 · 0 评论 -
[Win32] 获取进程完整路径
上两篇中,我们讲到了ToolHelp API,Process API和提升Debug权限,这一篇中来说说如何获取进程的程序路径。获取进程路径其实有很多方法。方法1。使用ToolHelp API枚举模块,其中,Module32First得到一个MODULEENTRY32 结构,结构中有一个szExePath成员,这个成员代表这个进程第一个模块的路径,也就是进程的路径(32位程序只能获取3原创 2015-08-18 10:35:49 · 11210 阅读 · 0 评论 -
GdiplusFlat(1)GDI+平面API:用GDI的思想进行GDI+编程
坚信GdiplusFlat比Gdiplus好!我要在资料匮乏的GdiplusFlat上打下一片天地!没有api文档?我去百度找,就算把那些其他不支持GDI+类的语言中用GdiplusFlat的例子翻出来看,头文件里函数和结构没有声明?我自己声明!实在不行?我把你们这些GdiplusFlat函数一个个从dll里load进来直接动态调用!!GDI+(Gdiplus)想必大家都不陌生,MSDN给出的解释是Windows GDI+ is a class-based API for C/C++ program原创 2015-07-21 10:49:25 · 3719 阅读 · 2 评论 -
让Socket穿透Windows防火墙
创建了ServerSocket以后,并不是没事了,其实上,为了系统安全考虑,创建服务器套接字后,只是创建成功了,但是在数据包入站的时候呢,会被防火墙过滤,因此,我们就收不到来自网络的数据了。因此,在系统的默认安全级别下,当一个程序第一次创建ServerSocket时,系统会弹出一个这样的对话框:除非用户同意,点“运行访问”,否则就没办法通信,而你的程序,收不到半点异常因为防火墙不是原创 2015-08-28 16:20:43 · 13438 阅读 · 1 评论 -
[Win32] 注册表操作(1)基本操作和创建开机自启动
想必注册表大家都不陌生,微软自然也提供了注册表操作的API,通过这些API,我们可以修改注册表达到很多目的,比如添加关联,修改系统设置等。注意:绝大多数的注册表键的ACL都是不允许标准用户权限的程序写入的,因此,请使用管理员权限运行程序。一。基本感念:1。键(项),值项注册表编辑器左侧的那些文件树中的每个都叫“键”(也叫项),右侧的那些叫值项(也可叫“键值”)。子键(子原创 2015-07-20 13:52:39 · 6198 阅读 · 0 评论 -
[Win32SDK基本]开启UI系统风格
最近太忙了,马上就期末考试了,本来想说说模态窗口来的,但是稿子没写完,所以今天先说说系统风格:先看看我之前做的一系列程序的运行图片:开启系统风格之后:可以发现按钮可以文字图片共存了,同时界面漂亮了很多,这是如何实现的呢?其实系统风格就是使用win32的控件版本6.0方法一:直接在cpp里头文件include下面加上这么一行即可:#pragma comment原创 2015-07-08 13:44:25 · 3242 阅读 · 0 评论 -
[Win32SDK基本]Button Control(1)Push Button 和 BM_SETIMAGE
上两篇中介绍了Static Control,这几篇来介绍一下Button ControlButton Control有很多类型,下图中展示了这一点(图片来自MSDN:https://msdn.microsoft.com/en-us/library/windows/desktop/bb775947(v=vs.85).aspx)这一篇中就介绍一下Push ButtonMSD原创 2015-06-26 13:45:02 · 3284 阅读 · 0 评论 -
[Win32SDK基本]Button Control(2)Check Boxes
本文由CSDN用户zuishikonghuan所作,转载请注明出处:上一篇中介绍了,这次来说说 Check Boxes。MSDN:A check box consists of a square box and an application-defined label, icon, or bitmap that indicates a choice the user can m原创 2015-06-30 13:40:32 · 2606 阅读 · 0 评论 -
[Win32SDK基本]Static Control(2)Image Static Control
上一篇博文([Win32SDK基本]Static Control(1)Text Static Control 和 WM_CTLCOLORSTATIC,地址:http://blog.csdn.net/zuishikonghuan/article/details/46604945)中,介绍了Text Static Control的使用以及利用 WM_CTLCOLORSTATIC 消息修改其原创 2015-06-24 13:40:54 · 3788 阅读 · 0 评论 -
提取VS的Win32SDk用C/C++编译器 (续)——使用方法
上一篇博文(地址:http://blog.csdn.net/zuishikonghuan/article/details/46359933)中,我介绍了如何从VS中提取Win32SDK用的C/C++编译器,这一篇续,就介绍如何使用它。进入提取的目录,D:\vs12c\bin目录下,并在当前目录启动命令提示符,如图。运行自制的环境变量加载脚本f.bat(f.bat的内容我已经在上原创 2015-06-05 13:38:40 · 4829 阅读 · 4 评论 -
提取VS的Win32SDk用C/C++编译器
微软的VS确实好用,但是VS安装太麻烦,安装完了还占一大把空间,没法随身携带。(有一次在网吧安装VS安了2个小时都没安完。。。)所以,我就想,有没有一种方式可以让我可以随时随地地享受Win32SDK开发的乐趣呢?我知道VS有IDE和控制台两种编译选择,那么,何不把VS的C/C++编译器提取出来放U盘里,不就可以带着编译器满天下跑了吗?于是经过一番研究,果然可行!首先,新建一个文件夹原创 2015-06-04 13:43:01 · 6636 阅读 · 3 评论 -
[Win32SDK基本]Static Control(1)Text Static Control 和 WM_CTLCOLORSTATIC
Static Control是最常用的win32控件之一,它可以显示文字,图片或图标本篇先介绍关于显示文字的Static ControlMSDN: https://msdn.microsoft.com/en-us/library/windows/desktop/bb760769(v=vs.85).aspx关于创建子窗口,子窗口一般都是在父窗口的消息中创建的,也是用函数,但是原创 2015-06-23 13:42:54 · 4768 阅读 · 0 评论