C++技术
孔方兄_
少说废话,多挖坑~
展开
-
软件反调试技术解析
目录一、反调试技术1.断点2.计算校验和3.检测调试器4.探测单步执行5.在运行时中检测速度衰减6.指令预取7.自修改代码8.覆盖调试程序信息9.解除调试器线程10.解密二、逆转录病毒三、混合技术四、linux反调试技术简单示例1. int3指令 2. 文件描述符 3. 利用getppid原创 2015-01-26 17:07:51 · 2506 阅读 · 0 评论 -
opencv图像遮掩及移动区域像素占比
#include "opencv2/opencv.hpp"#include "opencv2/video/background_segm.hpp"using namespace cv;using namespace std;int main(){ VideoCapture capture; capture.open(0); int frameNum = 1; Mat fram原创 2017-09-21 15:06:34 · 2506 阅读 · 0 评论 -
opencv3 背景建模提取前景图像
#include "opencv2/opencv.hpp"#include "opencv2/video/background_segm.hpp"using namespace cv;using namespace std;int main(){ VideoCapture capture; capture.open(0); int frameNum = 1; Mat fram原创 2017-09-15 17:31:08 · 2354 阅读 · 0 评论 -
P2P之UDP穿透NAT的原理与实现
转自:http://www.cnblogs.com/epan/articles/98295.htmlP2P 之 UDP穿透NAT的原理与实现(附源代码)原创:shootingstars参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东转载 2017-01-04 09:55:10 · 3785 阅读 · 1 评论 -
c++实现Xml和json互转
1、下载c语言的cJson库源码,库很小,只有两个文件cJSON.c和cJSON.h。下载地址:https://sourceforge.net/projects/cjson/2、c++实现Xml和json互转#include "XmlJsonTransfer.h"//#include "cmsDebug.h"#include "WebSocket/src/cJSON.h"#includ原创 2016-06-28 10:55:24 · 9175 阅读 · 4 评论 -
c++支持跨平台的链表list封装
标准c++实现,不依赖平台相关的库,很好支持跨平台。#include #ifndef __LIST__#define __LIST__template class List{ struct Item { T data; Item *next; };public: List(); ~List(); bo原创 2016-07-28 17:59:33 · 578 阅读 · 0 评论 -
websocket 发送数据大于0xFFFF(65535)的处理
网上很多关于websocket发送数据大于大于0xFFFF(65535)的处理都是一句话“暂不处理”!!!!!所以特写此文。int WSSession::safeSendFrame(uint8_t *buffer, size_t bufferSize, enum wsFrameType frameType) {// 发数据到浏览器需要封装一个websocket的头,但wsMakeFra原创 2016-06-03 19:59:43 · 10854 阅读 · 0 评论 -
linux dup,dup2,dup3 复制一个文件描述符
dup,dup2,dup3 --duplicate a file descriptor复制一个文件描述符大纲 #include int dup(int oldfd); int dup2(int oldfd , int newfd); int dup3(int oldfd , int newfd , int flags);描述:这些转载 2015-12-15 10:27:11 · 641 阅读 · 0 评论 -
系统调用跟踪命令strace和dtruss
很多时候我们希望可以看到一个进程调用了哪些API以及其调用顺序,例如我们要参考某个程序的实现,但我们又无法获得该程序的源代码时,使用系统调用跟踪命令不失为一个好办法。另外,在一些无法调试的环境上检查问题时,我们也可以用该命令来查看程序是否按预期执行。strace和dtruss都是同一类型的命令,strace是linux系统上的,而dtruss是mac系统上的。原创 2015-08-30 11:30:14 · 10440 阅读 · 0 评论 -
关于Qt下error: multiple definition of 的问题
通常情况下,编译遇到multiple definition of重复定义的问题都是由于多次引入.h文件导致的,这种情况可以通过#pragma once或者以下方式解决:#ifndef TEST_H #define TEST_H // 变量和函数定义#endif但在Qt中还有一种情况会导致error: multiple definition of 的问题,那就是在.pro项目文件...原创 2019-06-28 10:35:58 · 11993 阅读 · 2 评论