自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

依然那霖哥

工作不是为了工作,学习也不是为了学习

  • 博客(111)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 【A-Protect】x86 Hook 系统调用

 代码DriverEntry 创建线程,部分执行代码如下:VOID IsKernelBooting(IN PVOID Context){// ... _asm { pushad; mov ecx, 0x176; // msr EIP rdmsr; mov KiFastCallEntry, eax; popad...

2018-09-15 22:56:08 713 5

原创 Windows四年内核开发总结及未来发展随笔

太久没写博客,最近开始关注虚拟化技术,稍微总结一下过去。回想17年毕业到现在,已经接触Windows驱动差不多四年时间,期间开发了各式各样的驱动,磁盘、文件、网络、HID、显示器音频、摄像头等等,从0到1一步一个脚印,学习驱动过程,也算是对Windows内核有个“深入”的了解了。不管开发了多少驱动,真正的技术是对于内核的理解。犹记得刚开始接触驱动的时候,我会将用户态程序统称业务,我对业务非常不感冒;随着接触的驱动类型越来越多,慢慢觉得其实驱动也不过是一个更小的业务,开始“厌烦”开发各种“更小业务

2021-04-09 17:59:43 1146 1

原创 WinDbg——拓展DLL开发入门

WinDbg提供了接口实现第三方开发自定义功能的库。废话少说,以下是最简单的一个Demo,只包含一个help指令。 实现 主要包含两个点:1. 实现DebugExtensionInitialize 函数,这是实现WinDbg拓展DLL必须实现的;WinDbg在载入此DLL会调用。2. 导出函数 创建一个简单的DLL工程。源码如下:.h#includ...

2018-07-30 21:23:32 1117 1

转载 windows 10环境下 使用 msys2 + vs code 配置 c++ 的编译环境(转)

不太多描述 msys2 与  vs code  ,既然你需要安装 一种语言的编译环境了 ,你肯定对这两个不陌生;1. 先安装msys2; (下载多少位的msys2就安装多少位的 mingw,本人安装 32位的)下载连接地址:http://msys2.github.io/按照 官网文档,一步一步安装。2.修改msys 源(推荐修改)修改参考地址:https:/

2017-05-19 16:54:30 2888

原创 Singleton优化(Double-Checked Locking Pattern)

Singleton简单实现class Singleton{public: static Singleton* GetInstance() { Guard(mutex); if (!instance) instance = new Singleton; return instance; }privat

2017-04-18 12:23:47 757

转载 数据流图(DFD)画法

在绘制系统数据流图的过程中,结构化需求分析方法通常强调“自顶向下,逐层分析”的思想。对于大规模的软件系统而言,需要采用多层的数据流图才能将问题描述清楚,而对于中等规模或小型的软件系统而言,采用三层的数据流图就可以了。在三层的数据流图中,顶层数据流图主要描述目标系统作为一个整体与外部用户或数据之间的交互;中层数据流图是对顶层数据流图的细化,描述系统的主要功能模块,以及数据在功能模块之间的流动关系;底

2017-04-12 15:42:36 8268

原创 【FFmpeg(2016)】SwrContext 转换PCM音频位数

【相关博客】【FFmpeg(2016)】PCM编码AAC【FFmpeg(2016)】SwrContext重采样结构体【前言】这两天在做一些音频的编码,但FFmpeg的编码库avcodec有20M这么大,所以决定使用其他库进行编码。网上发现faac体积小,直接编解码,于是决定使用faac库作为编码模块。但是从faac的源码发现,它只支持如下格式的PCM编码:

2017-03-15 19:28:38 3773

原创 【Window】Win32 API连接热点

Window 无线网络处理相关博文:【Window】获取电脑连接的网络信息Window 平台操作无线网络相关的的问题,大多都是使用 wlanapi 库,以下连接Wifi也不例外。要连接热点得必须有ssid 和 key.,window没有提供现成的函数,提供两个参数可以直接连接wifi,wifi 连接过程也是有学问的,那就是要提供一个profile ,

2017-01-08 13:23:51 2316

原创 【Window】获取电脑连接的网络信息

1. 连接的Wifi信息 WSAData data; if (WSAStartup(MAKEWORD(1, 1), &data) != 0) { return; } DWORD dwError = ERROR_SUCCESS; DWORD dwActualVresion; HANDLE wlanHandle; dwError = WlanOpenHandle(1,

2016-12-03 11:16:05 1938

原创 【H264】x264头文件结构体详解

/***************************************************************************** * x264.h: x264 public header ***************************************************************************** * Copyright

2016-12-03 11:02:37 6026

原创 【Window编程】内核对象

内核对象    比如存取符号对象、事件对象、文件对象、文件映射对象、    I / O完成端口对象、作业对象、信箱对象、互斥对象、管道对象、进程对象、信标对象、线程    对象和等待计时器对象等1. 每个内核对象只是内核分配的一个内存块,并且只能   由该内核访问。该内存块是一种数据结构,它的成员负责维护该对象的各种信息2. 句柄指向 内核对象 ,为了使操作

2016-10-12 21:22:12 644

翻译 【Intel(R)_Media_SDK】官方文档翻译摘要

【前言】Intel media SDK调用系统底层库完成硬编解码,处理视频,库分用器如下有很多硬解码库,不同的GPU可以使用不同的库,有些库也有可能为了跨硬件,就会像上图那样有个分层器,根据硬件类型选择不同的库进行硬解码,相关库有:DXVA Microsoft DirectXCUDA 英伟达推出CUVID 英伟达推出等

2016-10-12 16:59:58 8451 1

原创 【Window】 Screen capture with GDI&DX

【前言】window常见抓屏技术有 GDI \ DX \ DXGI,关系如下:GDI(Graphics Deveice Interface,图形设备接口),利用GDI编程,可以不考虑硬件的具体特性,直接调用Windows API中的图形处理函数处理当前DC即可。这的确很方便,但却是以降低处理速度为代价。因为它不能直接访问硬件,需要通过操作系统间接访问。Microfost

2016-10-11 15:49:39 4030

转载 BMP文件格式

因为公司的主要业务是图像识别相关的,因此对图像处理、识别是我学习的重点。虽然写程序也不少年了,但是对于图像处理领域,我还是一个新兵。对很多基础的概念也还是存在盲区,所以想在边学边做的过程中,对一些概念的梳理和学习心得进行记录。BMP文件格式BMP(Bitmap-File)图形文件,又叫位图文件,是Windows采用的图形文件格式,在Windows环境下运行的所有图象处理软件都支持B

2016-10-11 15:23:29 689

原创 【Win32笔记四】Mesasge的定义和发送——消息队列

【讯息的定义】PostMessage 是将一个消息寄送到一个线程的消息队列后就立即返回。PeekMessage 该函数为一个消息检查线程消息队列,并将该消息(如果存在)放于指定的结构。GetMessage  获取一个讯息,当第二三四参数为NULL或者0时,代表接受程式的所有讯息SendMessage 该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直

2016-10-09 11:37:57 777

原创 【Win32笔记三】键盘

1. 谁获得了焦点(光标)        有时输入焦点不在任何视窗中。这种情况发生在所有程式都是最小化的时    候。这时,Windows 将继续向活动视窗发送键盘讯息,但是这些讯息与发送给非    最小化的活动视窗的键盘讯息有不同的形式。        视窗讯息处理程式通过拦截WM_SETFOCUS和WM_KILLFOCUS讯息来判定它的    视窗何时拥有输入焦点。WM_S

2016-10-09 11:08:43 683

原创 【Win32笔记二】视窗与消息机制

1.标志    字首 类别    CS 视窗类别样式    CW 建立视窗    DT 绘制文字    IDI 图示ID    IDC 游标ID    MB 讯息方块    SND 声音    WM 视窗讯息    WS 视窗样式    结构 含义    MSG 讯息结构    WNDCLASS 视窗类别结构    PAINTSTRU

2016-10-09 10:28:27 821

原创 【Win32笔记一】Windows程式关键字

1. HINSTANCE (实例句柄,应用程序) HWND(窗口句柄) 都是句柄,本质是一样的,只是从名字区分一下,它们都是handle2. #define WINAPI __stdcall    __stdcall 被这个关键字修饰的函数,其参数都是从右向左通过堆栈传递的(__fastcall 的前面部分由ecx,edx传), 函数调用在返回前要由被调用者清理堆栈。

2016-10-09 09:10:43 1615

原创 【FFmpeg(2016)】AVCodecContext解码网络流

【前言】一般读取视音频文件解码时,我们会使用AVFormatContext。【对比】简单记录一下这个只使用libavcodec的“纯净版”视频解码器和使用libavcodec+libavformat的视频解码器的不同。(1)下列与libavformat相关的函数在“纯净版”视频解码器中都不存在。av_register_all():注册所有的编解码

2016-10-07 16:51:20 4432 2

原创 【FFmpeg(2016)】SwrContext重采样结构体

【前言】在看这篇文章前,我推荐你先看看我的另外两篇文章:【FFmpeg(2016)】视频文件分离器(demuxing)——H264&PCM【FFmpeg(2016)】PCM编码AAC本文章主要介绍SwrContext的用处 和 使用方法,到底什么是重采样,为什么需要重采样,希望你耐心看完。重采样,也就是对已得到的数据进行重新的采样;比如,

2016-09-28 11:31:45 6268 3

原创 【FFmpeg(2016)】PCM编码AAC

【前言】本文章主要是将 PCM原始数据编码为AAC。测试文件则是上一篇文章生成的PCM文件: 【FFmpeg(2016)】视频文件分离器(Muxing)——H264&PCM音频数据format分很多种类型,16bit,32bit等,而2016 ffmpeg只支持最新的AAC格式,32bit,也就是AV_SAMPLE_FMT_FLTP。所以

2016-09-27 22:20:30 9616 7

原创 【FFmpeg(2016)】视频文件分离器(demuxing)——H264&PCM

【前言】本文章主要对视频文件的视频流、音频流进行分离,并解码音频位原始数据PCM。 -> H264 MP4/FLV等 -> -> PCM【FFmpeg数据结构】AVFormatContext AVStream AVCodecContext AVCo

2016-09-27 21:32:47 2479

原创 Visual Studio无法定位于动态链接库

今天用vs开发ffmpeg突然冒出一个这样的错误由于程序用到了 avcodec 和 avutil 这两个库,而 av_frame_alloc是属于 avutil这个库的。以下通过查询头文件,发现 av_frame_alloc 并非属于 avcodec 动态库的函数,那为什么会这样子呢?我决定再查询一下 avcodec-57.all 和 libav

2016-09-24 08:54:05 5172

转载 Qt权限设置

QT版本:5.5.1 QT CreatorQT Creator 编译出来的程默认是不带管理员权限的。有时是需要管理员权限。第一步: 创建文件 manifest.xml 添加如下代码[html] view plain copy xml version="1.0" encoding="UTF-8" st

2016-09-22 10:15:02 3495

转载 MP4文件格式

http://eastnapoleon.blog.163.com/blog/static/366216692010101911255809/  目前MP4的概念被炒得很火,也很乱。最开始MP4指的是音频(MP3的升级版),即MPEG-2 AAC标准。随后MP4概念被转移到视频上,对应的是MPEG-4标准。而现在我们流行的叫法,多半是指能播放MPEG-4标准编码格式视频的播放

2016-09-21 20:04:30 2493

转载 FLV文件格式

最近要用到flv,整理了一些flv格式的资料,供参考。 flv文件主要由两部分组成:header和body。1.headerheader部分记录了flv的类型、版本等信息,是flv的开头,一般都差不多,占9bytes。具体格式如下:文件类型3 bytes“FLV”版本1 byte一般为0x01流信息

2016-09-21 19:47:24 554

转载 MP4文件格式详解

************************************** 结构概述                                    **************************************一、基本概念1.mp4概述MP4文件中的所有数据都装在box(QuickTime中为atom)中,也就是说MP4文件由若干个b

2016-09-21 19:46:14 6083

转载 FFmpeg中的时间戳(DTS和PTS)

FFmpeg里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念。FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编码前的信号帧。 对于视

2016-09-21 17:11:31 3784

转载 C运行时库(C Run-time Library)详解

一、什么是C运行时库1)C运行时库就是 C run-time library,是 C 而非 C++ 语言世界的概念:取这个名字就是因为你的 C 程序运行时需要这些库中的函数.2)C 语言是所谓的“小内核”语言,就其语言本身来说很小(不多的关键字,程序流程控制,数据类型等);所以,C 语言内核开发出来之后,Dennis Ritchie 和 Brian Kernighan 就用 C 本

2016-09-21 13:35:17 1194

原创 Win7 vs2015编译protobuf-3.0.0

需要工具:1. visual studio 2015 2. cmake3.git[可选]安装完毕,继续从官网下载protobuf :https://github.com/google/protobuf/releases/tag/v3.0.0window编译protobuf有两种方式:一个使用vs自带的msvc(环境测试vs开发者命令行

2016-09-20 17:41:52 8315

原创 window运行可执行模快

程序运行时,加载程序会检查执行模块的导入段,试图找到用到的dll的路径,搜查的路径顺序为:1. 包含可执行文件的路径2. window系统目录,可通过GetSystemDirectory获得 。-》c:/window/system323. 16位系统的子目录,即window目录中的System子目录4. window系统目录,通过GetWindowDirectory获得

2016-09-20 15:10:59 612

转载 MinGW和MSYS的自动安装

原文:http://www.swingworks.net/2010/11/install_mingw_and_msys_with_mingw-get-inst/好吧,这是今天写的第二篇文章。我表示这篇才是今天的重头。(伪半年之前曾经写过一篇关于MinGW和MSYS的手动安装的文章[1],到现在还是全站点击率最高的。(目前这篇文章是最高的。)好吧,侧面反映了MinGW确实是Win上比

2016-09-20 11:15:40 830

转载 MinGW 和 MSYS 的手动安装与环境配置

【2010-11-18 注】目前MinGW已经提供了自动安装包。尽管如此,这篇文章的内容依然有效。如果需要查看关于MinGW和MSYS自动安装的内容,请移步:http://www.swingworks.net/2010/11/install_mingw_and_msys_with_mingw-get-inst/ 原文:http://www.swingworks.net/2010/0

2016-09-20 11:14:18 18757 1

转载 Qt for Windows:Qt 5.4.0 MinGW 静态编译版本制作

原文地址:http://blog.csdn.net/wsj18808050/article/details/42301561/本文将讲述如何在Windows中,用源码版本的Qt制作出一个可以一键静态编译Qt我使用的环境是:Windows7 64位 旗舰版大致流程:1.安装Qt(源码版)以及其他必要的环境2.编译/安装

2016-09-20 09:38:37 548

转载 UML类图几种关系的总结

转自:http://blog.csdn.net/tianhai110/article/details/6339565在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization), 关联(Association), 聚合(Aggregation), 组合(Composition), 依赖(Dependency) 1.

2016-09-14 12:01:36 644

原创 【C++】零碎知识

1.线程在函数里面创建的静态局部变量不会随线程的结束而被释放。 ------2016.09.12

2016-09-12 16:19:05 357

原创 【QT开发】一些零碎知识

1.乱码QTextCodec *codec = QTextCodec::codecForName("GB18030");setWindowTitle(codec->toUnicode("我是中文"));2.QTimer 调用start后,如果槽函数时间比start的实参数值大,那么start直到上次执行的函数返回才能继续调用槽函数。3.用QThread开启线程时,在run函

2016-09-11 16:16:44 507

转载 H264编码原理以及I,P,B帧

----------------------前言-----------------------       H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像

2016-08-30 15:32:10 936

原创 H264—帧,片,参数集,NALU等概念

H.264 Codech264概念上区分视频编码层(VCL)和网络抽象层(NAL).VCL包含Codec的信令处理功能;以及如转换,量化,运动补偿预测机制;以及循环过滤器。他遵从今天大多数视频codec的一般概念,基于宏快的编码器,使用基于运动补偿的图像间预测和残余信号的转换编码。(NAL)编码器封装VCL编码器输出的片断到网络抽象层单元(NAL units),它适合于

2016-08-30 14:02:39 4813 7

转载 H264中I帧和IDR帧的区别

DR(Instantaneous Decoding Refresh)--即时解码刷新。      I和IDR帧都是使用帧内预测的。它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I帧区别开,所以才把第一个首个I帧叫IDR,这样就方便控制编码和解码流程。IDR帧的作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码。而I帧不具有随机访问的能力,这个功能是由I

2016-08-29 22:45:19 10312

VisualAssist2093+VS2015破解

该破解支持以前已经使用过期。 该Visual Assist 版本为2093,最高支持vs2015。 具体操作方法见readme.txt

2018-08-13

Window wlan connect

Use window API to connect Wlan.

2017-01-08

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除