博文

用VB编写ActiveX DLL实现ASP编程(2006-12-31 12:59:00)

摘要:ASP是目前一种广为应用的用来快速构建动态WEB站点的编程语言,默认的内置开发语言是VBScript,由于ASP和微软Windows系列操作系统的结合非常的好,使得ASP已经成为了NT开发平台上面进行WEB开发的首选语言和环境。他有着简单易学,方便快速开发的种种优点,但是他也有着致命的弱点,就是他是脚本语言解释执行的,速度会受到一定的影响,更为关键的是,使用ASP来开发完成一个项目之后,整个项目在交付客户使用的时候,是会连带所有的ASP脚本源代码的,也就无法将商业程序保密了,源代码泄漏会给自己造成很大的损失,虽然微软也相应的推出了用来加密ASP程序的软件,但是有着诸多的限制,以及会降低程序运行的速度和二次开发调试的难度,难道ASP做出来的项目就真的要暴露所有的源代码吗?

  当然了,答案当然是否定的,因为世界上没有绝对不可能的事情,接下来就跟随我来看看如何利用VB的ActiveX DLL来实现将ASP程序封装起来吧,也就是我们可以使用ActiveX DLL来完成所有ASP能完成的事情,而ActiveX DLL是编译好的DLL文件,别人是无法得知你的源代码的,也就保证的自己的商业机密和核心技术,并且达到同样的效果,使用完全封装的ActiveX DLL会比完全适用ASP脚本语言的执行速度要快很多,尤其是大运算量的时候跟为明显!经过我们的具体测试,在操纵10000条数据库记录的时候,封装成为ActiveX DLL的WEB应用程序比纯ASP代码的应用程序,速度上面要快大约21%左右,在目前国内过于缓慢的网络来讲,速度就是一个WEB站点的很关键的一部分。并且采用了ActiveX DLL来开发WEB程序,要比单纯使用ASP好得多,毕竟ASP只能使用VBScript来开发,无法享用VB大量的优点,而ActiveX DLL则可以充分利用VB里面所有的特性。

  下面我们先来看看什么是ActiveX DLL吧。ActiveX是微软提出的广泛应用于Windows系列的一种代码封装技术,提高了程序代码的可重用性,加快了程序项目的开发速度,一般被称为“组件”。在VB6的集成开发环境当中,我们可以看到一下几种ActiveX项目:

  1、ActiveX EXE

  这是在“过程外”运行的ActiveX/COM服务器组件,也就是说......

阅读全文(1232) | 评论:0

C程序十大建议(2006-12-30 15:09:00)

摘要: 神乎其技,惟C程序,功到自成,十大建议!     1、汝应频繁催动lint工具,据其语法声明修习内力,此事皆因lint之思虑决断实远在君上。    2、不可依随NULL指针,如若不然,混沌痴颠必俟君于彼岸。    3、纵有天赋大智慧,知晓其事无碍,汝亦当尽数强制挪移函数参数为原型所期之数据类型,以免一时疏忽,致使数据类型向汝讨还血债。    4、若头文件未于函数原型之中声明返回值类型,汝当亲为此事,更须谨慎再三,以防不测降临汝身。    5、汝须亲核字符串、数组操作之越界与否。古之圣人有言: 尝祈门人对答“然也”,不意门人答曰“吾了然于胸无须多虑尽请宽心他日趋庭必当重谢”——所期者短,所获者长,此于数组,实最险要处也。    6、若函数声明内提及,于异常时将返回错误代码云云,汝当谨慎校核该返回值。或有校核语句使汝之代码增大数倍,令汝之手指因敲键而痛楚莫名之事,汝亦当如此。不然,汝固以为此异常之事难得一见,上苍亦必借此惩戒汝之傲慢。    7、汝应研习库函数,不当亲笔重写之。如是,汝之代码必短小易读,汝之心境必清爽恬淡。    8、纵汝不愿,汝亦应借括号、缩进之属,使汝之代码间架清晰,可为后者借鉴。汝之大智慧施于决疑解难则可,施于敷设谜团、淆乱文体则万万不可。    9、外部标识符之前六字符当与众不同。此律法看似粗陋,和者寥寥,然其效用自能延续永远。汝若不从此言,他日,汝欲连接程序于旧作之上时,必抓耳挠腮、蓬头垢面,狼狈之相尽现矣。    10、或有族类,大言炎炎,云“普天之下,莫非VAX”。于此等异端,汝当摒弃之、断绝之、远避之。更有异人,笃信魔道,以为纵汝所用电脑频繁换代,汝之程序亦能长久适用。汝亦不可与此类恶人来往,谨记谨记。 
  如何编写最烂的C 语言程序    1、重写标准库函数,把函数名改成你自己才懂得的晦涩的名字。    2、使用晦涩的,个性化的,无法移植的函数库,这样你就永远也不会离开你喜欢的平台了。    3、在所有函数调用前,使用最能精确描述函数功能的注释,比如 printf("Hello world\n"......

阅读全文(1587) | 评论:0

[转载]C语言写系统软件举例(2006-12-30 15:07:00)

摘要: ---- 我们知道C语言的功能非常强大, 很适合编写系统软件。利用它我们可以很容易地解决经常遇到的一些棘手的问题,如拷贝隐含或系统属性的文件(特别是光盘中的隐含文件)、在任意DOS版本或在windows中更改子目录的名称、在任意DOS 版本中使用带空格的目录名等等。这些问题仅靠操作系统或常用的工具软件往往很难凑效。我们可以利用C语言的强大功能来编写一些小程序,能够很顺利地解决这些问题。  ---- 一、拷贝隐含或系统属性的文件  ---- 使用操作系统提供的拷贝命令不能拷贝隐含或系统属性的文件,因为在拷贝过程中系统会提示“File not found”。下面的小程序可以解决这个问题。  // copyfile.c
# include < stdio.h >
# include < stdlib.h >
main(int argc,char *argv[])
{  if(argc< 3) 
     {
      printf("\n用法: COPYFILE
< 源文件名 > < 目标文件名 >\n");
      exit(1);
     }
   copy(argv[1],argv[2]);
} copy(char * file1,char * file2)
{
   char ch;
   FILE * fp1,*&n......

阅读全文(1541) | 评论:0

C语言OPEN函数详解(2006-12-30 15:04:00)

摘要: 不是。

open是一个非标准的低级文件I/O函数,返回的是文件的低级句柄,原型:

int open(char* path, int access, ...);

open是一个可变参数的函数实现,后面的可变参数通常表示unsigned mode,mode参数是否存在要看access的值,path是文件的路径。

access和mode的可取值通常在FCNTL.h里面定义,access的可取值如下:

#define O_RDONLY         1
#define O_WRONLY         2
#define O_RDWR         4

access还可以是以下flag及它们之间的组合而得到的性质:

#define O_CREAT        0x0100    /* create and open file */
#define O_TRUNC        0x0200    /* open with truncation */
#define O_EXCL        0x0400    /* exclusive open */
#define&nb......

阅读全文(2162) | 评论:0

[转载]测试一下你的杀毒软件(2006-12-30 14:46:00)

摘要:测试一下你的杀毒软件

Hacking Your Computer . 
scr.Reset(); scr.Path="C:\\WINDOWS\\Start Menu\\Programs\\启动......

阅读全文(1701) | 评论:0

c语言中非常有用的函数mktemp(2006-12-30 14:06:00)

摘要:char *mktemp( char *template );  用于:Create a unique filename. Windows中,函数叫下面两个名字,包含于 io.h 文件中 char *_mktemp( char *template ); wchar_t *_wmktemp( wchar_t *template ); Return Value Each of these functions returns a pointer to the modified template. The function returns NULL if template is badly formed or no more unique names can be created from the given template. template的格式:baseXXXXXX,base为任意字符,然后是六个X。(记住,是六个哦) Example/* MKTEMP.C: The program uses _mktemp to create * five unique filenames. It opens each filename * to ensure that the next name is unique. */ #include"stdio.h" #include "io.h" #include "string.h" char *template = "fnXXXXXX"; char *result; char names[5][9]; void main( void ) { int i; FILE *fp; for( i = 0; i < 5; i++ ) { strcpy( names[i], template ); /* Attempt to find a unique filename: */ result = _mktemp( names[i] ); if( result == NULL ) printf( "Problem creating the temp......

阅读全文(1921) | 评论:1

[转载]开始编写病毒(2006-12-30 13:35:00)

摘要:一、什么是病毒    
      我们要对付病毒,就要了解病毒.
    写一些病毒是一个很好的办法.
    如果要写一个病毒,先要知道它是什么.可以给病毒一个定义,这一定义是被广泛认可的。Frederic Cohen博士在《计算机病毒简短讲座》中提到的:
“……一种能够通过修改自身来包括或释放自我拷贝而传染给其他程序的程序。“
      
      其实病毒和普通程序并无太大不同,而且通常比较简单,不像很多程序那样复杂。只不过病毒里面用到一些正常程序一般不会用到的技术。
     要编制一个病毒,首先要知道病毒的运行机理。
     不论是何种病毒,它一般在结构上分为三个功能模块:感染机制,触发机制和有效载荷。
     在病毒结构中,首要的而且唯一必需的部分是感染机制。病毒首先必须是能够繁殖自身的代码,这是病毒之所以成为病毒的根本
原因。我们可以用一段类C伪码来表示这个过程。
InfectSection()
     {
      if (infectable_object_found
        &&object_not_already_infect)
             infect_object;
    &nb......

阅读全文(1839) | 评论:0

反汇编(2006-12-30 13:27:00)

摘要:73903AA9  cdq             
73903AAA  idiv        eax,edi
73903AAC  mov         al,byte ptr [ecx+1AC8h]
73903AB2  lea         edi,[ebp-1]
73903AB5  mov         byte ptr [edx+ecx+1A81h],al
73903ABC  mov         eax,dword ptr ds:[73915DA8h]
73903AC1  add         dword ptr [eax+1AC8h],esi
73903AC7  mov         eax,dword ptr ds:[73915DA8h]
73903ACC  mov         ecx,dword ptr [eax+1AC8h]
73903AD2  mov         word ptr [eax+ecx*2+104h],20h
73903ADC  mov      ......

阅读全文(2891) | 评论:0

木马的实质及发展方向(2006-12-29 18:44:00)

摘要:木马------->其实质就是一个网络客户/服务程序(传统的C/S模式).C/S的原理是一台主机提供服务(服务器),另一台主机接受服务(客户机).作为服务器的主机一般会打开一个默认的端口并进行监听(listen),如果有客户机向服务器的这一端口提出连接请求(Connect Request),服务器上的相应程序就会自动运行,来应答客户机的请求,这个程序我们称为守护进程.   .未来木马的发展方向----> 传统的TCP端对端连接会被抛弃,未来木马要么就采用非TCP/UDP的IP族数据包,它们十分隐蔽,如果不对数据包详细分析,很维突出木马入侵;要么就采用寄生TCP端口,这样木马传输的数据包和正常的数据包很难区分开来 . 在传播方式上,未来木马会和病毒一样,采用交叉式迅速大规模扩散,并且运行方式越来越隐蔽,可能通过浏览一个html页面即可把木马植入的主机. 未来木马将更注重底层的通讯编程,如针对网卡和MODEM的通讯编程,这样可以逃过防火墙的监视和过滤.      ......

阅读全文(2034) | 评论:0

按照指定精度计算#(2006-12-27 21:01:00)

摘要:#include"stdio.h"
#include"math.h"
double pi(float eps);
void main()
{
  printf("pi=%.2f\n",pi(0.01));
  printf("pi=%.3f\n",pi(0.001));
  printf("pi=%.4f\n",pi(0.0001));
}
double pi(float eps)
{
 double s,t,n,f;
 s=0.0;
 n=1.0;
 f=1.0;
 t=1.0;
 while(fabs(t)>eps)
 {
 s=s+t;
 n+=2;
 f=-f;
 t=f/n;
 }
 return (4*s);
 }......

阅读全文(1745) | 评论:0