- 博客(37)
- 资源 (12)
- 收藏
- 关注
原创 取得当前时间
//取本地时间BOOL GetTime(string &mytime){ BOOL b_ret = TRUE; CHAR szBuf1[256]={0}; CTime tNow = CTime::GetCurrentTime(); sprintf(szBuf1,"%04u%02u%02u%02u%02u%02u",tNow.GetYear(),tNow.GetMonth(
2012-06-25 13:46:38 724
原创 VC读配置文件
char szBugCC[4096]={0}; int nRet = GetPrivateProfileSection("Setting", szBugCC, sizeof(szBugCC), BugConfig.c_str()); if (nRet > 0) { //过滤/0 /0 /00 DWORD dwIndex = 0; char szTemp[128]={0}; w
2012-06-25 11:46:59 951 1
原创 WSAEventSelect模型
4步走:1. //1. 事件句柄和套接字句柄表2. //2. 创建事件对象,并关联到新的套接字上3. //3. 在所有事件上等待 //对每个事件调用WSAWaitForMultipleEvents函数,以便确定它的状态4 //获取来到的消息,WSAEnumNetworkEvents会自动重置受信事件上代码:#include "InitSock.h"#include
2012-06-23 19:03:22 1001
原创 WSAAsyncSelect模型
TCPServer.cpp#include "TCPServer.h"#include "resource.h"#define WM_SOCKET WM_USER+1CMyApp theApp;BOOL CMyApp::InitInstance(){ //初始化套接字 WSADATA wsaData; WORD wVersionRequested = MAKEWORD(2
2012-06-23 17:39:03 1755
原创 I/O模型之select模型
代码:void main(){ CInitSock initSock; USHORT nPort = 9999; //监听的端口 SOCKET sListen = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sListen == INVALID_SOCKET) { printf("socket error..."); r
2012-06-20 17:34:46 1083
原创 设置系统时间 系统时间网络更新
代码://根据返回的时间设置系统时间void setTimeFromTP(ULONG ulTime){ FILETIME ft; SYSTEMTIME st; //将基准时间转换成windows文件时间 st.wYear = 1900; st.wMonth = 1; st.wDay = 1; st.wHour = 0; st.wMinute = 0; st.wSecon
2012-06-20 16:50:50 1411
原创 得到本机的MAC,IP, MASK地址
#include "InitSock.h"#include #include #pragma comment(lib, "IPHLPAPI.lib")u_char g_ucLocalMac[6];DWORD g_dwGatewayIP;DWORD g_dwLocalIP;DWORD g_dwMask;BOOL GetGlobalData(){ PIP_ADAPTER_IN
2012-06-19 15:20:21 2281
原创 获取本机IP地址
#include "InitSock.h"#include void main(){ CInitSock initSock; char szHost[256] = {0}; ::gethostname(szHost, 256); hostent* pHost = ::gethostbyname(szHost); //in_addr是表示IP地址的结构 in_addr add
2012-06-19 14:46:24 927 2
原创 网络编程初始化类 CInitSock
网络编程初始化类#include #pragma comment(lib, "ws2_32.lib")class CInitSock{public: CInitSock(BYTE minorVer=2, BYTE majorVer=2) { WORD wVersionRequested = MAKEWORD(minorVer, majorVer); WSADATA
2012-06-19 14:27:22 3268
原创 取得本机IP代码
核心代码: //取得本机IP,在状态栏中显示 char szHostName[MAX_PATH] = {0}; ::gethostname(szHostName, MAX_PATH); hostent *pHost = gethostbyname(szHostName); if (pHost != NULL) { CString strIP; in_addr* addr =
2012-06-18 10:57:09 941
原创 修改函数代码HOOK的封装
对外的接口:1. 类初始化时对函数HOOK2. //取消挂钩void UnHook();3. //重新挂钩void ReHook();在初始化时HOOK的代码:*(DWORD*)(m_btNewBytes+1) = (DWORD)pfnHook;8个字节的代码地址 0xB8, 0x00, 0x00,0x40,0x00,0xFF,0xE0,0x00 只要把第二位和第
2012-06-16 15:58:11 1826
原创 封装远程注入类CreateRemoteThreadEx
类初始化时传入要注入的DLL文件名只使用两个函数// 注入DLL到指定的地址空间BOOL InjectModuleInto(DWORD dwProcessId);// 从指定的地址空间卸载DLLBOOL EjectModuleFrom(DWORD dwProcessId);.h#pragma once#include //在头文件中包含cl
2012-06-16 10:13:52 3683
原创 封装的IATHOOK类的使用
代码不稳定,对WINDOW 7不稳定,对XP也不稳定,木有意义,各位看官绕过吧。。 1. 主程序使用了对话框的框架2. 把IATHOOK类封装成DLL,在初始化时加载DLL,使用DLL的导出函数,此函数HOOK了MESSAGE消息。。。与此同时,此DLL会在加载的时候创建全局的IATHOOK类,把常见的几个函数LoadLibraryA,LoadLibraryW,LoadLibrar
2012-06-15 18:49:51 1484
原创 封装IATHOOK类
1. 定义成类的静态成员,从而实现自动调用 static CAPIHOOK sm_LoadLibraryA; static CAPIHOOK sm_LoadLibraryW; static CAPIHOOK sm_LoadLibraryExA; static CAPIHOOK sm_LoadLibraryExW; static CAPIHOOK sm_GetProcAddress;
2012-06-15 10:53:42 2811
原创 hook iat改变Messagebox
注意:1. 定义原始函数类型的写法//定义函数原型typedef int (WINAPI *PFNMESSAGEBOX)(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType);//保存原始的MessageBox地址,注意这里PROC g_orgProc = (PROC)MessageBox;2.
2012-06-15 08:41:58 1827 1
原创 获取当前进程的IAT
#include #include int main(int argc, char* argv[]){ HMODULE hModule = ::GetModuleHandleA(NULL); IMAGE_DOS_HEADER* pDosHeader = (IMAGE_DOS_HEADER*)hModule; IMAGE_OPTIONAL_HEADER* pOpNtHeader = (
2012-06-14 17:52:14 1430
原创 键盘记录程序代码
键盘记录程序-------------------------------------------------------------------------------主程序:就是基于对话框的框架,加个个OnHookKey函数,long CMainDialog::OnHookKey(WPARAM wParam, LPARAM lParam) //处理自定义消息{
2012-06-14 17:21:49 3399
原创 dll的写法
dll中的main.cpp// dllmain.cpp : 定义 DLL 应用程序的入口点。#include "stdafx.h"HMODULE m_gModule;BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call,
2012-06-14 10:05:05 3369
原创 封装线程类的方法
代码:// 给主窗口的通知消息#define WM_CUTTERSTART WM_USER + 100 // wParam == xxx lParam==xxxx/*外面调用这个类时,只需要IsRunning() Startxxx(xxx) Suspendxxx() Resumexxx() Stopxxx()*//*m_bContinue在真正的工作代码DoSomethi
2012-06-14 09:25:35 1791 3
原创 基于对话框的程序的框架
.cpp#include "resource.h"CMyApp theApp;BOOL CMyApp::InitInstance(){ CMainDialog dlg; m_pMainWnd = &dlg; //给m_pMainWnd 主窗口 dlg.DoModal(); return FALSE; //不进入消息循环}BEGIN_MESSAGE_MAP(CMa
2012-06-13 13:45:14 1059
原创 进程共享数据封装成类
.cpp#include "ShareMemory.h"CShareMemory::CShareMemory(const char* pszMapName, int nFileSize, BOOL bServer):m_hFileMap(NULL),m_pBuffer(NULL){ if (bServer) //是服务端,就创建 { m_hFileMap = ::CreateF
2012-06-12 18:34:04 1460
原创 进程间共享数据
进程间共享数据的代码:int main(int argc, char *argv[]){ //RecursiveDelete("C:\\20_128\\"); //SelfRun("runModel"); //进程间内存共享 LPCTSTR lpName= "hello"; LPCTSTR lpContent = "123456"; HANDLE hMap = ::Ope
2012-06-12 18:14:02 877
原创 bmp格式解析
写这代码时,出现的错误:1. 忘了on_wm_paint() 一直在界面上画不出来 找了好久 2. 正确写法BYTE* pBits = (BYTE*)lpBase + pbitmapFileHeader->bfOffBits;写成了BYTE* pBits = pbitmapFileHeader->bfOffBits;主要是用了上一篇中的CWnd框架..
2012-06-12 13:49:41 825
原创 CWnd窗口框架
.h#include class CMyApp:public CWinApp{public: virtual BOOL InitInstance();};//CMainWindowclass CMainWindow:public CWnd{public: CMainWindow(); ~CMainWindow();protected: afx_msg void
2012-06-12 11:30:29 1103
原创 写注册表项
开机启动void SelfRun(LPSTR lpszValueName) //lpszValueName 显示的名称{ LPCTSTR lpSubKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Run"; HKEY hKey; DWORD dwDisposition = REG_OPENED_EXISTING_KEY; //
2012-06-12 10:37:28 863
原创 判断pe文件
#include 是为了使用CFileDialogmain.h如下:#include class CMyApp:public CWinApp{ BOOL InitInstance();};main.cpp如下:#include "main.h"#include CMyApp theApp;BOOL CMyApp::InitInstance()
2012-06-12 10:14:49 797
原创 递归删除一个目录
CFindFile的使用框架:void Recurse(LPCTSTR pstr){ CFileFind finder; // build a string with wildcards CString strWildcard(pstr); strWildcard += _T("\\*.*"); // start working for files B
2012-06-12 09:41:57 791
原创 检查某个文件或目录是否存在的函数
RT#include BOOL FileExists(LPCTSTR lpszFileName, BOOL bIsDirCheck){ //试图取得文件属性 DWORD dwAttributes = ::GetFileAttributesA(lpszFileName); if ( INVALID_FILE_ATTRIBUTES == dwAttributes) { r
2012-06-12 09:21:18 2019
原创 选择文件夹代码的封装
DirDialog.h 和DirDialog.cppDirDialog.h代码:#pragma once#ifndef __DIRDIALOG_H_HH#define __DIRDIALOG_H_HH#include class CDirDialog{protected: BROWSEINFO m_bi; char m_szDisplayName[MAX_PAT
2012-06-11 11:40:19 859
原创 openfilename打开文件对话框的使用
因为没设置nMaxFile,一直不出现对话框 char szFileName[MAX_PATH]={0}; OPENFILENAME openFileName = {0}; openFileName.lStructSize = sizeof(OPENFILENAME); openFileName.nMaxFile = MAX_PATH; //这个
2012-06-11 10:53:25 2363
原创 process Bar的使用
VC进度条的使用#include #include "resource.h"#include //对话框函数INT_PTR CALLBACK DialogProc( __in HWND hwndDlg, __in UINT uMsg, __in WPARAM wParam, __in LPARAM lParam ){ switch (uMsg) { case
2012-06-11 10:35:00 2607
原创 python 批量提交沙箱
出现的问题:1. Popen的使用,在linux下参数用列表传,不要用字符串传 否则可能会有“OSErrorror: [Errno 2] No such file or directory”错误2. 列表要拷贝用 shutil模块中 不然会连续append..提交完第一个样本后,后面的提交参数就错了。。代码:import osfrom subprocess im
2012-06-08 11:18:20 1566
原创 图形界面 时钟表盘
代码://POINT的数组可以这么用 POINT pt[]={ 0, 450, 225,390, 390,225, 450,0, 390,-225, 225,-390, 0,-450, -225,-390, -390,-225, -450,0, -390,225, -225,390 };SetIsotropic函数:设置坐标系
2012-06-06 19:26:57 1814
翻译 画正弦线
代码: case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: 在此添加任意绘图代码... //画正玄线#define PI 3.1415926#define SEGMENT 500 int cxClient,cyClient; RECT rect; ::GetClientRect(hWnd, &rect);
2012-06-06 17:32:08 1605
原创 处理键盘输入
简单处理键盘输入响应WM_CHAR#include static std::string str;在wm_char中str = str + char(wParam);::InvalidateRect(hWnd, NULL, 0);return 0;在wm_paint中 case WM_PAINT: hdc = BeginPaint(hWnd, &ps); /
2012-06-06 17:12:55 692
原创 多线程查找文件
主要是多线程的互斥 文件 的查找多线程互斥的框架//线程函数UINT FinderEntry(LPVOID lpParam){ //CRapidFinder通过参数传递进来 CRapidFinder* pFinder = (CRapidFinder*)lpParam; CDirectoryNode* pNode = NULL; BOOL bActive = TRUE; /
2012-06-06 16:21:23 2279
翻译 python-求在pi的方法 来自python cookbook上 just for fun
just for fun#_*_ coding=utf-8 *_*## {{{ http://code.activestate.com/recipes/578130/ (r5)def pi(places=10): """Computes pi to given number of decimal places 参数places表示要返回的pi的小数点后位数
2012-06-04 17:51:40 1362
EarthWorm_20180630版本.tgz
2020-06-19
多级线程注入穿墙技术
2012-05-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人