在笔者上篇文章《驱动开发:内核扫描SSDT挂钩状态》中简单介绍了如何扫描被挂钩的SSDT函数,并简单介绍了如何解析导出表,本章将继续延申PE导出表的解析,实现一系列灵活的解析如通过传入函数名解析出函数的RVA偏移,ID索引,Index下标等参数,并将其封装为可直接使用的函数,以在后期需要时可以被直
为什么建议使用对象来替换枚举?
在设计模型时,我们经常会使用枚举来定义类型,比如说,一个员工类 Employee,他有职级,比如P6/P7。顺着这个思路,设计一个 Level 类型的枚举:
class Employee {
private String name;
/**
*以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/Xd_FwT8E8Yx9Vnb64h6C8w
带给现代 C++ 性能飞跃的特性很多,今天一边聊技术,一边送福利!
过去写 C/C++ 代码,大家对数据做传递时
某日二师兄参加XXX科技公司的C++工程师开发岗位第9面:
面试官:C++中,设计一个类要注意哪些东西?
二师兄:设计一个类主要考虑以下几个方面:1.面向对象的封装、继承及多态。2.big three或者big five。3.运算符和函数重载、静态成员、友元、异常处理等相关问题。
面试官:请介绍
某日二师兄参加XXX科技公司的C++工程师开发岗位第10面:
面试官:了解sizeof操作符吗?
二师兄:略微了解(不就是求大小的嘛。。)
面试官:请讲以下如何使用sizeof?
二师兄:sizeof主要是求变量或者类型的大小。直接使用sizeof(type)或sizeof(var)即可。
面试
矩阵乘法
0
1
1
1
这是一个矩阵,那么我要让它乘以一个这样的矩阵
1
0
0
1
那么它的结果就是
0
1
1
1
如果乘以它自身,那么它的结果就是
1
1
1
2
那么矩阵乘法的公式就应该是
(此图为网图,侵权可以私信我)
可以发现,矩阵乘法的右单位元应该是
1
0
0
0
1
0
0
0
一、C++ 指针的算术运算
递增一个指针
我们喜欢在程序中使用指针代替数组,因为变量指针可以递增,而数组不能递增,因为数组是一个常量指针。下面的程序递增变量指针,以便顺序访问数组中的每一个元素:
实例
#include <iostream>
using namespace std;
在笔者前一篇文章《驱动开发:内核文件读写系列函数》简单的介绍了内核中如何对文件进行基本的读写操作,本章我们将实现内核下遍历文件或目录这一功能,该功能的实现需要依赖于ZwQueryDirectoryFile这个内核API函数来实现,该函数可返回给定文件句柄指定的目录中文件的各种信息,此类信息会保存在
某日二师兄参加XXX科技公司的C++工程师开发岗位第11面:
面试官:在C++中,你都知道都哪些运算符?
二师兄:啥?运算符?+-*/=这些算吗?
面试官:嗯,还有其他的吗?
二师兄:当然还有,+=,-=,*=,/=,==,还有逻辑运算,位运算等。
面试官:好的。那你知道这些运算的优先级吗?
二
如果某个派生自 QObject 的类重写 eventFilter 方法,那它就成了事件过滤器(Event Filter)。该方法的声明如下:
virtual bool eventFilter(QObject *watched, QEvent *event);
watched 参数是监听事件的对
什么是主席树
主席树这个名字看上去很高级,其实不然,它还有另一个名字——可持久化线段树。
什么是可持久化
可持久化顾名思义就是它可以变得持久,就是我们对他不断进行单点修改后,突然查询它的某一个历史版本,这就叫可持久化。
引入例题
洛谷3919:可持久化数组
题目大意
如题,你需要维护这样的一个长度
某日二师兄参加XXX科技公司的C++工程师开发岗位第12面:
面试官:了解位运算吗?
二师兄:了解一些。(我很熟悉)
面试官:请列举以下有哪些位运算?
二师兄:按位与(&)、按位或(|)、按位异或(^),按位取反(~)、左移(<<)和右移(>>)。
面试官:好的。
参考:
(35条消息) Qt事件循环及QEventLoop的使用_kupeThinkPoem的博客-CSDN博客
(35条消息) Qt消息机制:事件分发和事件过滤_qt 消息过滤_SOC罗三炮的博客-CSDN博客
Qt 事件系统总结
Qt 事件
在 Qt 中,事件(event)是一些对象,它
今年是园子商业化生死攸关的一年,上半年快过去了,园子的商业化艰难而努力地向前推进。
今年的商业化努力分三个方向进行:
1、人才服务
2、云市场
3、VIP会员
昨天发布的 行行AI人才培养「常青藤计划」是人才服务方向的商业化努力,其中的商业模式不是培训,是针对企业的人才服务,是和园子的天使投资方顺
一:背景
1. 讲故事
前段时间训练营里有朋友问 内存映射文件 是怎么玩的?说实话这东西理论我相信很多朋友都知道,就是将文件映射到进程的虚拟地址,说起来很容易,那如何让大家眼见为实呢?可能会难倒很多人,所以这篇我以自己的认知尝试让大家眼见为实。
二:如何眼见为实
1. 我想象的文件映射
在任何讨论
还记得《驱动开发:内核LoadLibrary实现DLL注入》中所使用的注入技术吗,我们通过RtlCreateUserThread函数调用实现了注入DLL到应用层并执行,本章将继续探索一个简单的问题,如何注入ShellCode代码实现反弹Shell,这里需要注意一般情况下RtlCreateUserT
下载
https://www.wxwidgets.org/downloads/
下载压缩包即可
编译
打开 buildmsw 目录下的 sln 文件
vs发布版本与vc版本对应关系: vs发布版本与vc版本对应关系
vs发布包版本
vc版本
Visual Studio 2003
VC7
Visu
1、求解器
1.1 复制源码
本案例以icoFoam为例,复制【openFOAM/OpenFOAM-9/applications/solvers/incompressible/icoFoam】文件夹至run文件夹下(我的是【openFOAM/mtl-9/run/solvers/incompress
某日二师兄参加XXX科技公司的C++工程师开发岗位第13面:
面试官:什么是RAII?
二师兄:RAII是Resource Acquisition Is Initialization的缩写。翻译成中文是资源获取即初始化。
面试官:RAII有什么特点和优势?
二师兄:主要的特点是,在对象初始化时获
C++是一门有着四十年历史的语言,先后经历过四次版本大升级(诞生、98、11、17(20),14算小升级)。每次升级都是很多问题和解决方案的取舍。了解这些历史,能更好地帮助我们理清语言的发展脉络。所以接下来我将借它的发展历程,谈一谈我对它的理解,最后给出我认为比较合理的学习路线指南。
C++0—