黄金分析师推荐:哪里有靠谱的黄金黔都云商微盘分析师师

君,已阅读到文档的结尾了呢~~
1,试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来.答案:abc: mov ah,1int 21hcmp al,'a'jb stopcmp al,'z'...
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
试编写一个汇编语言程序
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口如何使用汇编语言编写一个病毒
病毒编写的艺术似乎丢失了似的。我们不要将恶意软件,特洛伊木马,蠕虫等等混淆成病毒。你可以使用任何友好的脚本语言去编写那些垃圾程序并且拍着自己的后背嘚瑟一下,但这并不能让你成为一个病毒作者。编写计算机病毒并不一定就是你所看到的关于破坏,还得要看你的病毒可以传播多广泛同时避免被检测,也得要比杀毒软件公司更为聪明。这事关创新和创造力。一个计算机病毒在很多方面就像一个纸飞机。你需要使用聪明和具有创造性的方式去折飞机,并试图使它在不可避免的着陆前尽可能长久的飞翔。在万维网之前,传播病毒是一种挑战。运气好的话,它会感染除了你自己之外的任何电脑。如果运气更好点,你的病毒将获得像鲸鱼病毒或米开朗基罗病毒一样的名声。
如果你想被视为一个&病毒作者&,你必须获得这类称号。在地下黑客组织里,在黑客/破解者/入侵者之中,我最尊重的是病毒作者。因为不是任何人都能做到,那是真的能够表现出他比别人拥有更深的、关于系统和软件方面的知识。你不能指望简单地遵循常规就能成为一个病毒作者。编写一个真正的病毒需要比一般&黑客&拥有更多的技能。多年以来,我没有成功的写出一个可以运行良好的二进制文件感染病毒。一直就是报错、报错、报错。这是一件令人沮丧的事情。因此我坚持编写蠕虫、木马炸弹和ANSI炸弹。我坚持编写BBS的漏洞利用,也去逆向视频游戏软件以破解其版权保护。每当我以为我的汇编技术终于足够,试图编写出一个病毒的时候,失败再次地落到我的脸上。我花了好几年的时间才能够编写出一个真正可运行的病毒。这就是为什么我着迷于病毒并且想找出一些真正的病毒作者。在瑞安&elfmaster&奥尼尔传奇的书籍《学习Linux二进制程序分析》中,他指出:
这是一个超越常规编程约定的伟大挑战工程,它要求开发人员跳出传统模式,去操纵代码、数据和环境使其以某种方式表现,在与AV杀毒软件开发者的交流时,令我吃惊的是,他们旁边没有人有任何真正关于如何逆向一个病毒的想法,更不用说去设计什么真正的启发式来识别它们(除了签名)。事实上,病毒编写是非常困难的,并且需要标准比较严格的技能。
使用汇编语言编写一个病毒
病毒是一种艺术。汇编和C(不使用代码库)将是你的画笔。今天,我将帮助你经历一些我面临过的挑战。让我们开始吧,看看你是否拥有成为一个艺术家的潜能!
与我之前的&源代码感染&病毒教程不同,这是更先进且具有挑战性的经历/运用(即使对经验丰富的开发人员)。但是,我鼓励你继续阅读并尽你所能地汲取。
让我们先描述一下我认为的、一个真正病毒应该有的特点:
&&病毒会感染二进制可执行文件
&&病毒代码必须是独立的,它独立于其他文件、代码库、程序等
&&被感染的宿主文件能够继续执行并且传播病毒
&&病毒在不损害宿主文件的情况下表现得像一只寄生虫。受感染的宿主应继续像它被感染之前一样执行
因为我们要感染二进制可执行文件,所以简要列表介绍几个不同的可执行文件类型。
ELF-(可执行和链接的文件格式)Unix和类Unix系统标准的的二进制文件格式。这也被许多手机,游戏机(Playstation,任天堂)等等使用。
Mach-O-(Mach对象)被NeXTSTEP,macOS,iOS等等,所使用的二进制可执行文件格式,你其实在用它,因为所有的苹果手机都是这。
PE-(便携式可执行程序)用于32位和64位微软
MZ(DOS)- DOS支持的可执行文件格式&所有的微软32位及以下使用
COM(DOS)- DOS支持的可执行文件格式&所有的微系32位及以下使用
微软的病毒教程有许多,但是ELF病毒似乎更具挑战性并且教程稀缺,所以我将主要关注的是32位ELF程序的感染。
我将假设读者至少对病毒复制的方式有一个常规的理解。如果没有,我推荐你阅读我以前的博客文章主题:
//how-to-write-a-stupid-simple-computer-virus-in-3-lines-of-code/
//how-to-create-a-computer-virus/
//how-to-make-a-simple-computer-virus-with-python/
第一步是找到要感染的文件。DOS指令集可以方便寻找文件。AH:4Eh INT 21指令能够基于给定的文件描述找到第一个匹配的文件,而AH:4Fh INT 21指令可以找到下一个匹配的文件。不幸的是,对于我们却不会这么简单。使用Linux汇编来检索文件列表,这相关的文档并不是很多。少数的几个回答中我们发现它依赖于POSIX系统的readdir()函数。但是我们是黑客,对么?让我们做黑客应该做的事情来实现它。你应该熟悉的工具是strace。通过运行strace ls,我们看到了当运行ls命令时,跟踪到的系统调用和信号。
你感兴趣的调用是getdents。所以下一步是在/查找&getdents&。这将给我们一个小小的提示,关于我们应该怎样使用它以及我们如何得到一个目录列表。下面就是我所发现的东西:
&&&&& mov eax, 5&&&&& ; sys_open
&&& mov ebx, 目录名称
&&& mov ecx, 0
&&& mov edx, 0
&&& int 80h
&&& cmp eax, 0&&&&& ; 检测在eax中的fd是否 & 0 (ok)
&&& jbe error&&&&&& ; 不能打开文件,& 以错误状态退出 [1]&&&&&&&&
【声明】:黑吧安全网()登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱,我们会在最短的时间内进行处理。
上一篇:【】【】如何用汇编语言编写Windows应用程序--《微电脑世界》1996年04期
如何用汇编语言编写Windows应用程序
【摘要】:正 如今Windows越来越受到大家的喜欢,通常人们都喜欢用C、C~(++)、Visual BASIC等语言开发Windows应用程序。但有时,由于一些特殊需要,还希望用汇编语言来开发Windows应用程序,比如一些涉及低级操作的驱动程序。只是目前关于用汇编语言开发Windows应用程序的参考资料比较少,而且即便是有,也只是泛泛而谈。所以大家在实际接触
【作者单位】:
【关键词】:
【分类号】:TP313【正文快照】:
如今WindowS越来越受到大家的喜欢,通常人们都喜欢用C、C十+、Visual BASIC等语言开发Windows应用程序。但有时,由于一些特殊需要,还希望用汇编语言来开发Windows应用程序,比如一些涉及低级操作的驱动程序。只是目前关于用汇编语言开发Windows应用程序的参考资料比较少,而且
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【相似文献】
中国期刊全文数据库
沈建苗;;[J];微电脑世界;2011年07期
;[J];电脑迷;2011年13期
SSD;;[J];电脑迷;2011年17期
李定才;瞿绍军;胡争;段兵;成幸毅;唐强;;[J];计算机技术与发展;2011年09期
;[J];电脑迷;2011年15期
;[J];现代电视技术;2011年06期
沈建苗;;[J];微电脑世界;2011年09期
李云峰;;[J];电脑爱好者;2010年23期
王志军;;[J];电脑爱好者;2011年05期
;[J];硅谷;2011年13期
中国重要会议论文全文数据库
刘波;陈波;王仁礼;;[A];中国自动化学会、中国仪器仪表学会2004年西南三省一市自动化与仪器仪表学术年会论文集[C];2004年
李宥志;;[A];全国计算机安全学术交流会论文集·第二十五卷[C];2010年
肖志;于凤芹;李玉;;[A];第二十六届中国控制会议论文集[C];2007年
李必丹;任继东;;[A];2000年晋冀鲁豫鄂蒙六省区机械工程学会学术研讨会论文集(河南分册)[C];2000年
胡卫;彭钢;刘显静;;[A];2010通信理论与技术新发展——第十五届全国青年通信学术会议论文集(上册)[C];2010年
吴小岭;;[A];’2001天津信息技术、电子、仪器仪表学术会议论文集[C];2001年
缪天宇;赵建军;周俊武;徐宁;;[A];复杂难处理矿石选矿技术——全国选矿学术会议论文集[C];2009年
王云扬;;[A];全国第八届工业工程与企业信息化学术会议论文集[C];2004年
Eric Gigué;[A];促进企业信息化进程——第九届中国Java技术及应用交流大会文集[C];2006年
梅劲松;;[A];2008年“ICT助力两型社会建设”学术研讨会论文集[C];2008年
中国重要报纸全文数据库
麦国恒;[N];电脑报;2003年
迈巴赫;[N];计算机世界;2011年
广东 邹民;[N];电脑报;2010年
;[N];湖北科技报;2003年
吴冬;[N];中国电脑教育报;2003年
[N];中国电脑教育报;2002年
琳琳;[N];中国电脑教育报;2010年
于翔 编译;[N];网络世界;2009年
东海;[N];电脑商报;2009年
那罡;[N];中国计算机报;2009年
中国博士学位论文全文数据库
刘真;[D];浙江大学;2007年
陈志圣;[D];同济大学;2008年
于策;[D];天津大学;2009年
何秋生;[D];复旦大学;2007年
陈庆涛;[D];成都理工大学;2008年
张永进;[D];西北大学;2007年
Raihan Ur Rasool(瑞寒);[D];武汉理工大学;2007年
李如仁;[D];辽宁工程技术大学;2007年
迟文学;[D];中国地质大学(北京);2008年
李磊;[D];国防科学技术大学;2007年
中国硕士学位论文全文数据库
韩续;[D];北京交通大学;2011年
陆垂伟;[D];武汉理工大学;2002年
钟萃芳;[D];北京邮电大学;2010年
丁宁;[D];北京交通大学;2011年
宋元涛;[D];曲阜师范大学;2000年
彭赓;[D];电子科技大学;2010年
牛振州;[D];山东大学;2010年
雷钢;[D];四川大学;2004年
全君林;[D];华南理工大学;2010年
李小波;[D];上海交通大学;2010年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 大众知识服务
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号博客访问: 150521
博文数量: 45
博客积分: 1850
博客等级: 上尉
技术积分: 472
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
汇编语言的实现也是先利用某种编辑器编写汇编语言源程序(*.ASM),然后经过汇编得到目标模块文件(*.OBJ)、连接后形成可执行文件(*.EXE)。1、汇编语言程序的语句格式汇编语源程序由语句序列构成。语句一般由分隔符分成的四个部分组成,它们有两种格式:(1)执行性语句——由硬指令构成的语句,它通常对应一条机器指令,出现在程序的代码段中:标号:硬指令助记符& 操作数,操作数&&&&& ;注释(2)说明性语句——由伪指令构成的语句,它通常指示汇编程序如何汇编源程序:名字& 伪指令助记符& 参数,参数,...&&&& ;注释◆执行性语句中,冒号前的标号反映该指令的逻辑地址;说明性语句中的名字可以是变量名、段名、子程序名或宏名等等,既反映逻辑地址又具有自身的各种属性。标号和名字很容易通过是否具有冒号来区分。◆硬指令助记符可以是任何一条处理器指令,也可以是一条宏指令,伪指令助记符主要完成一些不产生CPU动作的说明性工作,在程序执行前由汇编程序完成处理。◆处理器指令的操作数可以是立即数、寄存器和存储单元。伪指令的参数可以是常数、变量名、表达式等,可以有多个,参数之间用逗号隔开。◆语句中由分号开始的部分是注释。2、汇编语言源程序这个以前已经学过,主要有简化段定义格式和完整段定义格式3、宏汇编程序MASMMASM6.11,安装文件5张软盘,默认安装在C:MASM目录下,完整的MASM汇编系统包含很多文件,但最基本的有如下几个:ML.EXE&&&&&& 汇编程序ML.ERR&&&&&& 汇编错误信息文件DOSXNT.EXE&& MS-DOS扩展文件LINK.EXE&&&& 连接文件LIB.EXE&&&&& 子程序库管理文件如果采用集成开发环境PWB,主要涉及如下文件:PWWB.EXE&&&&&&&&&& 程序员工作平台NMAKER.EXE&&&&&&&& 工程维护程序NMAKE.EXE&&&&&&&&& nmaker的MS-DOS扩展驱动程序CV.EXE&&&&&&&&&&&& 源代码调试器CodeViewCVPACK.EXE&&&&&&&& 调试信息压缩器,它为CODEVIEW准备一个可执行文件HELPMAKE.EXE&&&&&& 帮助文件维护程序BSCMAKE.EXE&&&&&&& 浏览数据库创建程序SBRPACK.EXE&&&&&&& 浏览信息程序PWBRMAKE.EXE&&&&&& BSCMAKE兼容驱动程序*.MXT&&&&&&&&&&&&& 各种PWB扩展工具文件*.XXT&&&&&&&&&&&&& 各种语言的PWB扩展文件4、汇编语言的命令行开发过程(1)原程序的编写用编辑软件书写*.asm源程序,如LI6-1.ASM;LI6-1.ASM&.MODEL SMALL&.STACK&.DATASTRING&DB 'Hello,Everybody!'&.CODE&.STARTUP&MOV DX,OFFSET STRING&MOV AH,9&INT 21H&.EXIT 0&END(2)原程序的汇编汇编是将原程序翻译成由机器代码组成的目标模块文件的过程,如下:ML /c LI6-1.ASM如果源程序没有语法错误,则生成一个目标模块文件LI6-1.OBJ(3)目标文件的连接连接程序能把一个或多个目标文件和库文件和成一个可执行文件(.EXE、.COM文件),如下:LINK LI6-1.OBJ连接程序的一般格式:LINK [/参数选项] OBJ文件列表 [EXE文件名,MAP文件名,库文件][;]连接程序可以将多个模块文件连接起来,形成一个可执行文件;多个模块文件用“+”分隔。给出EE文件名就可以替代与第一个模块文件名相同的缺省名。给出MAP文件名将创建连接映像文件,否则不生成映像文件。库文件是指连接程序需要的子程序库等。“;”表示采用缺省值事实上,ML汇编程序可以自动调用LINK连接程序(ML表示MASM和LINK),实现汇编和连接依次进行,如下即可完成可执行文件的生成:ML LI6-1.ASMML的命令行格式如下:ML [/参数选项] 文件列表 [/LINK连接参数选项]参数选项如下(注意参数是大小写敏感的):/AT——允许tiny存储模式(创建一个COM文件)/c——只汇编源程序,不进行自动连接/fl 文件名——川建一个汇编列表文件(扩展名LST)/Fr 文件名——创建一个可在PWB下浏览的.SBR源浏览文件/Fo 文件名——根据指定的文件名生成模块文件,而不是采用缺省名/Fe 文件名——根据指定的文件名生成可执行文件,而不是采用缺省名/Fm 文件名——创建一个连接映像文件(扩展名MAP)/I 路径名——设置需要包含进(INCLUDE)源程序的文件的所在路径/Sg——在生成的文件列表文件中,列出由汇编程序产生的指令/Sn——在创建列表文件时不产生符号表/Zi——生成模块文件时,加入调试程序CODEVIEW需要的信息/Zs——只进行语法检查,不产生任何代码/LINK——传递给连接程序LINK的参数列表文件是一种文本文件,含有源程序和目标代码,创建列表文件,输入如下命令:ML /Fl /Sg LI6-1.ASM该命令除产生模块文件LI6-1.OBJ和可执行文件LI6-1.EXE,还产生列表文件LI6-1.LST,采用/Sg,如果源程序具有.STARTUP、.EXIT伪指令以及流程控制伪指令.IF、.WHILE等,将在列表文件中得到相应的硬指令;否则列表文件只给出上述伪指令。LI6-1.LST如下:Microsoft (R) Macro Assembler Version 6.11&&&&& 08/10/05 14:09:13li6-1.asm&&&&&&&&&& Page 1 - 1&&&&;LI6-1.ASM&&&&&.MODEL SMALL&&&&&.STACK&0000&&&&&.DATA& 6C 6C 6F 2C&&STRING&DB 'Hello,Everybody!'&&&&&& 45 76 65 72 79 62&&&&&& 6F 64 79 21&0000&&&&&.CODE&&&&&.STARTUP&0000&&&&& :&0000& BA ---- R&&& *&&&& mov&&& dx, DGROUP&0003& 8E DA&&&& *&&&& mov&&& ds, dx&0005& 8C D3&&&& *&&&& mov&&& bx, ss&0007& 2B DA&&&& *&&&& sub&&& bx, dx&0009& D1 E3&&&& *&&&& shl&&& bx, 001h&000B& D1 E3&&&& *&&&& shl&&& bx, 001h&000D& D1 E3&&&& *&&&& shl&&& bx, 001h&000F& D1 E3&&&& *&&&& shl&&& bx, 001h&0011& FA&&&& *&&&& cli&&& &0012& 8E D2&&&& *&&&& mov&&& ss, dx&&&&& *&&&& add&&& sp, bx&0016& FB&&&& *&&&& sti&&& &0017& BA 0000 R&&&MOV DX,OFFSET STRING&001A& B4 09&&&&MOV AH,9&001C& CD 21&&&&INT 21H&&&&&.EXIT 0&001E& B8 4C00&&&& *&&&& mov&&& ax, 04C00h&0021& CD 21&&&& *&&&& int&&& 021h&&&&&ENDMicrosoft (R) Macro Assembler Version 6.11&&&&& 08/10/05 14:09:13li6-1.asm&&&&&&&&&& Symbols 2 - 1Segments and Groups:&&&&&&&&&&&&&&& N a m e&&&&&&&&&&&&&&&& Size&&&& Length&& Align&& Combine ClassDGROUP . . . . . . . . . . . . .&GROUP_DATA& . . . . . . . . . . . . .&16 Bit& 0010&& Word&& Public& 'DATA'&STACK& . . . . . . . . . . . . .&16 Bit& 0400&& Para&& Stack&& 'STACK'& _TEXT& . . . . . . . . . . . . .&16 Bit& 0023&& Word&& Public& 'CODE'&Symbols:&&&&&&&&&&&&&&& N a m e&&&&&&&&&&&&&&&& Type&&&& Value&&& Attr@CodeSize& . . . . . . . . . . .&Number& 0000h& @DataSize& . . . . . . . . . . .&Number& 0000h& @Interface . . . . . . . . . . .&Number& 0000h& @Model . . . . . . . . . . . . .&Number& 0002h& @Startup . . . . . . . . . . . .&L Near& 0000&& _TEXT&@code& . . . . . . . . . . . . .&Text&& & _TEXT@data& . . . . . . . . . . . . .&Text&& & DGROUP@fardata?& . . . . . . . . . . .&Text&& & FAR_BSS@fardata . . . . . . . . . . . .&Text&& & FAR_DATA@stack . . . . . . . . . . . . .&Text&& & DGROUPSTRING . . . . . . . . . . . . .&Byte& 0000&& _DATA&&&& 0 Warnings&&& 0 Errors◆列表文件有两部分内容。在第一部分源程序中,最左列是数据或指令在该段从0开始的相对偏移地址,向右依次是指令的机器代码字节个数、机器代码和汇编语言语句。机器代码后有字母&R&表示该指令的立即数/位移量现在不能确定或是只是相对地址,它将在程序连接或进入主存时才能定位。带有“*”的处理器指令是由前面一条伪指令产生的,采用/Sg选项时的列表文件才罗列。如果陈序中有错误(ERROR)或警告(WARMING),也会会在相应位置提示。列表文件的第二部分是标示符使用情况。对段名和组名给出他们的名字(NAME)、尺寸(Size)、长度(Length)、定位(Align)、组合(Combine)和类别(Class)属性;对符号给出他们的名字、类型(Type)、数值(Value)和属性(Attr)。采用简化段定义格式,有许多汇编系统的预定义标示符,例如@DATA等。◆映像文件也是一种文本文件,含有每段在存储器中的分配情况。如下命令创建:ML /Fm LI6-1.ASM将产生LI6-1.MAP映像文件,如下:Start& Stop&& Length Name&&&&&&&&&&&&&&&&&& Class&0H 00023H _TEXT&&&&&&&&&&&&&&&&& CODE&0H 00010H _DATA&&&&&&&&&&&&&&&&& DATA&0FH 00400H STACK&&&&&&&&&&&&&&&&& STACK&Origin&& Group&0002:0&& DGROUP& Address&&&&&&&& Publics by Name& Address&&&&&&&& Publics by ValueProgram entry point at 映像文件中首先给出了该程序各个逻辑段的起点(Start)、终点(sTOP)、长度(Length)、段名(Name)和类别(Class);然后是段组(GROUP)位置和组名;最后提示程序开始执行的逻辑地址。注意,这里的起点、终点和段地址是以该程序文件开头而言的相对地址,实际的绝对地址需要在程序进入主存后确定。5、可执行程序的调试只要在操作系统下输入文件名即可:LI6-1操作系统装在该文件进入主存,开始运行,是用DEBUG调试时:DEBUG LI6-1.EXE其中,BX.CX反映程序的大小,CS:IP指向程序开始执行的第一条指令,SS:SP指向堆栈段,DS和ES并不指向程序数据段,而是指向程序前100H处(这部分是该程序的短前缀PSP);所以,DS和ES应该在程序当中进行设置,正如该程序.STARTUP伪指令所完成的。采用简化段定义格式的程序,在主存中从低到高依次安排代码段、数据段和堆栈段。可以使用以上的方法汇编上次的3个数据传送指令源程序
阅读(3344) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。}

我要回帖

更多关于 点点微盘010靠谱吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信