【译者声明】
~~~~~~~~~~~
这是一篇关于病毒基础知识的教程,作者Billy Belceb,西班牙人,在16岁时写的这篇教程,曾创建了病毒组织DDT。翻译这篇教程的目的是想揭开病毒的神秘面纱,从编写病毒的角度来学习病毒,希望对大家有用。由于原文为西班牙人写的英文,译者翻译教程也不多,英语只是凑合,错误之处还请大家原谅,如果大家发现翻译有什么不当之处,欢迎改正,大家也可对照原文学习。(原文在29A#4中)。大家都知道,我们脱一个壳经常见到某某壳用了某某病毒技术,到底病毒技术是那些呢?比较经典而全面的Win32病毒教程就是Billy Belceb写的本教程,可惜一直没有人翻译成中文,我作为一个大傻鸟,就决定翻译了。谨以此翻译献给所有的Cracker和所有对Win32汇编感兴趣的人。下面为原文译文,祝你好运!
【声明】
~~~~~~~
作者对因对此文档使用不当而造成的任何损失概不负责。这篇教程的目的是教会人们编写病毒和防护一些破坏力大的病毒的破坏。这篇教程仅作为教学目的。所以,如果有人利用这篇文章编写了破坏力很大的病毒,我可不负责任。如果通过这篇文章你看到我鼓励人们破坏数据的字眼,先去买副眼镜再说。
【介绍】
~~~~~~~
亲爱的同志们,大家好,你还记得Billy Belceb的病毒编写教程吗?那是一篇关于过时的MS-DOS病毒的教程。在那篇教程中,我一步一步地介绍了很多有名的DOS病毒技术的知识,而且它是为初学者写的,使他们尽快地入门。现在,我又写了一篇很酷(我希望是)的教程,但是这一次我将介绍现在计算机的新威胁,Win32病毒,毫无疑问,所有的东西都是和那个有关了。我发现现在一个完整的教程很缺,所以我曾问自己...为什么我不写一篇关于这个的教程?所以我又写出来了:)真正的在Win32病毒的先驱是VLAD组织,而用这种方式来写教程的作者是Lord Julus。但是我不会忘记那些写了很多有趣教程的人,和在Lord Julus的教程之前的所有相关东西,当然我在说JHB啦。有趣的技术是由Murkry研究的,后来Jacky Qwerty...我希望我没有忘记在Win32病毒编写(很短)史上的重要的人。注意我从来没有忘本。象在我的病毒编写教程系列里一样,我要谢谢一些音乐组织,如Blind Guardian,HammerFall,Stratovarius,Rhapsody,Marilyn Manson,Iron Maiden,Metallica,Iced Earth,RAMMS+EIN,Mago De Oz,Avalanch,Fear Factory,Korn,Hamlet 和Def Con Dos。所有这些东西营造了写一篇巨大的教程和代码的完美的氛围。
嗨,我的教程的结构已经有了很大的改变,现在我给出一个索引,几乎所有给出的代码都是我编写的,或者基于其他人的但是被我改编了的,或者有一点删改的;)但是,嗨,我已经努力的解决在我的现在已经绝种了的MS-DOS(RIP)版VWG中遇到的所有问题。
我必须向Super/29A问好,是他帮助了这篇教程的一些方面的东西,他是我的beta测试人之一,而且他已经对这篇教程贡献了一些东西。
说明:英语不是我的母语(西班牙语才是)【译者注:所以这篇西班牙式的病毒教程很难翻译,不当之处还请原谅】,所以原谅我的许多拼写错误,请告知我,我会修正的。我已经引用了已经在一些独立的病毒杂志里发表了的文章,但是它们仍然值得一读因为我已经修改了,进行了语法检查,并加入了一些额外的信息。记住:这篇文章并不完美,所以原谅在这篇教程中的错误。
----------跟我联系
-E-mail billy_belcebu@hotmail.com billy_belcebu@cryogen.com
-ICQ # 22290500
个人主页 http://members.xoom.com/billy_bel&n...sp; http://www.cryogen.com/billy_belcebu
组织主页 http://sourceofkaos.com/homes/ddt
IRC [Billy_Bel] Undernet #vir, Irc-Hispano #virus
祝玩得快乐!
Billy Belceb
美梦从这里开始...
(c) 1999 Billy Belcebu/iKX
【索引】
~~~~~~~
有人(Hi Qozah!)已经告诉我,当他读这篇教程的beta版本时,它有一点混乱,因为容易迷失在各章之间。无论如何,我已经对这个重新组织了,我仍然很混乱,而且我的教程也是:)
01.声明
02.介绍
03.索引
04.病毒编写中的有用的东西
05.简单介绍
06.PE 文件头
07.Ring-3,用户级编码
08.Ring-0,系统级编码
09.Per-Process residency
10.Win32优化
11.Win32反调试
12.Win32多态
13.高级Win32技术
14.附录一:病毒发作
15.附录二:关于作者
16.结束语
【病毒编写中的有用的东西】
~~~~~~~~~~~~~~~~~~~~~~~~~
在开始编写病毒之前,你需要一些东西。下面是我给你推荐的程序(如果你没有足够的金钱来买它们...下载!) :)
Windows 95 或 Window NT 或 Windows 98 或 Windows 3.x + Win32s :)
TASM 5.0 包(包括TASM32 和 TLINK 32)
SoftICE 3.23+(或更好) for Win9X,和 for WinNT。
API 列表(Win32.HLP)
Windows95 DDK,Windows98 DDK,Windows2000 DDK...即所有的微软DDK和SDK。
强烈推荐Matt Pietrek关于PE文件头的文章。
Jacky Qwerty的PEWRSEC工具(在你在'.code'里添加代码时用)。
一些hash...哦,shit!它是我想要的! :)
一些电子杂志如29A(#2,#3),Xine(#2,#3,#4),VLAD(#6),DDT(#1)...
一些Windows病毒,如Win32.Cabanas,Win95.Padania,Win32.Legacy...
一些Windows病毒查杀工具(强烈推荐NODICE32)->www.eset.sk
Neuromancer,by William Gibson,它是一本好书。
毫无疑问,这篇教程!
我希望没有忘掉任何重要的东西。
【简要介绍】
~~~~~~~~~~~
好了,开始把你的大脑中的16位MS-DOS编码概念,迷人的16位偏移地址,中断,驻留内存的方法...都清除掉。所有这些我们已经使用了很多年的东西,现在已经再也不用了。是的,它们确实现在用不到了。在这篇教程里面,当我说Win32,我的意思是Windows 95(normal,OSR1,OSR2),Windows 98,Windows NT或Windows 3.x+Win32s。最最明显的变化,至少在我看来是由中断变成了API,在这之前是由16位寄存器和偏移地址变到了32位的。Windows给我们开了使用其它语言代替ASM(和C)的方便之门,但是我仍然对ASM情有独钟:利用它能更好的理解一些东西和更容易的优化(hi Super!)。正如我在上面所说的,你必须使用一种新东西叫做API。你必须知道这些参数必须在堆栈中,而且调用这些API是使用的CALL。
注:在上面我把上面所有提到的平台叫做Win32,我把Win95(它的所有版本)和Win98叫做Win9x,把Windows 2000叫做Win2k。请注意这一点。
%由16位到32位编程的改变%
~~~~~~~~~~~~~~~~~~~~~~~~