
c++
Cosmop01itan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++利用POCO创建进程并获取输出
POCO获取程序输出原创 2024-03-06 19:41:15 · 646 阅读 · 0 评论 -
poco库中使用md5
1.先需要包含头文件。原创 2024-03-06 12:46:56 · 550 阅读 · 0 评论 -
leetcode 判断链表是否有环
输入:{3,2,0,-4},1复制返回值:true复制说明:第一部分{3,2,0,-4}代表一个链表,第二部分的1表示,-4到位置1,即-4->2存在一个链接,组成传入的head为一个带环的链表 ,返回true我们使用两个指针,fast 与 slow。它们起始都位于链表的头部。随后,slow 指针每次向后移动一个位置,而fast 指针向后移动两个位置。如果链表中存在环,则 fast 指针最终将再次与 slow 指针在环中相遇。/** * Definition for sing.原创 2021-08-28 22:32:31 · 630 阅读 · 0 评论 -
leetcode 小青蛙跳梯子
描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。示例1输入:2复制返回值:2对于第n个台阶来说,只能从n-1或者n-2的台阶跳上来,所以F(n) = F(n-1) + F(n-2)斐波拉契数序列n=1:只能一种方法n=2:两种递归一下就好了class Solution {public: int jumpFloor(int number) { if(number<=0){.原创 2021-08-28 11:19:10 · 631 阅读 · 0 评论 -
C++ 反转单向链表
struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};//核心思路:将前后两个节点的指向关系交换从->变成<-class Solution {public: ListNode* ReverseList(ListNode* pHead) { ListNode* pre = nullptr; .原创 2021-08-26 18:07:47 · 313 阅读 · 0 评论 -
逆向去除winrar广告
推荐工具:x32dbg,spy4win,API Monitor环境:Xp 32,无ASLR用API Moniter监控gui,network相关的API,运行界面如下:弹一个广告窗口,还有个浏览器页面广告API Monitor监控到CreateWindowExW,可以在里面看到调用这个函数的地方,跟进到x32dbg。这里采取的策略是把创建窗口的参数及去掉visable属性,ebx里面的值是0,导致width,height,flag都是0。还是会访问服务器,做人留一线。去掉浏览器弹窗(随机弹出),原创 2021-08-05 23:22:11 · 471 阅读 · 0 评论 -
获取导入表的大小
uint32_t get_iat_size(PIMAGE_DOS_HEADER dos_header,uint32_t import_rva){ if (import_rva == 0)//ntdll没有导入表 { return 0; } LPBYTE import_va = (LPBYTE)dos_header + import_rva; PIMAGE_IMPORT_DESCRIPTOR imp_desc = (PIMAGE_IMPORT_DESCRIPTOR)import_va;原创 2021-06-03 15:22:31 · 152 阅读 · 0 评论 -
Boost scope_exit用于替换RAII
#include <boost/scope_exit.hpp>#include <iostream>int *foo(){ int *i = new int{10}; BOOST_SCOPE_EXIT(&i) { delete i; i = 0; } BOOST_SCOPE_EXIT_END std::cout << *i << '\n'; return i;}int main(){ int原创 2021-05-19 16:53:15 · 248 阅读 · 0 评论 -
duilib控件的一些属性
Windows控件:Create 创建窗口Close 关闭窗口ShowWindow 显示或隐藏窗口ShowModalFake 显示模态对话框(推荐)CenterWindow 居中窗口,支持扩展屏幕Init 窗口接收到 WM_CREATE 消息时会被调用,一般用于初始化AttachDialog 绑定窗口的顶层容器InitControls 初始化控件,在容器中添加控件时会被调用(用于对控件名称做缓存)ReapObjects 回收控件GetWindowResourcePath 获取窗口资源路径原创 2021-05-18 22:26:38 · 860 阅读 · 0 评论 -
VEH HOOK
VEH实现不修改代码HOOK函数,基本原理:在对应函数上触发异常(0xCC,硬件断点)然后VEH处理异常实现HOOK异常处理函数,修改传入的参数值LONG CALLBACK VEH2(struct _EXCEPTION_POINTERS* pEP){ printf(("VEH2 Do something HOOK\n")); //以下的注释,可以取消以观察不同的输出结果 if ((STATUS_SINGLE_STEP == pEP->ExceptionRecord->原创 2021-05-17 17:32:37 · 1276 阅读 · 0 评论 -
duilib基本布局学习(模仿百度网盘)及绑定按钮事件
使用的网易版本的duilib:https://github.com/netease-im/NIM_Duilib_Framework重写demo中basic.xml页面的布局,熟悉布局语法,类似于html语言,这里模仿百度网盘的UI:<?xml version="1.0" encoding="UTF-8"?><Window size="662,442" caption="0,0,0,35"><VBox> <VBox bkcolor="bk_wnd原创 2021-05-16 14:12:48 · 652 阅读 · 0 评论 -
c++ new[] delete[]底层分析
先写一个demo,里面有new[],delete[],使用C++11 MTd选项编译:#include <string>int main(){ auto pS = new std::string[10]; delete[] pS; return 0;}new的大小为0x11c,十进制284,相当与10*28 + 4。4个额外申请的长度就是保存数组大小用的。auto pS = new std::string[10];009C970D push 11Ch原创 2020-12-19 15:40:07 · 403 阅读 · 2 评论 -
C++实现类不可复制
定义一个不可复制的基类class Uncopyable{public:protected: Uncopyable(){}; ~Uncopyable(){};private: Uncopyable(const Uncopyable &); Uncopyable& operator=(const Uncopyable &);};以后继承这个类的都会不可复制class Phone:private Uncopyable{public: Phone():.原创 2020-07-05 23:38:00 · 555 阅读 · 0 评论 -
ReadDirectoryChangesW监控目录文件操作
// 目录监控多线程UINT MonitorFileThreadProc(LPVOID lpVoid){ char *pszDirectory = (char *)lpVoid; // 打开目录, 获取文件句柄 HANDLE hDirectory = ::CreateFile(pszDirectory, FILE_LIST_DIRECTORY, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP原创 2020-06-20 22:34:25 · 721 阅读 · 0 评论 -
c++数据压缩
Compress.hpp#pragma once#include <windows.h>typedef NTSTATUS(WINAPI *pRtlGetCompressionWorkSpaceSize)( _In_ USHORT CompressionFormatAndEngine, _Out_ PULONG CompressBufferWorkSpaceSize, _Out_ PULONG CompressFragmentWorkSpaceSize );typedef.原创 2020-06-17 14:10:11 · 1104 阅读 · 0 评论 -
version.dll劫持注入模版
// dllmain.cpp : 定义 DLL 应用程序的入口点。#include "stdafx.h"BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){ switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: {原创 2020-06-15 14:10:03 · 3479 阅读 · 0 评论 -
C++结束进程代码
#include <windows.h>#include <iostream>bool KillProcess(DWORD pid){ HANDLE hProcess = OpenProcess(PROCESS_TERMINATE, FALSE, pid); if (!hProcess){ return false; } BOOL success = Te...原创 2020-05-07 00:51:01 · 2420 阅读 · 0 评论 -
wininet设置代理
InternetOpen("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)", INTERNET_OPEN_TYPE_PROXY, "http=http://127.0.0.1:8118", NULL, 0)So, the INTERNET_OPEN_TYPE_PROXY flag is used and the proxy server ...原创 2020-05-03 14:56:15 · 974 阅读 · 0 评论 -
c++ lambda基本语法
铺获列表[var]表示值传递的方式捕获变量var[=]捕获父作用域的所有变量,包括this[&var]表示引用传递捕捉var[&]表示引用传递捕捉父作用域的所有变量[this]表示值传递捕捉当前this指针...原创 2020-04-27 16:42:20 · 243 阅读 · 0 评论 -
c++11 变长参数的使用(制作一个多参数多类型求和函数)
template <typename … Args>class D2 : public Base<Args,>…{};使用平行都解包方式,即先参与其他表达式再解包D2<X,Y,Z> 相当于 D2: public Base<<X,>>, Base<Y,>, Base<Z,>对于每个传入都参数都会调用unpa...原创 2020-04-26 22:47:51 · 3038 阅读 · 0 评论 -
c++11 二进制字符串字面量解析为10进制
unsigned int operator "" _b(const char* col, size_t n){ unsigned int result = 0; int t; for (int i = 0; i < n; i++) { t = (col[n - 1 - i] - 0x30); if (t != 0 && t != 1) throw std::s...原创 2020-04-21 12:35:10 · 2646 阅读 · 0 评论 -
c++ requests网络请求库
项目地址:https://github.com/lxwAsm/requests演示视频:https://www.bilibili.com/video/bv1gV411Z7fT基本使用:#include <iostream>#include <string>#include "http.h"using namespace std;using namespac...原创 2020-04-21 10:36:39 · 7402 阅读 · 14 评论 -
C++11 运行时变量类型判断
#include <typeinfo>string name = "cpp";int age = 14;cout << typeid(age).name() << endl;cout << typeid(name).name() << endl;输出:intclass std::basic_string<char,...原创 2020-04-20 21:10:07 · 692 阅读 · 0 评论 -
c++11 sleep函数使用
#include <iostream>#include <thread>#include <chrono>using namespace std;int _tmain(int argc, _TCHAR* argv[]){ for (int i = 0; i < 100; i++){ cout << i << " "...原创 2020-02-09 09:41:19 · 7336 阅读 · 0 评论 -
自己实现find_if,自己实现传递谓词
#include <iterator>#include <iostream>template<class _InIt,class _Pr > inline _InIt myfind_if(_InIt _First,_InIt _Last,_Pr _Pred){ for (; _First != _Last; _First++){ if (_Pred...原创 2020-02-06 11:27:00 · 2789 阅读 · 0 评论 -
C++ list插入元素源码分析及过程图
插入过程源码: template<class... _Valty> void _Insert(_Unchecked_const_iterator _Where, _Valty&&... _Val) { // insert element at _Where _Nodeptr _Pnode = _Where._Mynode(); _Nodeptr _...原创 2019-12-19 16:38:42 · 419 阅读 · 1 评论 -
c++ 11 list转set
list<int> li; for (int i = 0; i < 100; i++){ li.push_back(i); } for (int i = 0; i < 100; i++){ li.push_back(i); } unordered_set<int> uset(li.begin(), li.end()); //用list去初始化s...原创 2019-12-07 22:56:52 · 3412 阅读 · 0 评论 -
检测IAT HOOK思路
先遍历IAT各个导入dll遍历每个dll中的每个函数,通过GetModuleHandleExA找到函数所在的dll基地址。最后比较基地址是不是一样。bHooked = ((DWORD)hCurrFuncModule - (DWORD)hOriginalDllBase == 0) ? 0 : 1;...原创 2019-11-09 23:37:44 · 749 阅读 · 0 评论 -
c/c++字符串混淆工具
python3写的一个工具,欢迎star:https://github.com/lxwAsm/myprojects/tree/master/python/CppStringConfusion原创 2019-03-26 14:31:21 · 2497 阅读 · 0 评论 -
反调试总结
// AntiDbg.cpp : 定义控制台应用程序的入口点。////#include "stdafx.h"#include <iostream>#include <Windows.h>using namespace std;enum PROCESSINFOCLASS//{ ProcessBasicInformation = 0, Process...原创 2019-10-10 14:13:04 · 429 阅读 · 0 评论 -
inline hook学习
vs2013编译//inline hook 实际上就是指 通过改变目标函数头部的代码来使改变后的代码跳转至我们自己设置的一个函数里,产生hook.#include <windows.h>#include <stdio.h>//定义一个与MessageBoxA类型一致的函数指针。typedef int (WINAPI * MessageBox_type)(H...原创 2019-10-11 16:02:50 · 254 阅读 · 0 评论 -
C++程序只允许运行一个实例
函数原型:HANDLE CreateMutex( LPSECURITY_ATTRIBUTES lpMutexAttributes,//必须为NULL BOOL bInitialOwner, //表示mutex的范围是本线程还是全系统 LPCTSTR lpName //互斥量的名字); bool checkMyselfExist()//如果程序已经有一个在运行,则...转载 2018-06-24 18:11:10 · 3957 阅读 · 1 评论 -
C++实现仿射加密法
创建Crypt.h头文件#include <string>#include <string.h>using namespace std;const string SYMBOL="ABCDEFGHIJKLMNOPQRSTUVWXYZ";string affineEncrypt(const char *data,int keyA,int ...原创 2018-03-08 21:31:07 · 1404 阅读 · 0 评论 -
win7 32位下实现远程线程注入
dllmain.cpp 生成注入的dll// dllmain.cpp : 定义 DLL 应用程序的入口点。#include "stdafx.h"#include <Windows.h>#define PROCESS_NAME "notepad.exe"HINSTANCE hMod;HHOOK hHook;HWND hWnd;BOOL APIENTRY DllMain(...原创 2019-03-10 10:57:32 · 375 阅读 · 0 评论 -
C++11获取double类型的最大最小值
#include <iostream>#include <locale>using namespace std;int main(){ //使用template <class T> numeric_limits; //http://www.cplusplus.com/reference/limits/numeric_l...原创 2019-02-20 23:59:43 · 9429 阅读 · 0 评论 -
C++实现插入排序算法
#include &lt;iostream&gt;using namespace std; template &lt;typename T&gt;void insertSort(T array[],int n){ int i,j; T temp; for(i=1;i&lt;n;i++) { temp = array[...原创 2018-05-26 17:29:02 · 657 阅读 · 0 评论 -
fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "stdafx.h"”?
头文件没有使用预编译头解决方法: 头文件上单击右键–>属性–>C/C++–>预编译头–>不使用预编译头原创 2018-05-25 16:58:26 · 285 阅读 · 0 评论 -
C/C++实现sleep函数
#include <time>voidsleep(double n)//参数是要暂停的秒数{ long tm1; tm1 = clock(); //返回时钟tick数 while (1) { if ((double)(clock() - tm1) / CLOCKS_PER_SEC >= n) break; ...原创 2018-05-19 15:16:17 · 5974 阅读 · 0 评论 -
C/C++使用socket实现server和client
Server代码#include <winsock2.h>#include <stdio.h>#pragma comment (lib,"ws2_32")int main(int argc,char *argv[]){ WSADATA wsaData; WSAStartup(MAKEWORD(2,2),&wsaDat...原创 2018-05-17 23:41:55 · 8252 阅读 · 3 评论 -
C++中的栈操作
C++提供了stack的模板类,在使用时#include < stack>即可 stack模板的成员函数: s.push(value) 将一个对象入栈 s.pop() 删除栈顶元素,但不返回该元素值 s.top() 返回栈...原创 2018-04-14 13:31:52 · 938 阅读 · 0 评论