独钓寒江雪

用C++的优雅,驯服Windows的狂野

今天我做了一个重要的决定,我删除了博客中的大部分文章,后面我也会逐步闭源我的开源项目。

我写技术文章一方面是作为自己的公开笔记,方便自己查阅,另一方面希望能帮助到后来者,让他们少走弯路,能够得到他们的一点赞美。软件行业也就是在这个你帮我,我帮你的良性循环下蓬勃发展起来的吧。

但是AI时代的到来,让一切变了味。AI厂商忽视版权、开源协议等限制,将软件开发者为之付出心血的技术文章、开源代码用作其模型训练的素材,并整天吹捧着用AI大模型来取代程序员。暂且不谈AI能否取代程序员,就说没有程序员的无私奉献(数不尽的技术文章和开源代码),哪来这些AI大模型,这种杀鸡取卵的做法能否长久,让我们拭目以待吧。

为什么现在炒的最火热AI应用总是集中在AI编程方面,因为过去的这些年,程序员为AI提供了太多训练素材。话说AI若真是屠龙之术,为何总盯着程序员的这一亩三分地,何不去搞我们国家被别人掐脖子的行业,真正的造福于民。

曾一度我还在嘲笑那些构筑行业壁垒的行为,觉得软件行业的开源、分享是一件多么伟大的事情。现在看来,这是一件愚蠢的行为,当然很多人会反驳我的这个观点,他们可能会问既然开源这么不好,为什么Google把安卓系统开源了?这里的原因我不过多解释,请自行问AI。

行业的健康发展建立在从业人员幸福指数提升的基础上,这好比一个国家即使再发达,它的人民生活的不幸福,那生活在这个国家又有什么意义了。

我预测以后进行知识无偿知识分享的人会越来越少,而且越来越多的开源项目会逐渐走向闭源,这虽然不利用行业的发展,但对从业人员来说却是一件好事情。

传统的抓包工具(如 Fiddler、Wireshark)在面对愈发严格的安全措施时,如 HTTPS 双向认证(mTLS)、内存加载证书、证书绑定等,它们往往显得力不从心。本文旨在带你超越传统抓包的边界,不仅会回顾抓包工具的核心原理,更将深入 Hook 注入技术,实战演示如何通过拦截关键函数,动态获取 SSL 证书、解密 HTTPS 明文流量。

这可能是全网最具深度的关于抓包文章。

阅读全文 »

在数字时代的攻防战场上,Windows 注入与 Hook 技术如影随形,它们始终是开发者与安全研究员的“终极兵器库”。无论是逆向工程师通过动态调试破解加密算法,还是恶意软件通过进程注入窃取敏感信息,这项技术始终游走在合法与非法的灰色边缘。它既是系统底层机制的“潘多拉魔盒”,也是守护软件安全的“达摩克利斯之剑”——掌握它,你既能修复高危漏洞,也可能成为攻击者的帮凶。

阅读全文 »

CMake 是一个开源、跨平台的构建系统生成器(Build-system Generator)。

本文是 Modern CMake 简明教程系列的下篇,上篇请移步至 Modern-CMake简明教程-上 ‘《Modern CMake 简明教程(上)》’ ,中篇请移步至 Modern-CMake简明教程-中 ‘《Modern CMake 简明教程(中)》’ 。

本教程默认 CMake 最低版本为 3.16,即 cmake_minimum_required(VERSION 3.16)

阅读全文 »

CMake 是一个开源、跨平台的构建系统生成器(Build-system Generator)。

本文是 Modern CMake 简明教程系列的中篇,上篇请移步 Modern-CMake简明教程-上 ‘《Modern CMake 简明教程(上)》’

本教程默认 CMake 最低版本为 3.16,即 cmake_minimum_required(VERSION 3.16)

阅读全文 »

CMake 是一个开源、跨平台的构建系统生成器(Build-system Generator)。

CMake 是构建系统生成器,而不是构建系统,CMake 支持生成不同构建系统所支持的工程文件,如 Visual Studio,XCode,Makefile 等。

本教程作为 CMake 的简明教程,不会事无巨细的讲述 CMake 的每一个语法,而是以实用为目的,介绍 CMake 的基础语法和常用指令。

虽然只是简明教程,但通过本教程,你仍然可以掌握 CMake 的脉络,熟练应用 CMake 于项目中。

阅读全文 »

在前面的《玩转 Qt 2D 绘图》系列文章中,已经介绍了 2D 绘图中常用的知识,本文主要通过一个汽车仪表盘的实例来综合应用前面所介绍知识点,并且还介绍了一些 Qt 绘图的常用技巧。

相关文章:

  • Qt/玩转Qt-2D绘图之坐标系
  • Qt/玩转Qt-2D绘图之画家的工具
  • Qt/玩转Qt-2D绘图之画家
阅读全文 »

在 Qt 2D 世界中,图形基本都由点、线、矩形、多边形、椭圆、圆、折线、曲线、文本、贴图等基本元素辅以着色而构成,而且 QPainter 类已经提供了这些元素的绘制方法,花点时间掌握这些方法,也就掌握了 Qt 2D 图形控件的制作,余下的就是勤学多练、孰能生巧了。

阅读全文 »

软件是对现实世界的抽象,在设计软件接口时通常也会参考现实世界来进行设计。

在现实世界中,画家使用画笔、画刷这些工具在宣纸上作画,而在 Qt 中,画家是 QPainter 对象(画家的大脑则是 QPaintEngine),纸张可以是 QPaintDevice 的任何子类对象,如 QWidget、QImage、QPixmap、QGLPixelBuffer 等;在 QPainter 选好纸张后,就可以使用画笔来勾勒物体的轮廓了,Qt 中的画笔是 QPen 对象;画完轮廓后,可能还需要使用画刷来填充轮廓,Qt 中的画刷是 QBrush 对象。

阅读全文 »

Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,主要基于 QPainter、QPaintDevice 和 QPaintEngine 这三个类实现,其中:

  • QPainter 执行具体的绘图操作,QPainter 类提供了大量的 GUI 编程所需的函数,如 drawLine、drawImage 等。
  • QPaintDevice 是一个基类,提供绘图设备的抽象接口,它是一个二维空间的抽象,可以使用 QPainter 在其上进行绘制,常见的继承该类的绘图设备有 QImage、QPixmap、QWidget、QOpenGLPaintDevice 等。
  • QPaintEngine 提供了一些抽象接口,用于实现 QPainter 在不同的设备上进行绘制。QPaintEngine 由 QPaintDevice 创建并管理。
阅读全文 »
0%