Windows开发及安全攻防
文章平均质量分 69
新时代没有Windows的星辰大海,但这面帆永远不会落下!
CodeBowl
一个靓仔!
展开
-
一种轻量的“虚拟机”——Windows 沙盒模式
相比虚拟机和第三方的沙盒软件,Windows Sandbox启用后仅占用100MB硬盘空间,还能与物理机安全地共享部分内存空间。简单来说就是易用、免费、不卡机!由于要保证沙盒内的数据不泄露并影响物理系统,所有文件读写都经过了重定向,所以沙盒虚拟化对存储性能影响较大,建议用固态。注:win10沙盒每次关闭都会自动清零原创 2023-04-13 22:23:19 · 2047 阅读 · 0 评论 -
Windows:如何将普通进程注册为服务进程
最近遇到了一个需求:需要把普通进程封装为服务进程,将积累的几种方案记录下来Windows:如何将普通进程注册为服务进程进程和服务将进程改为服务一、通过代码来实现二、利用VS将窗口服务程序改为Windows服务于后台运行三、sc命令四、Instsrv.exe+Srvany.exe五、nssm注册简单介绍使用步骤总结进程和服务首先来了解一下什么是服务和进程进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。对于操 作系统而言,其调度.原创 2022-01-05 22:53:11 · 4273 阅读 · 1 评论 -
在Windows上安装git
Git是由Linus花俩周时间开发出来的分布式版本控制系统,之前只运行在Linux系统上,后来被扩展到了多平台上。今天进行在Windows安装Git!下载地址在Windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安装即可。...原创 2021-11-28 16:20:51 · 227 阅读 · 0 评论 -
用RAII的思想去管理Windows的读写锁SRWLock
前言最近对C++的RAII(资源申请初始化),又有了新的理解。我们C++中使用一个资源(例如 内存)的步骤:申请资源使用资源释放资源简述一下RAII:就是可以自动回收资源,将资源封装成对象。关键在于:变量的生命周期结束后,会自动释放变量。例如一个变量是局部变量,存储在栈上,那么当该函数结束后,这个变量就已经被释放掉了。那么,当变量是类变量的时候,当该类对象变量生命周期结束后,应该调用析构函数释放掉该资源!生命周期局部变量:存储在栈上,生命周期结束后,由栈释放。全局或静态变量:原创 2021-11-23 23:02:03 · 561 阅读 · 0 评论 -
工程实践:Windows迅捷开发,可以提升效率的一些小技巧
本专栏为工程实践,主要是作为小白在开发中,积累的心得,是在技术和语言层次上的一些感悟和技巧,记录下来,备忘!Windows开发Windows开发,客观地说,现在学习确实有点49年进国军的感觉了。一般而言,所谓的Windows开发,我认为有一个标准就是是否是在Windows平台上采用微软自己专有的技术,比如你用VC++/MFC/COM或者WinForm、WPF开发一个客户端程序,用WinSocket,IOCP开发服务器端程序,用http://ASP.NET开发网站服务程序,用Direct3D开发.原创 2021-11-19 23:11:51 · 981 阅读 · 0 评论 -
工程实践:Windows包管理工具——VCPKG
工程实践:Windows包管理工具——VCPKG前言Windows C++开发使用第三方库使用第三方库存在的问题vcpkg的优点如何使用VCPKG总结前言作为推荐大家使用vcpkg来进行Windows开发,或者Windows、linux和mac跨平台开发的管理工具,熟练之后,可以大大提高效率!!!作为windows开发,推荐必会!Windows C++开发使用第三方库一般开发大型的Windows程序,都少不了使用开源的第三方库,例如我们要实现一个网络通讯的工程,自己实现一套的话,耗时耗力,还大概率原创 2021-11-19 22:51:39 · 730 阅读 · 0 评论 -
误入歧途的COM之旅(1):为什么我说是误入歧途
误入歧途的COM之旅(1)前言为什么将误入歧途呢?**COM历史**com简介com设计的出发点com的坑说说com的优点最后放一点com的争论贴总结前言首先此com非彼com(www.com),而是Windows的com机制!最近在项目中遇到了com相关的问题,说起来就离谱,我们要实现一个动态链接库提供服务,但是调用方是用com机制去调用的,并且要求这个调用方exe不能修改,也就是我要实现适应com接口去实现一个dll。但是更离谱的是,这个动态库应该是跨平台的,同时支持com和跨平台,咨询了好多原创 2021-11-18 23:58:13 · 964 阅读 · 0 评论 -
俩句话理解VS的MT/MD和MTD/MDD。
VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:多线程(/MT)、多线程调试(/MTd)、多线程DLL(/MD)、多线程调试。DLL(/MDd)、单线程(/ML)、单线程调试(/MLd)。目前Win7、Win10等,选择MD问题不大,但是XP等一些比较老的系统需要选择MT。为什么这么说呢?下面我用俩句话解释一下MT和MD的区别。(1)/MD,表示运行时库由操作系统提供一个DLL,程序里不集成。编译出来的文件比较小。使用的库文件是 MSVCRT.lib(2)/MT,表示原创 2021-10-26 19:43:30 · 1155 阅读 · 0 评论 -
热补丁:为什么Windows API都以无意义的 mov edi,edi 开头?
为什么Windows函数都以无意义的MOVEDI、EDI指令开始?我们参考Windows 的反汇编,返现函数的开始都是以mov edi,edi,它看似毫无意义(该指令将寄存器复制到自己,并没有更新标志;这是完全没有意义的。)原因是:这是故意设计的热补丁(hot-patching)。热补丁这个MOV EDI, EDI指令是两个字节。NOP,这仅够在跳转指令中进行修补,以便可以动态更新函数,即运行时修改一个函数的行为。修改过程如下:把MOV EDI, EDI修改为一条短跳转指令(一条短跳转指令恰好原创 2021-10-18 22:23:59 · 446 阅读 · 0 评论 -
[Windows Hook]MinHook库的使用方式
MinHook就是通过Inline Hook实现的,通过生成库文件,在我们的项目中包含头文件以及对应库文件就可以实现Hook。学习一个库,先学习怎么用,然后再阅读源码学习原理。原创 2021-10-16 18:43:27 · 6350 阅读 · 1 评论 -
VS2022 Preview 尝鲜版 下载教程
作为一名新时代程序员,我一直喜欢用比较新的软件版本,之前在Windows开发用的一直是Visual Studio,今年是2021年,但是vs2022已经出了尝鲜版,遂下载,记录过程!下载地址vs2022下载如果上面的官网打不开的话,可以选择下面的这个网址:第三方下载更新内容其中我比较关注的是对于C++20的支持,还有增强的调试。增强的调试中vs集成了一些新的工具,对于开发者还是比较友好的!此外最牛逼的是:软件在全新的2022版本当中可以说是有一个跨时代的改革,这个版本将是第一款可以在64位原创 2021-10-15 14:56:19 · 1279 阅读 · 0 评论 -
Windows Hook链机制详解
每一个Hook都有一个与之相关联的指针列表,称之为钩子链表,由系统来维护。这个列表的指针指向指定的,应用程序定义的。原创 2021-10-12 22:56:07 · 672 阅读 · 0 评论 -
Windows系统中文乱码,最简单解决方案,调用函数即可!
乱码原因windows下控制台的编码使用的是系统的默认编码,通常情况下是ANSI(GBK),如果输出乱码,那就是源文件编码和该编码不一致。解决方法一(不推荐)这种方式简单但不推荐,就是将你的源文件和系统默认编码改成一样。但这种方法的问题在于,如果有人在其他编码的环境(linux,osx下默认基本是utf8编码)下查看你的源码,他们看到的是乱码。解决方法二(推荐)麻烦一点,但是是个好习惯,用utf8编码的源文件,将utf8编码转成GBK后输出,win32下用MultiByteToWideChar,W原创 2021-10-12 22:22:17 · 9536 阅读 · 0 评论 -
Windows环境下读取文件,输出中文乱码原因剖析及解决方案!
Windows读文件中文乱码问题描述问题复现直接输出中文读文件原因分析**3.文件编码格式**解决方案问题描述这俩天,遇到了一个问题,解析json的时候,中文老是乱码。复现后,发现读取文件时,遇到中文,在控制台输出的时候也会乱码,遂进行详细分析和解决。问题复现直接输出中文//直接输出中文void test1(){ std::cout << "中文测试!" << std::endl;}直接控制台输出中文,没有毛病。读文件//读文件void test2原创 2021-10-10 16:51:40 · 3675 阅读 · 0 评论 -
Windows编程下的字符串格式及编码问题
大家在学习或者使用Windows编程中,经常会碰到字符串之间的转换,char*转LPCWSTR也是其中一个比较常见的转换。下面就列出几种比较常用的转换方法。大家可以根据自己的需求选择相对应的方法,下面来一起学习学习吧。为什么总结这个问题一些代码在其他平台下是正常的,但是在Windows环境下,经常遇到中文乱码的情况,很是头疼!1、通过MultiByteToWideChar函数转换MultiByteToWideChar函数是将多字节转换为宽字节的一个API函数,它的原型如下:int MultiByt原创 2021-10-10 16:14:32 · 612 阅读 · 0 评论 -
手把手教你用SetWindowsHookEx做一个键盘记录器
“无忌,我教你的还记得多少?”“回太师傅,我只记得一大半。”“那,现在呢?”“已经剩下一小半了。”“那,现在呢?”“我已经把所有的全忘记了!”“好,你可以上了!”羡慕张无忌,忘记了武功,打败了敌人;而我自己,忘记了武功,菜哭了自己。已经一年多没有接触这个了,忘得干干净净,幸亏肌肉记忆还在,学起来十分亲切,废话不多说,进入正题。SetWindowsHookEx制作键盘记录器前言消息Hook消息Hook流程通过setWindowsHookEx()实现键盘记录器**实现原理****安装钩子*.原创 2021-09-10 08:23:56 · 3784 阅读 · 0 评论 -
Windows Hook的简单介绍——此树是我栽,此路是我开
千里之行,始于足下!今天是正式启程的第一天,一直明白自己的缺点就是不够坚持,同时没有坚定目标,或许是目标不够诱人吧。但是如果我可以成为这个领域中相当牛逼的人,那还是十分有吸引力的。之前学习的过程中,学会了一项技术,时常感觉“无用武之地”,这应该是我自己学习的一个误区,之后自己会多在实战中检验技术,也希望有大佬多多指点。本文内容本文将简单介绍Windows Hook的基本内容,以及一些自己的看法,希望可以帮助您快速了解这一内容。HOOK是什么?Hook,中文里常常被译作“钩子”或者“挂钩”,其实是原创 2021-09-08 08:47:04 · 2508 阅读 · 0 评论 -
迷茫的少年与迷茫的Windows前程,新时代没有载我的船
下午看了中国传奇白帽子们的故事,大受震撼,不知道那个传奇的时代,造就了他们,那是传奇的他们,成就了那个时代,看完,我意识到,我也想成为他们那种人! 毕业俩月有余,惶惶不可终日。希望有大佬可以指点迷津 “惶惶”也许说的过分可怕了,但是形容我此刻的心境应该是合适不过了,毕竟说脏话不好。作为一个有志青年,即便整日口上喊着“躺平”,也希望自己去掉“平庸”的标签。 从学习计算机开始满打满算已有四年,说到成就,确没有拿得出手的东西,和少年时,那个认为自己是天选之子般的主角已经相差甚远。 .原创 2021-09-07 21:16:08 · 1118 阅读 · 0 评论