C++技术
孔方兄_
少说废话,多挖坑~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
软件反调试技术解析
目录 一、反调试技术 1.断点 2.计算校验和 3.检测调试器 4.探测单步执行 5.在运行时中检测速度衰减 6.指令预取 7.自修改代码 8.覆盖调试程序信息 9.解除调试器线程 10.解密 二、逆转录病毒 三、混合技术 四、linux反调试技术简单示例 1. int3指令 2. 文件描述符 3. 利用getppid原创 2015-01-26 17:07:51 · 2866 阅读 · 0 评论 -
系统调用跟踪命令strace和dtruss
很多时候我们希望可以看到一个进程调用了哪些API以及其调用顺序,例如我们要参考某个程序的实现,但我们又无法获得该程序的源代码时,使用系统调用跟踪命令不失为一个好办法。另外,在一些无法调试的环境上检查问题时,我们也可以用该命令来查看程序是否按预期执行。strace和dtruss都是同一类型的命令,strace是linux系统上的,而dtruss是mac系统上的。原创 2015-08-30 11:30:14 · 10983 阅读 · 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 · 710 阅读 · 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 · 11059 阅读 · 0 评论 -
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 · 628 阅读 · 0 评论 -
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 · 9490 阅读 · 4 评论 -
P2P之UDP穿透NAT的原理与实现
转自:http://www.cnblogs.com/epan/articles/98295.html P2P 之 UDP穿透NAT的原理与实现(附源代码) 原创:shootingstars 参考:http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt 论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东转载 2017-01-04 09:55:10 · 3837 阅读 · 1 评论 -
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 · 2406 阅读 · 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 · 2658 阅读 · 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 · 13765 阅读 · 2 评论
分享