- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VxD与asm在Int 13H各方式交互写扇区.doc
VxD与asm在Int 13H各方式交互写扇区 摘要:磁盘读写,历经指明柱面号 Cylinder +磁头号 Head +扇区号 Sector 到指明逻辑块地址 LBA +磁头数+每磁道扇数,再靠扩展13H,指明LBA+磁盘地址包 DAP .98系统,按4K字节/页调配内存,16位asm虚拟86进程,靠bx 3180h VtoolsD建立的设备名为K4PG_200之动态可装入VxD的ID ,ax 1684h,int 2fh,取VxD入口esDDB_Name,8 ;SHELL_SYSMODAL_Message Get_Cur_VM_Handle ,MB_SYSTEMMODAL,modular,MZ ;Return TRUE;//让VMM装VxD入内存.SVC转入Handler:DWORD due; Handler VMHANDLE vm,PCLIENT_STRUCT pU union DWORD BX;short*pw; lin;unsigned long OFF,hand,Sense;if 2 pU- CBRS.Client_AL lin.BX DWORD Map_Flat CLIENT_ES,CLIENT_BX ; OFF lin.BX4095; if 512+16 pU- CWRS.Client_BP 4096-OFF return; due lin.BX 12;pU- CWRS.Client_BP 4096; if 256+15 due for hand 16; 256+15+1 ! hand;hand++ if LinMapIntoV86 due,vm,hand,1,0,Sense break; if 256+15+1 hand pU- CBRS.Client_AH 1;return; due Sense;pU- CWRS.Client_BP++; Sense dueCRS.Client_ES Sense 4;pU- CWRS.Client_BX Sense- pU- CRS.Client_ESCBRS.Client_AL pU- CRS.Client_DS pU- CRS.Client_ES+32;lin.BX+ 512+2+2;*lin.pw pU- CWRS.Client_SI pU- CWRS.Client_BX;lin.BX+ 2;*lin.pw pU- CRS.Client_ES; Begin_Nest_V86_Exec ;Exec_Int 19 ; End_Nest_Exec ;pU- CBRS.Client_AH pU- CRS.Client_EFlags1; elseMapIntoV86 GetNulPageHandle ,vm,due,1,0,0 ; 先测QS+DAP这512+16字节是否整体在V86某页中,跨页则返回指明此整体后挪多少字节而不跨页的bp到asm方call [SVC]下条指令:Map_ .. ;..return;若QS+DAP虽处于某页due,但非有效范畴,则用LinMap,试映入某有效页:if 256+15 CBRS.Client_AL .. AH为asm细络而存carry LBA≤FAC53E盘,写3扇到LBA FAC53E-2起始3扇,第3扇超LBA,将carry 1 pU- CBRS.Client_AH pU..;asm交互VxD码:call TxTwo:cmp bp,4096jae VMspush bxmov bx,bp;使QS+DAP囿单页push cxmov cx, 512+16 /2mov si, 512+16 -1*2;整体原字尾mov di,bpadd di,si;新字尾std ;高向低方向rep movswcld pop cxpush bpcall Txmov di,512pop siadd si,dimov cx,16/2rep movswpop bxjmp twoVMs:je bit0push axmov al,dlcall Txpop axbit0:shr ah,1;恢复carry QS尾后挪时至少写DAP首字节 db16 ,故用mov di,512..复制DAP回原址,因为add LBAL,1adc LBAL[4],0:针对原DAP段偏移而增LBA靠ID 27h之VxDLDR之ax 1/2号服务,装 DX矢文件名 /卸 DX矢模块名 动态VXD:push ax ;压栈1或2.. ;bx 27h获入pop axmov bx,-1;对2号服务call [SVC]作者简介:马文晓(1962-),男,广东人,北京信息科技大学,科研干部,工程师,本科,研究方向:计算机应用。
文档评论(0)