利用C++真正的弹出U盘
前言
为啥我要用C++来弹出我的U盘呢~
还是我那让人可爱的毕设里面的一个朴素无华的需求
在那个场景里面,我将U盘插进去,然后对其MBR分区写入一个特定的标签后,再从那个特定的位置读取数据进行验证是否已经将标签写入。
完成了这件事之后,我就需要将U盘进行弹出,以便于后续的U盘插入并进行打标签流程
C++ 弹出U盘有两个方案
本来我不知道U盘弹出有两个方案的,查阅资料和MSDN,最容易看到,也最常见的就是利用 CreateFile 打开设备的句柄,利用 DeviceIoControl 来对设备句柄执行 IOCTL_STORAGE_EJECT_MEDIA 这个操作码
当然前提是你句柄获取都是正确的,然后利用 FSCTL_LOCK_VOLUME、FSCTL_DISMOUNT_VOLUME、IOCTL_STORAGE_MEDIA_REMOVAL 这些操作码来排除其他进程的干扰和锁定U盘
可是这样子,居然弹出来的设备会变成这样子
你管这叫弹出?这不是我以前认识的弹出~
虽然也打开不了磁盘了,提示叫我插入磁盘
但是你这样子在设备管理器里面也还是可见的,即使使用不了,我利用 GetLogic ...
在VS2017中配置CppCheck代码静态检查工具
前言
最近代码写的稍微有点多,有写新功能,也有做旧代码的重构
回顾之前的代码,总是感觉当年写的像一坨翔~
这写的都是啥呀,哇~好丑的格式、好烂的代码……
运行起来的时候,哇~又崩了~哇又引发异常了~怎么又访问冲突了呀
所以,我们不能单靠VS自带的检查工具,虽然它也能检查出一些问题。但是我显然需要更强大的检查扫描工具
鉴于之前在华为实习时将代码丢到CI/CD中被PCLint吊锤,无限警告报错的经历
我第一时间就想到了配置PCLint。然后查了一下,卧槽,要收费?没钱没钱~
接着就开源真香系列,CppCheck 启动!
简单介绍一下CppCheck
Cppcheck是一种用于C和C ++ 编程语言的静态代码分析工具。 它是一个多功能工具,可以检查非标准代码。 [2] 创始人和首席开发人员是DanielMarjamäki。
Cppcheck是GNU通用公共许可证下的免费软件 。
来自维基百科解释 Cppcheck
开始安装搭建
到官网下载msi
我们点击链接下载文件
双击打开msi安装包,按照默认下一步即可
安装VS的插件
在扩展和更新里面搜索安装
这里有意思 ...
利用 Detours Hook CreateProcess 实现进程启动拦截
前言
为什么要去利用 detours 进行 Hook CreateProcess 实现进程启动拦截
因为学弟问到了这个问题,就结合之前发出来的那个 Hook OpenProcess 的手法一起给做出来了
进程启动拦截的作用
监控启动的进程,最近有什么进程启动过
在进程启动前可以被我进行一些操作,比如扫描是否有毒,有问题劳资就不给他启动了,对吧
所以,就做了一下这个~
我们知道 detours 是需要 一个和原函数声明一样的假冒函数的,所以,可以大部分参考之前那篇文章进行处理
这次代码贴的有点多,所以,就直接先给大家看看效果
想先看代码建议直接拖到最后看代码。
效果
Gif文件过大,不适用放到博客中,请点击打开github查看
效果GIF
安装detours
我在这里使用的办法,虽然是最不硬核的办法,但是可能是最节省时间的办法
那就是在NuGet里面安装
创建准备注入的dll项目
创建新项目去创建一个dll项目
声明我们需要的自己的 新-旧 CreateProcess 函数
注意Windows有两个CreateProcess,
一个是 CreateProcessA
...
VS2017 调试DLL的操作办法
前言
最近在搞Hook这东西玩,但是,感觉这玩意玩起来有点玄学的意味呀
所以,就想着用调试去揭开他的神秘面纱
简单介绍一下DLL
以下是来自百度百科的解释
动态链接库英文为DLL,是Dynamic Link Library的缩写。DLL是一个包含可由多个程序,同时使用的代码和数据的库。在Windows中,这种文件被称为应用程序拓展。例如,在 Windows 操作系统中,Comdlg32.dll 执行与对话框有关的常见函数。因此,每个程序都可以使用该 DLL 中包含的功能来实现“打开”对话框。这有助于避免代码重用和促进内存的有效使用。 通过使用 DLL,程序可以实现模块化,由相对独立的组件组成。例如,一个计账程序可以按模块来销售。可以在运行时将各个模块加载到主程序中(如果安装了相应模块)。因为模块是彼此独立的,所以程序的加载速度更快,而且模块只在相应的功能被请求时才加载。
在VS2017中对DLL工程进行设置
进入项目设置
这里可以分成两种调试办法,一种是非附加调试,另一种是附加到其他进程调试
区别是什么呢,下面分成两种说明
非附加调试
非附加调试,一般适用于:
本地开发 ...
利用 Detours Hook OpenProcess 实现指定进程保护
前言
为什么要去利用 detours 进行 Hook OpenProcess 实现指定进程保护呢
因为我的毕设是移动存储设备的安全监控
所以,要求软件在电脑上运行的时候,不允许用户自由的关闭程序。得将自己保护起来,就像杀软一样,要先将自己保护好了,再去保护别人
效果
这次代码贴的有点多,所以,就直接先给大家看看效果
安装detours
我在这里使用的办法,虽然是最不硬核的办法,但是可能是最节省时间的办法
那就是在NuGet里面安装
创建准备注入的dll项目
创建新项目去创建一个dll项目
声明我们需要的自己的 新-旧 OpenProcess函数
1234567891011121314static HANDLE(WINAPI* pOpenProcess)(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProcessId) = OpenProcess;HANDLE WINAPI hOpenProcess(DWORD dwDesiredAccess, BOOL bInheritHandle, DWORD dwProc ...
Github Pages + Coding Pages 同时部署 HEXO 并绑定自定义域名
前言
这篇文章主要介绍一下怎么将HEXO部署到 coding 中 ,并绑定自定义域名
这样子可以有效解决
百度无法索引部署在github pages中的博客内容
国内访问速度较慢
注册 CODING 账号进行部署
先注册一个账号 CODING
然后登陆进去
点击全部项目
新建项目
选择 DecOps 项目
填写项目名称
进入项目
点击构建与部署中的静态网站
进行实名认证
新建静态网站
添加之后,可以看到这样的界面
点击右上角的设置
绑定自定义域名
先将自己的自定义域名解析到CODING pages 上面先
等到十分钟左右,当然也不固定啦,有时快有时慢~
然后将自己的自定义域名添加到coding pages里面去
点击确定之后
可以看到这样的界面,会告诉你域名的证书正在申请中
等几分钟就会告诉你已经申请成功,显示正常了
将主机的SSH公钥放到配置文件里面去
进入个人设置里的SSH公钥设置
点击 新增公钥
然后将 ~/.ssh/id_rsa.pub 的内容拷进去就OK
在 _config.yml 中添加部署配置
123456depl ...
迁移之前的文章到博客中
可算迁移好我的文章了
经过两天的努力,终于将之前的三十多篇文章迁移到我的博客中了
三十多篇文章,均被我重新看了一遍,将很多需要添加段落标题的地方都加了标题
在整理的过程中,感觉到之前写的文章的格式的不规范。难怪经常被吐槽排版好乱。哈哈哈,虚心接受了。后面得再稍微注意一下格式,排版太乱的文章。将心比心,我也不喜欢看。就和我不看CSDN里面那些被各个博主抄来抄去的文章一样。
为啥不继续首发公众号了
为啥不继续将文章在公众号里面首发了呢
微信公众号对已发表的文章不好进行修正,才可以修正20个字
手机屏幕普通比较小,查看我发的文章的代码不方便
如果文章的长度过长,例如我发的某些文章长度达到两三千字。基本上都没谁会用手机看完它,按同学说的就是:这么长?打扰了~
微信公众号发文章的圈子大小决定了文章浏览量的多少。按照普通人的心理,点在看和分享的同学基本没几个。有几种心理
一种是感觉质量不好
一种是怕点了再看就被别人知道自己看了这些内容,与其身份、设定不符
一种就是有一种社交负担,怕别人认为:我觉得这内容不太好啊,你这都点在看?
一种就是纯属看到一半就退出不看的
再有一种是发现 ...
Github Pages 被攻击无法访问
今天早上就在整理我之前发过的一些文章,在做文章迁移
下午的时候,突然也就显示无法访问了
一开始还以为是我的梯子扑街了
然后,更换了一个节点,挂全局去访问
这时候,有意思的画面就出现了
不安全?你跟我说不安全?我用的可是github page里面强制使用的证书
直觉告诉我 这次gayhub可能被人家攻击了
然后跑去群里跟小伙伴告知了一声
然后,使用edge打开了一下下我的博客,显示如下
导出证书瞅一眼
帅啊,某位老哥的QQ引人瞩目
这证书劫持可是真滴骚骚了,访问就 不安全警告 或者 就直接访问不了
还有一些大佬们搭建的github page 上面的博客我也打开验证过了,无法打开。
猜猜Github的人什么时候才能修复好?
我感觉我就像一块海绵
我感觉我就像一块海绵,
因为我总能在汲取到水分时感到欣喜,
犹如甘露滋润了新叶。
但是海绵里的水总会被蒸发掉一部分,
所以我又得继续汲取水分,
循环往复无穷已。
Python分析聊天记录
跟妹纸聊天是每个男孩纸的梦想
同学们,许久不更新了~
内容嘛~如题所示,用Python来小小的分析一下和妹纸的聊天记录。
分析看看和她聊天互发了多少条消息,用到最频繁的词语是什么,最高频发送消息的时间等等。
PS:本文的数据展示已取得对方的同意~
导出聊天记录
首先,和她最主要的沟通工具是Tencent家的QQ,而比较少用的微信,就不作统计了。(PS:我差点找不到导出聊天记录的方法)
所以,为了节省大家的时间,给大家简明扼要的说说怎么导出聊天记录(方法不唯一,仅供参考)
到这里就已经是导出聊天记录了
准备写一手代码
咱们将聊天记录放到咱们的代码目录里面去,Python用起来
先统计一下我跟妹纸互相发送了多少条消息
这个数据的计算很简单,根据导出的聊天记录观察一下就可以知道要怎么统计了
如图,咱们只要统计用户名,备注名就可以了。其他不包含名字的,就不统计即可
咱们统计一下,互相发送最高频的词
这是柱状图,横轴就是词语,纵轴自然懂
这个数据的来源,是利用了最多人使用的jieba分词的库进行统计的
既然利用别人的库进行词语划分,所以我们要处理的还是,数据的筛选的问题 ...