自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(131)
  • 资源 (7)
  • 收藏
  • 关注

原创 使用inet_ntoa的大坑

原因:inet_ntoa是非线程安全的,返回结果是函数内部的静态变量的值。所以不用在外面分配内存。解决办法:使用线程安全的inet_ntop替代。

2023-05-08 01:34:15 286

原创 fwknop端口敲门命令行

fwknop-client.exe -A tcp/22 -a 192.168.9.123 -D 192.168.9.188 --use-hmac -p 62201 --key-base64-rijndael ErXWXpDc4odR+pDfomtEpk1uJPO2Gl6t+1ku3xJTSTc= --key-base64-hmac ErXWXpDc4odR+pDfomtEpk1uJPO2Gl6t+1ku3xJTSTdPJy3hZM4MLBusOfP5etzxjzRUXYOu+mXF4swaYjuVpw==.

2022-04-12 11:43:38 330

原创 VARIANT 传递字符串数组

TCHAR* strArray[2] = {_T("Hello"),_T("World")}; int arraySize = sizeof(strArray) / sizeof(strArray[0]); //创建 VARIANT vtArray; VariantInit(&vtArray); vtArray.vt = VT_ARRAY | VT_VARIANT; vtArray.parray = SafeArrayCreateVecto...

2022-04-12 10:23:35 614

原创 TCP校验和

unsigned short checksum(unsigned short* buffer, int size){ unsigned int sum = 0; for (sum = 0; size > 0;) { sum += *buffer++; size -= 2; } sum = (sum >> 16) + (sum & 0xFFFF); sum += (sum >> 16); return (unsigned short)(~su.

2022-03-20 22:29:35 2985

原创 第二章:状态驱动智能体(一)

A finite state machine is a device, or a model of a device, which has a finite number of states it can be in at any given time and can operate on input to either make transitions from one state to...

2019-04-27 23:59:28 207

原创 通过PEB枚举Kernel32.dll基址

kd> !process 0 0**** NT ACTIVE PROCESS DUMP ****PROCESS fffffa801a89e060 SessionId: 1 Cid: 026c Peb: 7fffffd3000 ParentCid: 0200 DirBase: 66362000 ObjectTable: fffff8a00111c4d0 Ha...

2018-12-12 16:01:34 297

原创 Centos7 安装python3.6

yum install https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-15.ius.centos7.noarch.rpm yum list python* yum -y install python36u yum -y install python36u-devel ln -s /b...

2018-12-02 04:15:55 157

翻译 DPC

DeferredProcecure Call,延迟过程调用。是一种执行在任意线程上下文的DISPATCH_LEVEL层的可执行例程。硬件中断使用他们处理来自设备的中断。硬件驱动这样做是因为ISR通常运行在更高IRQLs(高于DISPATCH_LEVEL),如果他们花费太长时间,可能会降低系统的整体性能。因此,ISR典型的队列一个DPC并且马上返回,所以系统可以处理其它的中断请求。软驱动能使用DPC

2017-06-15 01:06:41 1037

原创 windbg双机远程调试

1. 拷贝要调试的可执行文件和对应的PDB符号到虚拟机。 2. 在虚拟机中启动服务端,有2种方式。`windbg.exe -server tcp:port=8888 C:\Test.exe` 这种方式可以调试main函数和程序的启动过程。 `windbg.exe -server tcp:port=8888 -p 10086` 这种方式相当于附加到PID为10086的进程上去。 3. 在

2017-06-01 03:52:45 903

原创 Windbg 内核态调试用户态程序

使用!process 0 0 进程名或ID得到EPROCESS使用.process /p + EPROCESS切换到应用程序的地址空间重新加载user PDB文件:.reload /f /user使用非侵入式的切换进程空间:.process /i /p EPROCESS下应用层断点,执行

2017-05-30 13:51:36 1560

原创 无法打开包括文件: corecrt.h: No such file or directory

INCLUDEPATH = "C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\ucrt"LIBS += -L"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib" -L"C:\Program Files (x86)\Windows Kits\10\Lib\10.0.1...

2017-04-28 01:59:24 14210 1

原创 ProcessHacker实现原理(一)

枚举进程:调用NtQuerySystemInformation函数,第一个参数为SystemProcessInformation(枚举值 = 5),第二个参数返回类型SYSTEM_PROCESS_INFORMATION。原型如下:typedef struct _SYSTEM_PROCESS_INFORMATION{    ULONG NextEntryOffset;    ULON

2017-01-09 23:47:04 4427

原创 VS2015 使用微软自带的单元测试框架测试本地C++代码的注意事项

如果测试类使用了预编译头文件的话,要在工程设置中添加stdafx.obj测试STL容器时,会弹出异常错误对话框.解决办法是忽略MSVCRT.lib 和UCRT.lib

2016-07-07 19:28:09 2688

原创 A2W和W2A宏可能引起栈内存溢出

这两个宏使用alloca在栈上分配内存,退出生命周期后才会释放所占用的内存.所以在一个函数的循环体中使用A2W等字符转换宏可能引起栈溢出。真想在循环中使用的话,这个宏用单独的大括号包含起来,类似这样void fn() { while(true) { {DoSomething(A2W("SomeString"));} // 这个大括号的作

2016-04-11 10:16:08 3158 1

原创 jad 反编译文件夹下的所有class

jad -o -r -8 -dDestDirectory -sjava C:/Users/SrcDirectory/**/*.class将 C:/Users/SrcDirectory目录下的所有class文件按目录结构反编译到DestDirectory下.-o 不提示,覆盖文件-r 生成原始目录结构-8 使用Uniocde编码

2015-03-07 23:22:26 3666

原创 ATL创建COM服务时必须注意的问题

1:用ATL向导创建COM组件时,必须指定ProgID2:ATL向导生成的RGS有BUG,必须手工添加一句 val AppID = s '%APPID%'像下面这样HKCR{ ProgIDMyInterface.1 = s 'CMyInterface Class' { CLSID = s '{5B91E508-D66E-4F27-A371-E0D5FC3AAA0B}' } P

2015-01-31 02:11:15 1654

转载 Visual Studio 2013 Find in Files 无法显示搜索结果

在注册表中查找:HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{73B7DC00-F498-4ABD-AB79-D07AFD52F395}\InProcServer32发现了默认的值被设置成了NULL。问题就在这里,只需要填入C:\\Program Files (x86)\\Common Files\\microsoft shared\\MSEnv\\TextMg

2015-01-05 00:49:48 1522

原创 QMake 生成VS2013的工程文件

QT的bin目录加入到系统环境变量打开CMD,切换到源代码文件夹下,输入 qmake -project 生成.pro的QT工程文件再次输入 qmake -r -spec win32-msvc2013 -tp vc 即可生成2013的vcxproj工程文件...

2014-11-06 20:41:28 5427 1

转载 静态多态(模版模拟多态)的讨论

说到面向对象特性之一“多态”,以我的水平已经说不出太多新意了。相信很多程序员代码K多了,做梦都在“多态中”运行着。常规的多态是C++语义内置支持的一种特性,通过虚函数可以实现这个特性,为了后面以示区别,我们姑且把这种多态称为“动态多态”或”运行期多态“,而本文总主要想讨论下“静态多态”,也可以叫“编译期多态”,同时一起来看下,静态多态会给我们带来哪些惊喜之处,拭目以待吧。 首先看个正常

2014-08-18 12:30:45 894

转载 C++中explicit关键字的作用

explicit用来防止由构造函数定义的隐式转换。要明白它的作用,首先要了解隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。例如:

2014-08-17 15:02:16 735

原创 HTTP POST数据时,一定要将数据转换为UTF8再调用HttpSendRequest!!!

崩溃了,MSDN上看到这句话。。。[code=html]Note  The HttpSendRequestA function represents headers as ISO-8859-1 characters not ANSI characters. The HttpSendRequestW function represents headers as ISO-8859-1 charac

2014-08-15 03:46:09 9263

转载 ADO在C++中的使用

最近程序中用到读写数据库,看了些例子,查了番MSDN,下面把详细步骤写出来,以备忘,或与同行共勉。读写数据库的技术很多,现在多用ADO。ADO以COM方式提供,所以它的很多行为遵循COM规范。首先,要引入ADO的COM文件,它的位置一般在"C:/Program Files/Common Files/System/ado/msado15.dll"。1. 引入ADO打开预编译头文件St

2014-08-12 11:00:51 845

转载 Doxygen 使用笔记

最近用doxygen 生成文档,有些细小的问题还是很折腾了一阵。现将使用方法记录如下,便于日后查找。步骤1 :下载doxygen的binary 包doxygen下载地址http://www.10.xdowns.com/uploadFile/2007-7/doxygen.rar为了使doxygen能够将类图、协作图等 加入到文档中,还要下载安装graphviz for

2014-08-06 02:13:32 817

转载 对象的责任与职责

对象和数据的主要差别就是对象有行为,行为可以看成责任职责(responsibilities以下简称职责)的一种,理解职责是实现好的OO设计的关键。“Understanding responsibilities is key to good object-oriented design”—Martin Fowler 。对象设计:角色、责任和协作"(Object Design: Roles

2014-08-03 22:54:15 1106

转载 十个面向对象设计原则

追求高内聚highly cohesive 和松耦合 loosely couple 的解决方案是面向对象设计基本核心原则。这里列出OO设计中十大原则:1. DRY (不要重复你自己)这是指不写重复的代码,取而代之是使用抽象共性的东西。如果超过一次使用硬编码,那么就要考虑将其公开为final修饰的不变量;如果你在两个以上地方有相同的代码块,那么就要考虑使其成为一个单独的方法。SOLID设计原理

2014-08-03 22:47:01 1009

原创 HBITMAP另存为JPEG/PNG/TIFF/GIF/BMP

BOOL GetEncoderClsid(const WCHAR* format, CLSID* pClsid) { UINT num = 0; UINT size = 0; GetImageEncodersSize(&num, &size); if(size == 0) r...

2014-07-28 18:05:13 3927

原创 《设计模式解析第二版》读书笔记:一

对象是一个有责任的实体,应该对自己负责,而且清楚地定义责任,而不是一些数据和方法的简单堆积。要学会用对象的职责而不是其结构来考虑问题。这也是领域驱动开发的核心。对象之间的三种关系:泛化、依赖、关联(聚合、组合)泛化表现子类和父类之间是is a的关系。依赖表现use a的关系,通常表现为一个对象是另一个对象的某个方法的参数或者局部变量。关联表现has a的关系,一个对象是零一

2014-07-13 15:35:58 1086

原创 STL算法之remove要注意的地方。以及迭代时如何正确的删除迭代器

std::array intArray = {1, 2, 3, 4, 5, 6}; std::vector intVector; for(auto& i : intArray) intVector.push_back(i); cout << "intVector Size=" << intVector.size() << endl; intVe

2014-07-02 16:23:34 1953

原创 赋值操作符

默认的赋值操作符用于处理同类对象之间的赋值,不要与复制构造函数混淆.如果是创建新的对象,则调用复制(拷贝)构造函数,如果是修改已有对象的值,则调用赋值操作符MyClass aClass;MyClass bClass=aClass; // 调用复制构造函数MyClass cClass;cClass=aClass; // 调用赋值操作符一般来说,如果需要显式定义复制构造函数,则基于

2014-06-24 23:27:37 920

原创 复制(拷贝)构造函数

复制(拷贝)构造函数接受其所属类的对象作为参数,原型如下 MyClass::MyClass(const MyClass& aClass);在下述情况下,将使用复制(拷贝)构造函数1 将新的对象初始化为一个同类对象. MyClass aClass;MyClass bClass(aClass);2 按值将对象传递给函数. void MyFunction(MyClass aClass);3 函数

2014-06-24 23:19:52 825

原创 C++默认构造函数

默认构造函数要么没有参数,要么所有参数都有默认值,如果没有定义任何构造函数,编译器将自动生成一个不带任何参数的构造函数,让程序猿能创建对象.自动生成的默认构造函数的另一项功能是:调用基类的默认构造函数以及调用本身是对象的成员所属类的默认构造函数.如果派生类构造函数的成员初始化列表没有显示的调用基类构造函数,则编译器将使用基类的默认构造函数来构造派生类对象的基类部分.在这种情况下,如果基

2014-06-24 23:10:53 845

原创 C++转换函数

在C++中,可以利用构造函数将一个int型变量转换为一个类对象,如CMyClass aClass(5);有人便会问,可以进行相反的转换吗?例如将一个类对象转换为一个int值, int nTemp=aClass;C++可以实现这一需求.但不是构造函数.构造函数只能用于某种类型到类类型的转换.要进行相反的转换,则需要使用重载操作符函数--转换函数来实现.转换函数是用户定义的强制类型

2014-06-24 22:54:20 1564

原创 内存泄露检测类

#pragma once#define _CRTDBG_MAP_ALLOC#include #include #ifdef _DEBUG#ifndef DBG_NEW#define DBG_NEW new ( _NORMAL_BLOCK , __FILE__ , __LINE__ )#define new DBG_NEW#endif#endifclass CMemoryL

2014-06-24 21:30:37 675

原创 GUI程序控制台输出调试信息

#pragma once#include #include #include class CConsoleDebug{public: CConsoleDebug(SHORT nWidth = 30, SHORT nHeight = 3000): m_pFile(NULL) {#ifdef _DEBUG AllocConsole();

2014-06-24 21:29:08 1811

原创 ReactOS编译成VS工程

首先从https://www.reactos.org/wiki/ReactOS_Build_Environment下载Reactos BE 工具,安装,桌面会自动生成一个

2014-04-25 16:34:03 3990 1

转载 I/O Completion Ports

I/O Completion Ports点击打开链接I/O completion ports provide an efficient threading model for processing multiple asynchronous I/O requests on a multiprocessor system. When a process creates an I/O

2014-04-20 17:22:51 895

转载 Synchronous and Asynchronous I/O

Synchronous and Asynchronous I/Ohttp://msdn.microsoft.com/en-us/library/windows/desktop/aa365683%28v=vs.85%29.aspxThere are two types of input/output (I/O) synchronization: synchronous I/O and

2014-04-20 17:20:51 1112

原创 Synchronization and Overlapped Input and Output

OVERLAPPED/*It is safer to use a separate event object for each overlapped operation,rather than specify no event object or reuse the same event object for multiple operations.If no event object i

2014-04-20 17:18:06 806

原创 一场争论引发的思考

首先说一些软件工程方面的理论和指导性的原则,和从我个人职业生涯对软件工程和设计模式的一些实践性的理解.虽然有些是理论性的东西,但是具有指导意义. 一: 架构的定义IEEE标准将架构定义为”系统的基本组织结构,包括它的组件,组件之间的相互关系,环境,以及设计和演进的指导原则” 红色字体是我个人认为的3个关键字,每一个关键字是一层意思,第一层就是系统是由逻辑上的组件和模块组成的,是

2014-04-12 04:36:07 1067

原创 架构就是bull shit

架构,纯粹就是用来忽悠人的2个字眼,

2014-04-10 21:43:45 667

Internet Download Manager 6.28

Internet Download Manager 6.28 copy the patcher to progfolder and run it there >> click the patch button >> that's all!

2017-03-25

SysinternalsSuite

SysinternalsSuite

2017-03-24

Visual Assist X 10.9.2210

Visual Assist X 10.9.2210,支持VS2017,亲测可用

2017-03-24

sourceinsight4

sourceinsight,不是insight4.很多人经常把这两者搞混,亲测可用,转自pediy http://bbs.pediy.com/showthread.php?p=1463913#post1463913 用法 1. 安装原本软件:Source Insight 4.0.0080 - Jan 30, 2017 2. 替换原主程序:sourceinsight4.exe 3. 导入授权文件(Import a new license file):si4.pediy.lic

2017-02-15

DDAppWiz.awx

VC6.0中配置驱动开发的文件。使用该文件后,可使VC6.0支持驱动开发。可不必设置关于DDK的环境变量,但是要注意把VC中Tools->Options->Dirctarys->include files 中的加入NTDDK\\INC 目录,且要放到前边。 <br>

2008-04-15

WINNT未公开API大全(下)

WINNT未公开API大全。分上下俩册。这个是下册.声明:下载后不能阅读的朋友请按照下面的步骤解锁:右键文件-属性-解除锁定!!!

2008-01-31

WINNT未公开API大全(上)

WINNT未公开API大全。分上下俩册。这个是上册.声明:下载后不能阅读的朋友请按照下面的步骤解锁:右键文件-属性-解除锁定!!!切记!

2008-01-31

空空如也

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

TA关注的人

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