VirtualTable Hook

2020-7-19 流沙 C/C++

关键是定位虚表的位置 #include "stdafx.h" #include <windows.h> class Base{ public: virtual void Print(){ printf("gyarmy.com\n"); } }; void hookPrint(){ printf("hook_gyarmy\n"); } int main(int argc, char* argv[]) { Base *pb = new Base(); //关键定位虚表的位置 ...

阅读全文>>

评论(0) 浏览(169)


通用shellcode

2020-7-19 流沙 C/C++

// shellCode1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include<windows.h> void ShellCode() { typedef DWORD (WINAPI *PGETPROCADDRESS) (HMODULE hModule,LPCSTR lpProcName); typedef int (WINAPI * PMESSAGEBOX) (HWND hWnd,LPCTSTR lpText,L...

阅读全文>>

评论(0) 浏览(166)


调用约定

2020-6-10 流沙 C/C++

函数指针用 __cdecl:    C/C++默认方式,参数从右向左入栈,主调函数负责栈平衡。 __stdcall:            windows API默认方式,参数从右向左入栈,被调函数负责栈平衡。 __fastcall:   快速调用方式。所谓快速,这种方式选择将参数优先从寄存器传入(ECX和EDX),剩下的参数再从右向左从栈传入。因为栈是位于内存的区域,而寄存器位于CPU内,故存取方式快于内存,故其名曰“__fastcall”

阅读全文>>

评论(0) 浏览(263)


fork函数

2018-9-7 流沙 C/C++

 1、fork入门 计算机程序设计中的分叉函数。返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程标记;否则,出错返回-1。 fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。这两个进程中的线程继续执行,就像是两个用户同时启动了 该应用程序的两个副本。 需要注意的是:(1)当调用fork()函数时,在该位置进程一分为二,一个是父进程,一个是子进程。(2)若调用成功返回的是两个值,父进程返回的值为子进程标志,子进程返回的值为0,不成功返回为-1。 为什...

阅读全文>>

评论(0) 浏览(899)


Linux下编译动态链接库与使用详解

2018-9-6 流沙 C/C++

linux下库的简介 两种库 静态库 动态库  区别:在于代码被载入的时刻不同。静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小 库的存储位置和命名规范 存储:一般放在/usr/lib和/lib下  命名规范:  1. 静态库的名字一般为libxxxx.a,其中xxxx是该lib的名称  2. 动态库的名字一般为libxxxx.so.major.minor,xxxx是该...

阅读全文>>

评论(0) 浏览(2598)


mfc多线程

2018-8-30 流沙 C/C++

BOOL g_bWillExit = FALSE; //线程函数 DWORD WINAPI ThreadFunc(PVOID param) { while(g_bWillExit == FALSE) { if(MessageBox(NULL,_T("退出线程吗?"),_T("这是线程"),MB_YESNO)==IDYES) { CmyfirstmfcDlg *pDlg = (CmyfirstmfcDlg*)param; CButton *pButton = (CButton *)pDlg->GetDlgItem(IDC_BUTTON_T...

阅读全文>>

评论(0) 浏览(857)


mfc 托盘设置

2018-8-30 流沙 C/C++

//放在主界面对话框对应的位置 OnInitDialog() {        NOTIFYICONDATA m_tnid; m_tnid.cbSize=sizeof(NOTIFYICONDATA);//设置结构大小//  m_tnid.hWnd=this->m_hWnd;//设置图标对应的窗口  m_tnid.uFlags=NIF_MESSAGE|NIF_ICON|NIF_TIP;//图标属性  m_tnid.uCallbackMessage=WM_ICON_NOTIFY;//应用程序定...

阅读全文>>

评论(0) 浏览(804)


MFC控件使用小结

2018-8-29 流沙 C/C++

CComoboBox: CComboBox *pCombo = (CComboBox *)GetDlgItem(IDC_COMBO_TEST); pCombo->InsertString(0, _T("男")); pCombo->InsertString(1, _T("女")); pCombo->InsertString(2, _T("秘密")); pCombo->SetCurSel(1); CComboBox *pCombo = (CComboBox *)GetDlgItem(IDC_COMBO_COUNTRY); for(int ...

阅读全文>>

评论(0) 浏览(1079)


c语言mysql编程

2018-8-2 流沙 C/C++

直接套用框架 1\ VS的环境需要注意 2\ 头文件的顺序需要注意 // mysqldemo.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <WinSock2.h> //Socket,连接MySQL也需要用的 #pragma comment(lib,"ws2_32.lib") #include <mysql...

阅读全文>>

评论(0) 浏览(989)


WSAAsyncSelect 实例Demo

2018-7-25 流沙 C/C++

参考文章: https://www.cnblogs.com/hgwang/p/6093976.html 测试可以 WSAAsyncSelect模型也称异步选择模型,其核心函数是WSAAsyncSelect。它可以用来在一个socket上接收以windows消息为基础的网络事件。它提供了读写数据的异步通知功能,但不提供异步数据传送。WSAAsyncSelect模型的优势在于只需要一个主线程即可。缺点是必须要绑定窗口句柄。 1:WSAAsyncSelect函数定义 Description:The WSAAsyncSelect func...

阅读全文>>

评论(0) 浏览(866)


网卡流量探测器

2018-7-23 流沙 C/C++

只是一个简单的demo 可以优化的更好 (思路: 上行展示, 下行展示) // NetSpeed.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <pcap.h> #include <remote-ext.h> #include <Winsock2.h> #pragma comment(lib,"wpcap.lib") #pragma comment(lib,"...

阅读全文>>

评论(0) 浏览(917)


IP包解析测试

2018-7-23 流沙 C/C++

在字节序转换上, 卡的比较久, 其他,有点类似于PE的编写 直接贴上代码 // GetInterfaceInfo.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <pcap.h> #include <remote-ext.h> #include <Winsock2.h> #pragma comment(lib,"wpcap.lib") #pragma comm...

阅读全文>>

评论(0) 浏览(886)


利用winpcap模块 监听网卡数据

2018-7-22 流沙 C/C++

主要利用了帮助文档的模块,自己只是修改了一部分 #include "stdafx.h" #include <pcap.h> #include <remote-ext.h> #include <Winsock2.h> #pragma comment(lib,"wpcap.lib") #pragma comment(lib,"ws2_32.lib") /* packet handler 函数原型 */ void packet_handler(u_char *param, const struct pcap_pkthdr ...

阅读全文>>

评论(0) 浏览(876)


WinPcap 常见安装和运行错误

2018-7-22 流沙 C/C++

说明:WinPcap共有安装程序和开发包 如果只运行基于WinPcap的应用程序,只须安装WinPcap安装程序; 如果要编写和调试基于WinPcap的应用程序,除安装WinPcap,还须指定开发包中的头文件目录(Include)和 静态链接库目录(Lib)   1.运行WinPcap 程序,出现"无法找到组件"对话框错误: 没有找到wpcap.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。 解决方法:安装WinPcap   2.在VC6.0中编译WinPcap程序,出现下面错误: fatal err...

阅读全文>>

评论(0) 浏览(1389)


Select 多线程通信,模型实例

2018-7-22 流沙 C/C++

主要理解select函数,涉及到一些 宏和 数组定义 分为两端 Server端: // soctet_server.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <string.h> #include <stdlib.h> #include <Winsock2.h> #pragma comment(lib,"Ws2_32.lib"...

阅读全文>>

评论(0) 浏览(1008)


CreateThread()之后又马上CloseHandle()

2018-7-21 流沙 C/C++

很多程序在创建线程都这样写的:  ............  ThreadHandle = CreateThread(NULL,0,.....);  CloseHandel(ThreadHandle );  。。。。。  这不是刚好创建又关闭了吗?线程怎么运行呢? ================================================ Closing a thread handle does not terminate the associated thread. To remove ...

阅读全文>>

评论(0) 浏览(719)


Powered by 流沙团

备案号:鄂ICP备15017378号-1