
c/c++
文章平均质量分 56
yunshouhu
爱Java,更爱Android,学VC,搞c/c++的我。专注移动安全,游戏安全,逆向安全!十年戎马成神路,君临天下风雷动! https://github.com/yunshouhu
展开
-
C++关于类结构体大小和构造顺序、析构顺序的测试。
#include <iostream>using namespace std;/**1. c++的类中成员若不加修饰符的话,默认是private2. 调用构造函数时,先递归调用最顶级的父类构造函数,再依次到子类的构造函数。3. 调用析构函数时相反,先调用最底层的子类析构函数,再依次到父类的构造函数。4. 空类的sizeof(A)大小为1,多个空类继承后的子类大小也是1 */class A{public: A() { cout<&l..原创 2021-08-24 22:12:12 · 406 阅读 · 2 评论 -
二叉树之前序/中序/后序和层次遍历
#include <iostream>#include <cstring>#include <queue>using namespace std;typedef struct TreeNode{ char data; TreeNode* left; TreeNode* right;} TreeNode;#define STR_SIZE 1024//创建二叉树int createBTNode(TreeNode** BT, ..转载 2021-08-24 10:20:41 · 271 阅读 · 0 评论 -
c++多线程
#include <iostream>#include <thread>#include <mutex>#if _WIN32#include <Windows.h>#else#include <unistd.h>#endifusing namespace std;mutex mu; //线程互斥对象int totalNum = 20;void thread01(){ while (totalNum > .原创 2021-08-04 18:10:34 · 232 阅读 · 0 评论 -
Android Tombstone 分析
转自:https://www.cnblogs.com/CoderTian/p/5980426.html1.什么是tombstone当一个动态库(native 程序)开始执行时,系统会注册一些连接到debuggerd 的signal handlers,当系统 crash 的时候,会保存一个 tombstone 文件到/data/tombstones目录下(Logcat中也会有相应的信息),文件的确就像墓碑一样记录了死亡了的进程的基本信息(例如进程的进程号,线程号),死亡的地址(在哪个地址上发生了 ..转载 2021-07-28 17:46:45 · 2671 阅读 · 0 评论 -
AndroidQ 锁屏密码验证流程之GateKeeper解析
转自:https://blog.youkuaiyun.com/qq_34211365/article/details/105833847本篇文章分析一下GateKeeper这个模块,官网对GateKeeper的描述如下:GatekeeperGatekeeper 子系统会在可信执行环境 (TEE) 中执行设备解锁图案/密码身份验证。Gatekeeper 会使用由硬件支持的密钥通过 HMAC 注册和验证密码。此外,Gatekeeper 会限制连续失败的验证尝试次数,并且必须根据指定的超时和指定的连续失败尝试次数拒转载 2021-07-27 23:42:14 · 1976 阅读 · 0 评论 -
动态规划算法
读完本文,你可以去力扣拿下如下题目:509.斐波那契数322.零钱兑换-----------这篇文章是我们号半年前一篇 200 多赞赏的成名之作「动态规划详解」的进阶版。由于账号迁移的原因,旧文无法被搜索到,所以我润色了本文,并添加了更多干货内容,希望本文成为解决动态规划的一部「指导方针」。动态规划问题(Dynamic Programming)应该是很多读者头疼的,不过这类问题也是最具有技巧性,最有意思的。本书使用了整整一个章节专门来写这个算法,动态规划的重要性也可见一斑。刷题刷多了就会发现,算转载 2021-06-08 17:39:05 · 370 阅读 · 0 评论 -
GCC 安全编译选项
https://gohalo.me/post/program-c-gcc-security-options.html操作系统提供了许多安全机制来尝试降低或阻止缓冲区溢出攻击带来的安全风险,例如 ASLR、NX 等等,这里简单介绍一些常见的使用项。简介操作系统提供了许多安全机制来尝试降低或阻止缓冲区溢出攻击带来的安全风险,例如 NX ASLR PIE CANARY FORTIFY RELRO 等手段,存在 NX 的话就不能直接执行栈上的数据,存在 ASLR 的话各个系统调用的地址就是随机化的等等。转载 2021-06-01 17:32:16 · 3744 阅读 · 0 评论 -
调用约定
8086 CPU寄存器均为16位。寄存器名 AX BX CX DX SP BP SI DI DS ES SS CS IP 作用 通用寄存器 栈区段地址寄存器 数据地址寄存器 栈区偏移地址寄存器 段地址寄存器 偏移地址寄存器 内存寻址两个寄存器操作只能相加,不能相减,例如mov ebx,[esi+eax] ; 有效mov ebx,...转载 2021-05-11 10:34:36 · 287 阅读 · 0 评论 -
c++&java之快速排序算法
#include <iostream>#include <time.h>using namespace std;//https://baike.baidu.com/item/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95void Qsort(int arr[], int low, int high){ if (high <= low) return; int i = low; in.原创 2021-05-10 15:51:31 · 215 阅读 · 0 评论 -
数据结构之常用c语言排序算法
#include <iostream>#include <string.h>using namespace std;#define NUM 16#define MAX 100#define MAX_LINE_NUMBER 16int list[NUM*7]={0};int merge_list[NUM*10]={0};int merge_link[NUM*10]={0};void init();void init_list(int);void out(in.原创 2021-05-08 17:34:09 · 215 阅读 · 0 评论 -
C++单元测试教程
转自:https://www.jetbrains.com/help/clion/unit-testing-tutorial.html本教程概述了单元测试方法,并讨论了CLion支持的四个框架:Google Test,Boost.Test,Catch2和Doctest。CLion中的单元测试部分将指导您完成将这些框架包含到项目中的过程,并描述CLion提供的可帮助您进行单元测试的工具。单元测试的基础单元测试旨在分别检查源代码的各个单元。此处的单元是可以隔离进行测试的代码的最小部分,例如,自由函.转载 2021-04-29 17:36:06 · 8050 阅读 · 0 评论 -
Memory_Leak_Detection内存泄漏检测工具
https://www.mantidproject.org/Memory_Leak_Detectionhttp://valgrind.org/https://sourceware.org/git/?p=valgrind.githttps://sourceware.org/git/https://archive.codeplex.com/?p=vldhttps://www.codeproject.com/Articles/9815/Visual-Leak-Detector-Enhanced原创 2020-05-21 19:50:14 · 4414 阅读 · 0 评论 -
dlsym RTLD_DEFAULT和RTLD_NEXT
https://blog.youkuaiyun.com/ustcxiangchun/article/details/6310085https://linux.die.net/man/3/dlsymhttp://man7.org/linux/man-pages/man3/dlsym.3.htmldlsym()函数dlsym()接受dlopen()返回的动态库的“句柄” 和以空字符结尾的符号名称,返回将该符号加载到内存中的地址。如果未找到该符号,则在指定的库中,或在加载该库时由dlopen()自动加载的任何 库转载 2020-05-16 12:28:33 · 3644 阅读 · 0 评论 -
跟我一起写Makefile
https://seisman.github.io/how-to-write-makefile/index.html目录概述 关于程序的编译和链接 makefile介绍 makefile的规则 一个示例 make是如何工作的 makefile中使用变量 让make自动推导 另类风格的makefiles 清空目标文件的规则 Makefile里有什么?...转载 2020-05-07 18:54:40 · 284 阅读 · 0 评论 -
IA32寄存器与x86-64寄存器的区别
转自:https://blog.youkuaiyun.com/qq_15514565/article/details/57644132IA32寄存器一个IA32CPU包含一组8个存储32位值的通用寄存器,这些寄存器用来存储整数数据和指针:31-0 15-0 15-8 7-0 使用惯例 %eax %ax %ah %al 调用者保存 %ecx...转载 2020-04-02 10:47:27 · 856 阅读 · 0 评论 -
openssl RSA密钥格式PKCS1和PKCS8相互转换
RSA私钥格式PKCS1和PKCS8相互转换RSA公钥格式PKCS1和PKCS8相互转换以下转换基于openssl命令的操作;1. openssl 生成pkcs1格式的私钥,密钥长度1024位, (PKCS1)openssl genrsa -out private.pem 1024-----BEGIN RSA PRIVATE KEY-----MIICXQIBAAKBgQ...转载 2020-02-26 18:22:20 · 1793 阅读 · 0 评论 -
数据结构学习之循环队列的另一种c++实现
//循环队列的另一种实现#include #include using namespace std;template class SqQueue //:public Queue{ Telem *elem; int front,rear,count; const int len; public: SqQueue(int maxsz=12):原创 2012-10-26 15:15:35 · 851 阅读 · 0 评论 -
win系统服务编程c++实现
#define WIN32_LEAN_AND_MEAN#include #include #include #define SLEEP_TIME 5000#define LOG_FILE "c:\\MemoryWatch.txt"#define SERVICE_NAME "内存查看器2"#define SERVICE_DESC "云守护的系统服务进程2"#define SERVIC原创 2012-12-24 11:06:24 · 1856 阅读 · 0 评论 -
winpcap编程使用
先安装winpcap,再搜索下载WpdPack包,导入vc:工具->选项->目录:include file:E:\wujianhua\cpp\WpdPack\Includelibrary files:E:\wujianhua\cpp\WpdPack\Lib然后编写代码:#include #include #pragma comment(lib,"wpcap.lib")#p原创 2012-12-24 13:53:29 · 851 阅读 · 0 评论 -
dll编程
用vc++6.0新建一个dll工程,选择一个生成字符链接的dll工程:dll.h#ifdef DLL_EXPORTS#define DLL_API __declspec(dllexport)#else#define DLL_API __declspec(dllimport)#endif// This class is exported from the dll.dllcl原创 2013-01-04 14:41:53 · 786 阅读 · 0 评论 -
简单刷票系统 c语言实现
/* * 简单刷票系统 * * 云守护 542335496@qq.com */#include #include #include #pragma comment(lib,"ws2_32")#define RefreshTimes 10 //刷新次数char host[128];char path[128];// 函数声明DWORD WINAPI S原创 2013-01-04 12:04:27 · 3839 阅读 · 0 评论 -
获取系统进程快照 c语言实现
/************************************************************************//* 云守护 email:542335496@qq.com *//**********************原创 2013-01-04 15:11:27 · 3768 阅读 · 0 评论 -
远程线程注入 c语言实现
/************************************************************************//* 云守护email:542335496@qq.com *//***********************原创 2013-01-04 17:52:50 · 2707 阅读 · 0 评论 -
云守护版sniffer的实现
/************************************************************************//* 云守护版 sniffer的实现 542335496@qq.com *//*****************原创 2012-12-21 15:33:41 · 699 阅读 · 0 评论 -
VC++6.0连接MYSQL数据库
转自:http://blog.chinaunix.net/uid-20767210-id-1849630.html//下面的代码是一个实现C++连接MYSQL数据库的很好的例子//这里用了建表,插入,检索,删表等常用功能//我用VC++6.0生成,已经成功连接了。//在VC++6.0中要想把做一下两步准备工作才可以。//(1)Tools->Options->Directorie转载 2013-01-07 10:14:29 · 4590 阅读 · 0 评论 -
c++23种设计模式之责任链模式
#include #include #include using namespace std; // 请求 class Request { public: string m_strContent; int m_nNumber; }; // 管理者 class Manager { protected: Manager* mana原创 2013-01-23 15:41:30 · 632 阅读 · 0 评论 -
c++23种设计模式之享元模式
#include #include #include using namespace std; // 抽象的网站 class WebSite { public: virtual void Use()=0; }; // 具体的共享网站 class ConcreteWebSite : public WebSite { private:原创 2013-01-23 15:45:05 · 554 阅读 · 0 评论 -
c++23种设计模式之访问者模式
#include #include #include using namespace std; class Man; class Woman; // 行为 class Action { public: virtual void GetManConclusion(Man* concreteElementA)=0; virtual void G原创 2013-01-23 15:47:04 · 674 阅读 · 0 评论 -
c++ 编程注意事项和知识点
1、指针申请内存,malloc 注意使用free 或者delete 释放变量。2、类中注意写上析构函数。3、extern int a; //变量声明而没有定义 使用externextern int i(int); //函数的声明而没有定义 可选externint b; //变量声明又定义了int i(int x) //函数的定义{ ret原创 2013-01-23 15:07:48 · 679 阅读 · 0 评论 -
c++23种设计模式之单例模式
#include ////c++ 23种设计模式之单例模式//适用情况:1、唯一实namespace DesignPattern_Singleton{ //第一种 class Singleton { public: static Singleton*Instance() { static Singleton _instance;原创 2013-01-23 15:13:30 · 1138 阅读 · 0 评论 -
c++ 23种设计模式之组合模式
#include #include //c++ 23种设计模式之组合模式//适用情况:1、表示对象的部分/整体层次结构 2、忽略组合对象和个体对象的不同namespace DesignPattern_Composite{ //组件 class Component { public: virtual void Operation()=0; virt原创 2013-01-23 15:14:57 · 1496 阅读 · 0 评论 -
//c++ 23种设计模式之建造者模式2
#include #include #include using namespace std; //c++ 23种设计模式之建造者模式2class Person { public: virtual void CreateHead()=0; virtual void CreateHand()=0; virtual void CreateBo原创 2013-01-23 15:23:15 · 795 阅读 · 0 评论 -
c++23种设计模式之代理模式
#include #include using namespace std;//c++23种设计模式之代理模式 // 定义接口 class Interface { public: virtual void Request()=0; }; // 真实类 class RealClass : public Interface { public:原创 2013-01-23 15:00:50 · 645 阅读 · 0 评论 -
c++23种设计模式之工厂模式
#include #include using namespace std; //工厂模式// 实例基类,相当于 Product(为了方便,没用抽象) class LeiFeng { public: virtual void Sweep() { cout<<"雷锋扫地"<<endl; } }; // 学雷锋的大学生,相当于原创 2013-01-23 15:10:20 · 783 阅读 · 0 评论 -
c++23种设计模式之原型模式
#include ////c++ 23种设计模式之原型模式//适用情况:1、请求一个原型克隆自身namespace DesignPattern_Prototype{ class Prototype { public: virtual Prototype * Clone()=0; virtual void showInfo()=0; };原创 2013-01-23 15:12:40 · 698 阅读 · 0 评论 -
c++ 23种设计模式之建造者模式
#include //c++ 23种设计模式之建造者模式,(生成器模式)namespace DesignPattern_Builder{ class Product1{ }; class Product2{ }; class Builder { public: virtual void BuilderPartA(){}原创 2013-01-23 15:15:29 · 677 阅读 · 0 评论 -
c++ 23种设计模式之观察者模式
#include #include #include using namespace std; //c++ 23种设计模式之观察者模式class Secretary; // 看股票的同事类(观察对象,观察者) class StockObserver { private: string name; Secretary* sub; pu原创 2013-01-23 15:28:08 · 608 阅读 · 0 评论 -
c++ 23种设计模式之抽象工厂模式
#include #include #include using namespace std; //c++ 23种设计模式之抽象工厂模式// 用户抽象接口 class IUser { public : virtual void GetUser()=0; virtual void InsertUser()=0; }; // 部门抽象接原创 2013-01-23 15:31:34 · 589 阅读 · 0 评论 -
c++23种设计模式之装饰模式
#include #include using namespace std; //装饰模式// 人 class Person { private: string m_strName; public: Person(string strName) { m_strName=strName; } Person(){} v原创 2013-01-23 14:56:48 · 596 阅读 · 0 评论 -
c++ 23种设计模式之桥接者模式
#include #include #include //c++ 23种设计模式之桥接者模式namespace DesignPattern_Bridge{ //类Implementor class Implementor { public: virtual void OperationImp()=0; }; //类Concret原创 2013-01-23 15:16:15 · 722 阅读 · 0 评论