子级分类:
VCer代码
VCer开源
VCer工具
VCer知道
VCer词典
VCer读书
VCer文章
VCer论坛
 |
如何使tcp包和udp包穿透防火墙
|
|
| |
| 通过本文的httptunnel 技术同时逃过了防火墙的屏蔽以及系统的追踪试验,我们可以看到网络安全仅仅依靠某种或某几种手段是不可靠的,同时对安全系统的盲目性依赖往往会造成巨大的安全隐患。希望通过本文能引起管理员对网络安全防护系统的思考。
什么是http暗藏通道
什么是局域网安全,系统管理员怎样才能保障局域网的安全?这是一个不断变化的安全概念,很长的一个时期以来,在局域网与外界互联处放置一个防火墙,严格控制开放的端口,就能在很大程度上掌握安全的主动权,方便的控制网内外用户所能使用的服务。比如,在防火墙上仅仅开放80,53两个端口,那么无论是内部还是外面的恶意人士都将无法使用一些已经证明比较危险的服务。
但要注意一点,防火墙在某种意义上是很愚蠢的,管理员对防火墙的过分依赖以及从而产生的懈怠情绪将不可避免的形成安全上的重大隐患,作为一个证明,"通道"技术就是一个很好的例子,这也是本文要讨论的。
那么什么是通道呢?这里所谓的通道,是指一种绕过防火墙端口屏蔽的通讯方式。防火墙两端的数据包封装在防火墙所允许通过的数据包类型或是端口上,然后穿过防火墙与对端通讯,当封装的数据包到达目的地时,再将数据包还原,并将还原后的数据包交送到相应的服务上。举例如下:
A主机系统在防火墙之后,受防火墙保护,防火墙配置的访问控制原则是只允许80端口的数据进出,B主机系统在防火墙之外,是开放的。现在假设 ...
|
|
| 作者:不祥 bluejoe张贴于2004-05-26 18:07:09.0,共阅读2387次,回复0次 |
|
|
 |
利用双计算机调试程序
|
|
| |
| 在游戏编程时,调试程序是很困难的事情,特别是全屏模式,总是无法切换到VC的IDE环境,以前我一般是利用BltFast代替Flip以保证GDI Surface始终在前,但效果不是太好,前一段时间我在VC中发现一个宝贝,可以利用两台计算机调试程序,一台运行程序,另一台运行VC来调试,再加上TRACE输出,真是爽的不得了,下面是我的做法:
1. 保证两台电脑是联网的,最好是都摆在你的面前,不然的话你肯定要跑来跑去 了。还要保证你的程序在两台电脑上都能正常运行,例如都装上DX8。
2. 假设你用A机器运行VC来编程和调试,用B机器来运行你的程序,如果B机器没有装VC,则需要把VC的Debug Monitor拷到B机器上,具体文件是MSVCMON.EXE, MSVCRT.DLL, TLN0T.DLL, DM.DLL, MSVCP6O.DLL和MSDIS110.DLL,如果B机器运行的是NT还要拷贝文件PSAPI.DLL。这些文件在VC的安装目录下Common\MSDev98\Bin目录和系统目录中
3. 在B机器上建立一个共享目录,一定要设成完全共享以保证A能随时在B上写文件。
4. 在A上打开你的程序工程文件, Alt+F7打开Project Setting,选中Debug页面,在Excutable for debug session和 Remote executable ...
|
|
| 作者:不祥 bluejoe张贴于2004-05-26 17:57:34.0,共阅读1921次,回复0次 |
|
|
 |
如何实现对DLL的统一调用
|
|
| |
| 因为在主程序中LoadLibrary时,对所加载的DLL的原型定义要求和DLL
中一样,所有我考虑可以将dll中的函数声明为f(void *p),这里的
void *p是一个结构指针。这个函数据声明是固定不变的。
在dll注册时,将各参数的类型、长度等信息写入注册文件。
这些信息在调用dll时从注册文件中取得,可以作为一个struct动态
组装生成,将此结构的指针赋给void *p。
这样可以避免动态声明参数类型的困难。
这里需要注意字节对齐的问题,在dll中与调用dll的函数中,对参数
结构要注意不要产生字节错位。
以下是例子:
DLL
extern "C" __declspec(dllexport) int testplus(int *ret, int *p[])
{
struct test tt;
MessageBox(NULL,"在DLL中的函数...。","DLL",MB_OK);
tt.i = (int)(*(*p));
tt.j = (int)(*(*(p+1)));
*ret = tt.i + tt.j;
return *ret;
}
主程序中:
int *pInt, *pInt1 ...
|
|
| 作者:不祥 cqwsy2003张贴于2004-05-26 17:03:23.0,共阅读1723次,回复1次 |
|
|
 |
我的脸蛋摔破了
|
|
| |
| 粉可怜..5555555
|
|
| 作者:不祥 Bccv张贴于2004-05-25 17:11:51.0,共阅读1520次,回复2次 |
|
|
 |
白乔原创:DOS时代-汉字的处理技术(四)
|
|
| |
| 5.小汉字库的使用
需要注意是,在建立小汉字库的同时,最好还要记住其中的排列顺序,这样才能方便地通过索引数组来选择字模信息。静态库的内容可以通过test. txt来观察,而动态库的内容却不能直观地显示,如果忘了的话,我们编制以下的小工具来实现浏览功能:
/*testl8. c*/
#include <stdio.h>
#include <graphics.h>
int GetBit(unsigned char c int n)
{
return ((c>>n)& 1);
}
main()
{
FILE*fp;
int i i1 i2 i3 x = 0 y = 0 gd = VGA gm = VGAHI;
long length;
char bit [32];
initgraph(& gd &gm "");
fp = fopen("testl.hzk" "rb");
fseek(fp 0 SEEK_END);
length = ftell(fp) /32L;
rewind(fp);
for(i = 0; i <length; i++)
{
f ...
|
|
| 作者:不祥 bluejoe张贴于2004-05-25 22:27:46.0,共阅读5203次,回复0次 |
|
|
 |
Boss Coming
|
|
| |
| 1.感谢您使用本软件.Boss Coming 是帮朋友做的一个toy似的东西,作用是当大家在办公室玩的时候,老板忽然出现,只要有一个人看到,按下热键后即可通知大家,并且在接到同伴的通知后,本程序可以马上为你做一些事情,比如把MSN藏起来,激活 office word , 酱紫不会被老板发现.代码有注释
|
|
| 作者:不祥 Bccv张贴于2004-05-25 11:49:40.0,共阅读2605次,回复2次 |
|
|
 |
白乔原创:DOS时代-汉字的处理技术(二)
|
|
| |
| 6.特殊显示
UCDOS3. 0以后版本都向用户提供了特殊显示的功能,在使用特殊显示功能之前,必须先运行RDSL.COM(打印字库读取模块)和TX. COM(特殊显示模块)。
如同输入法模块一样,这两个程序同样也是TSR程序。它们修改了lOH号中断,预先截获特殊显示命令串并予以解释执行。
C语言调用特殊显示的命令格式如下:
printf ("\16[命令串] ");
具体的命令串格式请参考相关手册。显示特殊汉字是特显功能中的一个重要组成部分,其命令串包括许多控制命令:
①-x 横坐标
②|y 纵坐标
③@ 字形 指定汉字显示的字形,取值范围为A-X或a-t。如:L代表48 * 48点阵黑体字
④@ 宽,高 指定汉字显示的大小
⑤= 字库 选择汉字显示的字库编号,取值范围为0-33。如:2代表HZKSLHTJ字库文件。
⑥# 字号n 选择汉字的字号,字号范围为0-7,n可以为“+(正常)”、“-(扁体)”、“|(长体)”三种。
⑦& 行距
⑧^ 字距
⑨( 前景色
⑩) 背景色
如
printf("\16[{-100|100=2#0+ (14)4青春工作室}]");
将在(100100)处以红底黄字显示96 * 96点阵的黑体“青春工作室”五个字。
特显功能主要用来设计软件的封面,而在运行软件时最好不再依赖于中文系统,这就要求 ...
|
|
| 作者:不祥 bluejoe张贴于2004-05-23 18:17:43.0,共阅读3933次,回复1次 |
|
|
 |
怎样屏蔽掉某个程序的打印功能?
|
|
| |
| 正常情况下,很多文件或程序的file菜单下都有print选项,选择该选项就能打印,我现在想根据自己的意愿首先得到某一个应用程序如word2.doc或text1.txt的进程号,然后屏蔽掉该程序的打印功能,这如何实现呢?
windows2000和windowsxp下我通过截取api实现了该功能,但实在windows98下失败了,原因很简单,就是因为98下某些库如kernel32.dll和gdi.dll等的代码不能被应用程序修改。请问我该怎么办呢?能否通过截获打印消息来实现呢,还是编写VxD?还望各位会长同志和各位vc战友多多指点。
|
|
| 作者:不祥 smthsupport张贴于2004-05-23 18:49:37.0,共阅读1657次,回复0次 |
|
|
 |
白乔原创:DOS时代-汉字的处理技术(一)
|
|
| |
| 有很多这样的编者,他们永远不会在一本书中详尽地叙述一个看起来非常简单的例子。因为这样看来象是在浪费纸张。但是初学者永远是有的,在碰到困难的时候,他们很需要得到耐心的指导和帮助,而事实上他们所看到的都是些“高层次”的内容。每个编者都是从初学者开始的,但他们开始编书的时候,往往不屑于那些细节的问题,这是令读者很苦恼的。
汉字是怎样写到屏幕上来的,中断能用来干什么,还有怎样让你的程序支持鼠标的操作,在此我们开辟了系列讲座:汉字的处理技术、中断的处理技术、鼠标的处理技术,内容由浅至深,环环相扣,很符合初学者的特点。每一章节都提供有很好的例程,并且附上程序的真实运行结果。建议读者要读懂它们,并且能够“临摹”出一些类似的程序来。
关于本文的读者对象,要求能熟悉C语言的基本语法以及关于文件的基本操作,还有一点UCDOS的操作。“程序永远没有结束的时候”。希望读者朋友们能相互切磋,共同提高。汉字的处理技术(一)
许多读者朋友学会了基本的C语言编程以后,就开始对汉字技术产生了兴趣。本篇分别从中文状态、西文状态、文本方式、图形方式四种情形进行汉字处理的介绍。
一、中文状态下的汉字处理
1.第一个汉字处理程序
学习C语言首先都是从著名的“Hello world!”程序起步,它的程序清单如下:
/*test01l. c*/
main( )
{
printf("Helloworld! ...
|
|
| 作者:不祥 bluejoe张贴于2004-05-21 20:46:40.0,共阅读4501次,回复1次 |
|
|
 |
给IE窗口的Input框右键菜单加入新的功能
|
|
| |
| 部分内容需要参考上面的,为Edit框右键菜单添加新项
和设置Edit窗口一样,也需要设置一个窗口过程钩子来截获WM_CONTEXTMENU消息,不过设置的窗口过程有所不同。新的窗口过程如下:
LRESULT CALLBACK IEWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
HOOKSHARED *hkShared;
HANDLE hMapObject;
WNDPROC oldWndProc = (WNDPROC)::GetProp(hWnd, ADPISA_oldProc);
hkShared = HooKGetSharedMem(&hMapObject);
if( uMsg == hkShared->uIEDoPaste )
{
POINT pt;
pt.y = HIWORD( lParam );
pt.x = LOWORD( lParam );
IEDoPaste(hWnd,pt);
}
HooKReleaseSharedMem(hkShared,hMapObject);
switch(uMsg)
{
case WM_CONTEXTMENU:
{
// 在右键弹出时,判断是否为Input框,主要函数GetD ...
|
|
| 作者:不祥 ISeekYou张贴于2004-05-21 21:46:37.0,共阅读2549次,回复0次 |
|
|
 |
给Edit编辑窗口的右键菜单加入新的功能
|
|
| |
| 代码内容来自于曾经做过的一个个人电脑安全安全处理助理软件,其中有项功能,就是给正在编辑的窗口内容加密,加密的功能放在右键菜单中调用,呵呵。里面有些用到的结构函数并没有列出来,代码只能大致给出思路首先需要安装一个窗口过程钩子
g_hPROCHook=SetWindowsHookEx(WH_CALLWNDPROC, GetMsgProc, g_hinstDll, 0);
窗口过程主要是在截获到 WM_CONTEXTMENU 消息时,判断当前窗口是否为Edit框, 若是的话,保存原窗口过程,设置新的窗口过程为NormalWndProc。
LRESULT WINAPI GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
CWPSTRUCT* pStruct = (CWPSTRUCT*)lParam;
HOOKSHARED *hkShared;
HHOOK hProcHook;
HANDLE hMapObject;
hkShared=HooKGetSharedMem(&hMapObject);
hProcHook=hkShared->g_hPROCHook;
if (nCode == HC_ACTION)
{
if (pStruct->message != WM_CONT ...
|
|
| 作者:不祥 ISeekYou张贴于2004-05-21 21:24:50.0,共阅读2552次,回复0次 |
|
|
 |
云朵生成算法
|
|
| |
| 函数用来生成黑白色的云朵.该函数生成该图的一个象素的灰度值
参数说明:
int x, int y: 云朵图对应的象素位置
int x0,int y0,float FX,float FY,float Ci,float Cj,float T0,float K:用来调整云朵亮度、形状、位置等的参数。初始化一般如下
Ci = 6.0f;
FX = 1.0f / 120;
FY = 1.0f / 240;
fK = 1.0f;
T0 = 0.0f;
Cj = 6.0f;
x0 = 30;
y0 = 10;
float CGenerateCloudDoc::GenerateCloud(int x, int y,int x0,int y0,float FX,float FY,float Ci,float Cj,float T0,float K)
{
float LX = 0,LY = 0,T = 0,T1 = 0,T2 = 0,FX1 = 0,FY1 = 0;
for(int i=1; i<5; i++)
{
if(i==1)
{
FX1 = FX;
FY1 = FY;
}
LX = sqrt(i) * FX1;
...
|
|
| 作者:不祥 ISeekYou张贴于2004-05-21 20:41:13.0,共阅读2209次,回复0次 |
|
|
 |
关于窗口的关闭问题
|
|
| |
| 有一个基于对话框的程序,运行到某一步,产生了多个窗口,我想在当前窗口的一个按钮的相应函数中结束前一个窗口,怎么实现呀?有什么好方法?
|
|
| 作者:不祥 fuzzy张贴于2004-05-21 19:56:35.0,共阅读1534次,回复0次 |
|
|
 |
技术问答发贴须知
|
|
| |
| 首先,感谢您在碰到技术难题时选择了vcer,在这里您将能找到满意的答案。
vcer作为一个以提供源代码为主要目的的程序开发学习型网站,有自己的风格,下面我就简单介绍一下关于技术问答板块发贴(回复)的几点注意事项:
1.在发贴提问的时候,请使用搜索功能看一看目前网站上有没有与您的问题一样或者相关的资源,因为毕竟谁都不想看到一个陈旧的问题被讨论很多次。
2.发贴提问请尽量将您所遇到的问题阐述清楚,不要用很简单的几个字,因为对于其他用户来说,很难通过这么少量的信息确切地知道您的问题和疑惑所在,也许您就这样错过一个正确答案。
3.当您解答别人的问题的时候,请尽量替提问用户理清头绪,拓宽其思维领域,您在帮别人的时候,也提高了自己。
4.当您的提问贴得到满意解答或者接近满意解答后,请您做一个归纳总结,总结一下本贴的内容和心得体会,发新贴写入相应的板块,格式如下:
题目:Faq: (您提问贴的题目)
问题解答归纳:(保留有意义的解答)
解答用户:解答方法
经验总结:
在总结完了,回复一下原发文贴,以便版主进行删除。
5.如果一定时间内,您没有归纳总结您的发问贴,版主或者管理员会主动对您的提问贴进行归纳,并将原贴删除。
最后,再次感谢您选择了vcer,vcer的成长靠大家,好的风格也要靠大家维持,谢谢!
|
|
| 作者:不祥 xler张贴于2004-05-21 13:34:41.0,共阅读2365次,回复0次 |
|
|
 |
Faq:如何遍历整个目录
|
|
| |
|
提问用户
主题
提问状态
yugiant(小鱼儿)
如何遍历整个目录
已解决
问题解答归纳:
BOOL DeleteCurFolder(CString folder)
/*****************************************************************
作用:清空文件夹,预防可能产生的bug %
返回值:bool true-success,false-fail %
关键函数:CFildFind::FindFile %
关键变量:folder 对应文件夹 %
作者:张奇 %
修改时间:2002-10-10 ...
|
|
| 作者:不祥 xler张贴于2004-05-21 10:19:39.0,共阅读2826次,回复0次 |
|
|
 |
如何真实地模拟火焰效果
|
|
| |
| 模拟火焰效果如何真实地模拟火焰效果
作者:周军
游戏制作离不开各种各样的特效,火焰效果更是这些特效当中最常用的一种。在网上有很多的这方面的例子,但似乎都不太理想。下面我主要介绍几种有效的火焰模拟算法。
在讲述火焰算法之前,我想先介绍一个经典的Blur算法,这将为我们后面的文章提供很好的技术基础,因为这是模拟火焰的关键所在。^_^ 对于不同的效果我们要采取不同的模糊(Blur)算法,在这里我只介绍最简单的一种。
其实Blur算法相当简单,并不像很多人想象的那么神秘,只要一句话就可以解释清楚。我们所要做的不过是把屏幕上的每一个点用它周围的四个点的平均值代替即可。即:
好了,下面我们进入主题,Let’ s get in …… FIRE ! ! !
总的来说,模拟一个火焰效果需要以下这三个步骤:放置热源、火焰上升、减掉衰减因子。
1. 放置热源:
放置热源很好理解,也很好实现,我们只需要在屏幕的适当位置(想升起火焰的地方)放上一些亮点就可以了,比如:
for (int i=0; i<320; i++)
putpixel (i, 199, rand()%256);
2. 火焰上升:
我们已经有了热源,那么如何使火焰升起来呢?这就要用到我们刚才讲到的Blur了。由于火焰是要向上升的,所以我们不能简单的选择待处理pixel的上、下 、左、右四个 ...
|
|
| 作者:不祥 xler张贴于2004-05-19 20:05:02.0,共阅读2654次,回复0次 |
|
|
 |
解高斯方程组算法(自己写的和清华教材上的比较)
|
|
| |
| 重点是方程组类Linequ的方法 Solve(),解法一是清华教材《C++语言程序设计》郑莉等编的算法,好像有错(反正测试计算出来试错的main()为测试码),且不怎么明白!于是自己写了个,自己命名为逐行消去法!请大家看看!呵呵写得不好请帮忙改进!// Linqu.h
//Begin of file Linequ.h
#ifndef LINQU_H
#define LINQU_H
#include <iostream.h>
#include <math.h>
class Matrix //The definition of basic class
{
public: //Interface for outside
Matrix(int dim=2); //Constructor
~Matrix(); //Destructor
void setMatrix(double* rmatr); //Initialize Matrix
void printM(); //Display Matrix
protected:
int index; ...
|
|
| 作者:不祥 barco张贴于2004-05-17 23:36:27.0,共阅读2773次,回复3次 |
|
|
 |
VC++ spin控件可不可以用于小数的控制?
|
|
| |
| spin控件可不可以用于小数的控制?要求可以控制步进值为0.01.
同时请问:可不可以直接利用属性,使得EditBox里的数值定义为%f.2
|
|
| 作者:不祥 redkisses张贴于2004-05-17 16:48:44.0,共阅读2162次,回复2次 |
|
|
 |
MFC 寻找一个图形类,或者是区域类...
|
|
| |
| 如绘图程序或者PHOTOSHOP中比较常见的图层概念,每个图层在一个区域中,选中后,周围有
8个控制点,可以控制改变区域的大小,图层选中后可以拖动.....
多处可以见到这种类,不知道MFC中是否有封装好的,或者哪位可以提供,感激不尽...
|
|
| 作者:不祥 redkisses张贴于2004-05-17 16:46:46.0,共阅读1863次,回复2次 |
|
|
 |
MFC 各个类之间的消息传递怎么实现?
|
|
| |
| MainFram下面的窗口被分割为 FormView 和ScrollView, MainFram还控制多个CDlg,想利用
FormView上的按钮 控制ScrollView,同时这些类中的参数可以互逆传递和控制.
|
|
| 作者:不祥 redkisses张贴于2004-05-17 16:49:31.0,共阅读1844次,回复1次 |
|
|
|