
C/C++
Gloveing
http://www.fucku.com/
展开
-
利用 POP3 协议和套接字编写接收邮件的程序
一、首先了解一下POP3协议:POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,原创 2012-02-16 19:54:59 · 6557 阅读 · 5 评论 -
获取主机MAC地址
#include #include #include #include #include #include #pragma comment(lib,"ws2_32.lib") #pragma comment(lib,"netapi32.lib") void GetIP(void) { WSADATA ws原创 2011-09-19 17:07:03 · 1140 阅读 · 0 评论 -
连接 ActiveX控件工程时断言错误处理 oletypld.cpp line:32
新建的 ActiveX 控件工程,就算什么代码都不写进去,在连接时也会出现这样的问题;忽略断言错误继续下去,在Debug下生成了 .ocx文件,直接在运行对话框里输入: regsvr32 D:\ActiveX\debug\XXX.ocx (路径对的)也会出现同样的断言错误,不能注册;根据断言提示的错误去查找相关的错误 发现是红色部分的断言:void CCmdTarget::EnableType原创 2011-09-22 17:19:55 · 2963 阅读 · 0 评论 -
HOOK API 跳转大法
什么是HOOK API: Windows下暴露的对开发人员的接口叫做应用程序编程接口,就是我们常说的API。我们在写应用层应用程序软件的时候都是通过调用各种API来实现的。有些时候,我们需要监控其他程序调用的API,也就是,当其他应用程序调用我们感兴趣的API的时候,我们在他调用前有一个机会做自己的处理,这就是HOOK API的涵义。 思路:转载 2011-09-10 22:11:35 · 809 阅读 · 0 评论 -
图像处理
1.状态栏简单操作:static UINT indicators[] ={ID_SEPARATOR, // status line indicatorID_INDICATOR_TIME,};void CMainFrame::OnTimer(UINT nIDEvent) {CString str;CTime time=CTime::GetC原创 2011-09-07 23:39:05 · 657 阅读 · 0 评论 -
tcp_聊天室程序
// TCP_CLIENTDlg.cpp : implementation file//#include "stdafx.h"#include "TCP_CLIENT.h"#include "TCP_CLIENTDlg.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char TH原创 2011-08-25 00:08:12 · 813 阅读 · 0 评论 -
UDP通信
//************************服务器端***************#include#include#include void main(){WORD wVersionRequested;WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 2, 2 );err =原创 2011-08-25 00:02:57 · 1551 阅读 · 0 评论 -
C/C++内存分配
C/C++定义了4个内存区间: 代码区,全局变量与静态变量区,局部变量区即栈区,动态存储区,即堆(heap)区或自由存储区(free store)。堆的概念:通常定义变量(或对象),编译器在编译时都可以根据该变量(或对象)的类型知道所需内存空间的大小,从而系统在适当的时候为他们分配确定的存储空间。这种内存分配称为静态存储分配; 有些操作对象只在程序运行时原创 2011-05-25 23:24:00 · 680 阅读 · 0 评论 -
C语言调用python代码
直接上代码://#========================================================//# author:ago //# 2012/08/24 19:26:57 //#===========原创 2012-09-21 11:57:37 · 3479 阅读 · 0 评论 -
shellcode编写
在VC中调试运行程序,比如输出一个字符串,看到反汇编以及机器码如下:9: printf("str的地址:0X%p\n",str); //0X0041442000401368 8B F4 mov esi,esp0040136A 68 20 44 41 00 push offset str (00414原创 2012-10-13 22:35:36 · 1229 阅读 · 0 评论 -
VC6.0命令行编译
VC6.0命令行编译及使用makefile编译的方法VC6是挺经典的一个IDE,但有时编译比较慢。作为一个典型的程序员,我总想让电脑多做点事,自己少点事。编译软件也一样,又是能够执行后不管了,让程序自己慢慢编译,人可以做其他事情,或者直接写成批处理,自动的一个个慢慢执行编译就好了。所以一直想探索一下vc6环境怎么使用命令行编译,以及vc6怎么使用makefile编译。今天终于找到办转载 2012-10-18 19:42:28 · 2880 阅读 · 0 评论 -
C++ primer 笔记
原创 2012-10-23 14:37:39 · 755 阅读 · 0 评论 -
使用蔡勒(Zeller)公式计算任意一天星期几
推到过程见 Zeller:struct date{ int year; short month,day;};int zeller( struct date t ){ if (t.month<3) { t.year = t.year - 1; t.month = t.month + 12; } int c = t.year原创 2013-09-05 15:22:52 · 1423 阅读 · 0 评论 -
SSDT相关知识
一 、SSDT(System Services Descriptor Table),系统服务描述符表。这个表就是一个把ring3的Win32 API和ring0的内核API联系起来。SSDT并不仅仅只包含一个庞大的地址索引表,它还包含着一些其它有用的信息,诸如地址索引的基地址、服务函数个数等。通过修改此表的函数地址可以对常用windows函数及API进行hook,从而实现对一些关心的系统动作进原创 2012-02-15 22:58:25 · 861 阅读 · 0 评论 -
About GDT LDT IDT
(转自 : http://blog.youkuaiyun.com/lihenair/article/details/5168396)Intel Architecture Software Developer’s Manual Volum 3A: SystemProgramming Guide 段描述符的作用是将代码,数据,堆栈和任务状态段的虚拟地址转换成线性地址,并指明段的类型。段转载 2012-02-14 21:23:19 · 630 阅读 · 0 评论 -
word等里面查找对应的assic码值的字符
^assic ^后面接上assic码值,就可以查找对应的assic码值的字符原创 2014-06-05 11:11:47 · 799 阅读 · 0 评论 -
VC实现PPPOE拨号
VC实现PPPOE拨号原创 2014-06-05 11:12:07 · 1107 阅读 · 0 评论 -
大数运算(加减乘除,取模,乘方)
//=============================================================================================================#include "Big__CALC.h"int main(){ char str1[200]="9876543210987"; char str2[200]原创 2011-10-11 12:50:08 · 12408 阅读 · 1 评论 -
关于socket编程的一点小思考
有几个问题:一、为什么在bind的时候需要htons来转换字节序,而以后在send函数发送data的时候却不需要转换了呢?我思考之后觉得:在开始bind的时候,端口号、IP参数都是以整数形式在进行bind操作,然而在发送数据时,发送、接受时的参数却都是(const )char FAR *buf,这就意味着,发送、接受的不再是以整数形式存在的数据,而是以字符串形式存在的数据;然而不管原创 2011-10-09 16:40:59 · 1032 阅读 · 0 评论 -
PE文件信息浏览
首先先看看PE文件大体的样子:还有几个主要的结构体:typedef struct _IMAGE_NT_HEADERS { DWORD Signature; IMAGE_FILE_HEADER FileHeader; IMAGE_OPTIONAL_HEADER32 OptionalHeader;} IMAGE_NT_HEADERS32, *PIMAGE_原创 2012-01-02 10:30:27 · 1991 阅读 · 0 评论 -
进程通信
一、进程通信有几种方法:1.通过剪贴板2.使用匿名管道3.命名管道4.邮槽二、实现1.剪贴板:COleDataSource::SetClipboard()COleDataSource::GetClipboardOwner()COleDataSource::Empty()GlobalAlloc();GlobalLock();Global原创 2011-08-31 21:43:56 · 561 阅读 · 0 评论 -
ActiveX 控件的开发与应用
1.开发:其他部分省略:void CActiveXCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid){// TODO: Replace the following code with your own drawing code.OLE_COLOR ole_color_back=GetBa原创 2011-08-31 21:23:06 · 876 阅读 · 0 评论 -
检测设备状态(WM_DEVICECHANGE)
// USB.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "resource.h"#include #define MAX_LOADSTRING 100// Global Variables:HINSTANCE hInst; // current原创 2012-07-05 13:41:13 · 10086 阅读 · 0 评论 -
异步套接字编程
部分说明:#define UM_SOCK WM_USER+1ON_MESSAGE(UM_SOCK ,OnSock)afx_msg void OnSock(WPARAM wParam , LPARAM lParam);BOOL CMyDlg::InitSocket(){ m_socket=WSASocket(AF_INET,SOCK_DGRAM,0,原创 2011-08-31 21:47:25 · 653 阅读 · 0 评论 -
使用pcap_findalldevs_ex 编程出现问题
使用pcap_findalldevs_ex()函数编程,在文档中是这样介绍这个函数的:This function is a superset of the old 'pcap_findalldevs()', which is obsolete, and which allows listing only the devices present on the local machine. V原创 2011-10-12 14:42:54 · 8921 阅读 · 3 评论 -
API HOOK之注册表简单监控
一、HOOK DLL的编写:#include #include #include //==========================================================================================HINSTANCE glhInstance=NULL; //DLL实例句柄 BYTE g_OldRegCreat原创 2011-10-17 12:18:54 · 5840 阅读 · 6 评论 -
HOOK 与 DLL的实例
1.DLL创建: #include#include#include#pragma data_seg("mydata") HHOOK glhHook=NULL; //安装的鼠标勾子句柄 HINSTANCE glhInstance=NULL; //DLL实例句柄 #pragma data_seg() LRESULT CALLBACK Keyboa原创 2011-09-04 00:25:35 · 3710 阅读 · 0 评论 -
程序启动画面——SplashScreen
添加SplashScreen控件;可以修改资源文件 IDB_SPLASH 成你想要的启动画面;在int CSplashWnd::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CWnd::OnCreate(lpCreateStruct) == -1)return -1;// Center the window.Cente原创 2011-08-27 23:56:02 · 2371 阅读 · 0 评论 -
多线程
#include "stdafx.h"#include #include #include DWORD WINAPI ThreadProc1( LPVOID lpParameter // thread data);DWORD WINAPI ThreadProc2( LPVOID lpParameter // thread data);原创 2011-08-23 15:59:04 · 599 阅读 · 0 评论 -
vc++内存管理
利用VC++环境的调试和诊断功能,检查和发现常见内存缺陷理解常见的内存缺陷问题以及在VC++环境下的症状,能辅助我们减少问题的发生和及时修改问题。从错误的表现形式上看, 和堆栈有关的错误主要分为两大类:堆栈溢出和函数返回信息被破坏。(1)堆栈溢出(overflow)此类错误主要有两种情形:1)过大的局部变量。缺省情况下Windows为每个线程保留1M堆栈空间原创 2011-05-25 23:18:00 · 1532 阅读 · 0 评论 -
关于gethostbyname在多线程环境下的阻塞问题
转自:http://blog.youkuaiyun.com/zouxinfox/article/details/2234225Unix/Linux下的gethostbyname函数常用来向DNS查询一个域名的IP地址。 由于DNS的递归查询,常常会发生gethostbyname函数在查询一个域名时严重超时。而该函数又不能像connect和read等函数那样通过setsockopt或者select函数那样设转载 2012-02-12 12:54:36 · 1496 阅读 · 0 评论 -
拷贝构造函数和赋值函数
1. 拷贝构造函数对同一个对象来说只会调用一次,而且是在对象构造时调用。此时对象本身还没有构造(无空间),无需要去释放自己的一些资源。而赋值操作可能会调用多次,你在复制之前要释放自己的一些资源,否则会造成资源泄露。实例:#includeusing namespace std;class Myclass{public: Myclass(int n) { num原创 2011-12-17 15:03:48 · 691 阅读 · 0 评论 -
RSA实现
一、运算基础(大数相乘、取模、乘方、素数判定等)为了方便,封装在一个DLL文件中(代码如下:)1.头文件#include #include #include extern "C" __declspec(dllexport)void Add (char *tempbuf1, char *tempbuf2, char *result); // 大数相加 result原创 2011-11-22 14:23:03 · 1517 阅读 · 0 评论 -
获取CPU信息
获取CPU信息主要是利用汇编指令 CPUID 和 RDTSC 直接上代码://=====================================================================================/* CPUID指令是intel IA32架构下获得CPU信息的汇编指令,原创 2011-11-25 14:44:36 · 3304 阅读 · 1 评论 -
简易沙箱原理 ——Placing Restrictions on a Job's Processes
Placing Restrictions on a Job's ProcessesAfter creating a job, you will typically want to set up the sandbox (set restrictions) on what processes within the job can do. You can place several differe原创 2011-10-19 11:15:10 · 2659 阅读 · 0 评论 -
Reduce Gaming Latency (Lowering Ping) in Windows
减少网络延迟 下载原创 2014-06-05 11:13:48 · 782 阅读 · 0 评论