利用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) 浏览(8)


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) 浏览(8)


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) 浏览(5)


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) 浏览(11)


sockaddr和sockaddr_in

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

sockaddr结构体 struct sockaddr {  unsigned short sa_family; // 地址族, AF_xxx  char sa_data[14]; //14字节的协议地址 };  上面是通用的socket地址 sockaddr_in的结构体 struct sockaddr_in {  short int sin_family; //地址族,AF_xxx 在socket编程中只能是AF_INET  unsigned short...

阅读全文>>

评论(0) 浏览(6)


SetWindowsHookEx 测试

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

LRESULT CALLBACK GameProc( int code, WPARAM wParam, LPARAM lParam ) { AFX_MANAGE_STATE(AfxGetStaticModuleState()); if((wParam == VK_HOME)&&(lParam&(1<<31))) { //AfxMessageBox("www.gyarmy.com"); //展示对话框 if(m_dialog == NULL) { m_dialog...

阅读全文>>

评论(0) 浏览(76)


硬编码——经典定长指令

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

经典定长指令上(修改寄存器) 1、PUSH/POP 特点: 0x50 PUSH EAX 1、记住32位、16、8位的通用寄存器,按照顺序记住. 0x51 PUSH ECX 0x52 PUSH EDX 2、将操作数编码到指令当中 0x53 PUSH EBX 0x54 PUSH ESP 0x55 PUSH EBP 0x56 PUSH ESI 0x57 PUSH EDI 0x58 POP EAX 0x59 POP ECX 0x5A POP EDX 0x5B POP EBX 0x5C POP...

阅读全文>>

评论(0) 浏览(274)


进程通信 - 匿名管道

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

0x01 核心代码 父进程: HANDLE hRead; HANDLE hWrite; SECURITY_ATTRIBUTES sa; sa.bInheritHandle = TRUE; sa.lpSecurityDescriptor = NULL; sa.nLength = sizeof(SECURITY_ATTRIBUTES); if(!CreatePi...

阅读全文>>

评论(0) 浏览(166)


进程通信 - 共享内存

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

0x01 核心代码 发送端代码: HANDLE hMapObject; HANDLE hMapView; //创建FileMapping对象 hMapObject = CreateFileMapping((HANDLE)0xFFFFFFFF,NULL,PAGE_READWRITE,0,0x1000,TEXT("shared")); if(!hMapObject) { MessageBox(NULL,TEXT("共享内存失败"),TEXT("Error"),MB_OK); ...

阅读全文>>

评论(0) 浏览(181)


进程通信 - SendMessage

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

核心代码: 发送端代码: HWND hwnd = ::FindWindow(NULL,TEXT("接收端窗口名")); if(hwnd == NULL) { MessageBox(0,TEXT("没找到窗口"),TEXT("ERROR"),MB_OK); } else { // 发送消息 //SendMessage(hwnd,WM_USER+0x1,NULL, (LPARAM)100...

阅读全文>>

评论(0) 浏览(161)


测试InlineHook

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

0x01主要是针对内部函数的hook 这里有需要注意的地方 内部含糊的地址 HOOK的位置 保存现场: pushfd  pushad 原本硬编码的恢复 extern "C" _declspec(naked)void HookProc() { //保存现场 _asm { pushad pushfd } //获取寄存器 _asm { mov reg.Eax,eax mov reg.Ecx,ecx mov reg.Ebx,ebx mov ...

阅读全文>>

评论(0) 浏览(176)


IATHOOK详细讲解

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

0x01 HOOK函数的编写 有一定的格式要求 直接直接hook MessageBoxA 函数格式 int WINAPI NewMessageBox( HWND hWnd, // handle to owner window LPCTSTR lpText, // text in message box LPCTSTR lpCaption, // message box title UINT uType // message box sty...

阅读全文>>

评论(0) 浏览(148)


LoadLibrary和GetModuleHandle的区别

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

写代码的时候注意到的,以前没注意这两个函数的用法 主要区别: LoadLibrary是把一个模块映射进调用进程的地址空间,需要时增加引用计数 而GetModuleHandle是返回一个已经映射进调用进程地址空间的模块的句柄 并不增加引用计数 使用GetModuleHandle可以判断做需要加载的模块是否已经被加载(到调用进程的地址空间). 代码1: typedef void *(__stdcall *pfVirtualAllocEx)(unsigned long, void *, unsigned long, unsigned long, u...

阅读全文>>

评论(0) 浏览(140)


运行内存中的exe(二)

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

0x01 学习进程注入的知识, 调试的代码 代码不是很完整, 已经写了很长的时间了, 终点遇到了各种各样的问题, 好多还没有解决!! 判断EXE在其他线程中运行,直接查询WinMain的地址, 进行比对 修复IAT表, 有些可以实现,修复, 有些事修复不了的, 看什么样的程序, 好多限制 0x02 代码贴上来, 有两段代码, 一段 pack端, 一段exe的back端 自己能看懂, 主要学习思路吧 0x03 代码下载地址 vc_code_20180202.zip

阅读全文>>

评论(0) 浏览(171)


双进程调试小结

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

写一下方法就可以了, 1、CE查看内存数据, 只要确定内存地址, 就可以查看远程线程中的内存 2、 OD直接附加进程, 点位内存中的位置, 下断点 进行调试 找到自己程序写错的位置,真心很好的调试方法!!

阅读全文>>

评论(0) 浏览(139)


Powered by 流沙团