?? 一種可以穿透還原卡和還原軟件的代碼.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0046)http://www.xfocus.net/articles/200312/646.html -->
<HTML><HEAD><TITLE>一種可以穿透還原卡和還原軟件的代碼</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META
content="安全焦點, xfocus, 陷阱網(wǎng)絡(luò), honeynet, honeypot, 調(diào)查取證, forensic, 入侵檢測, intrusion detection, 無線安全, wireless security, 安全論壇, security forums, 安全工具, security tools, 攻擊程序, exploits, 安全公告, security advisories, 安全漏洞, security vulnerabilities, 安全教程, security tutorials, 安全培訓(xùn), security training, 安全幫助, security help, 安全標準, security standards, 安全代碼, security code, 安全資源, security resources, 安全編程, security programming, 加密, cryptography,還原"
name=Keywords><LINK href="一種可以穿透還原卡和還原軟件的代碼.files/plone.css" type=text/css
rel=stylesheet>
<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY text=#000000 bgColor=#ffffff>
<DIV class=top>
<DIV class=searchBox>
<FORM name=searchform action=http://www.google.com/search method=get><INPUT
type=hidden value=www.xfocus.net name=domains> <INPUT type=hidden
value=www.xfocus.net name=sitesearch> <INPUT name=q> <INPUT type=submit value="Google Search" name=btnG> </FORM></DIV><IMG height=80
alt="xfocus logo" src="" width=180 border=0> <IMG height=20 alt="xfocus title"
src="一種可以穿透還原卡和還原軟件的代碼.files/title.gif" width=230 border=0> </DIV>
<DIV class=tabs><A class=plain href="http://www.xfocus.net/index.html">首頁</A> <A
class=plain href="http://www.xfocus.net/releases/index.html">焦點原創(chuàng)</A> <A
class=selected href="http://www.xfocus.net/articles/index.html">安全文摘</A> <A
class=plain href="http://www.xfocus.net/tools/index.html">安全工具</A> <A
class=plain href="http://www.xfocus.net/vuls/index.html">安全漏洞</A> <A class=plain
href="http://www.xfocus.net/projects/index.html">焦點項目</A> <A class=plain
href="https://www.xfocus.net/bbs/index.php?lang=cn">焦點論壇</A> <A class=plain
href="http://www.xfocus.net/about/index.html">關(guān)于我們</A> </DIV>
<DIV class=personalBar><A
href="https://www.xfocus.net/php/add_article.php">添加文章</A> <A
href="http://www.xfocus.org/">English Version</A> </DIV>
<TABLE class=columns>
<TBODY>
<TR>
<TD class=left>
<DIV class=box>
<H5> 文章分類 </H5>
<DIV class=body>
<DIV class="content odd">
<DIV style="WHITE-SPACE: nowrap"><IMG
src="一種可以穿透還原卡和還原軟件的代碼.files/folder_icon.gif" border=0> <A
href="http://www.xfocus.net/articles/4.html">專題文章</A><BR><IMG
src="一種可以穿透還原卡和還原軟件的代碼.files/folder_icon.gif" border=0> <A
href="http://www.xfocus.net/articles/2.html">漏洞分析</A><BR><IMG
src="一種可以穿透還原卡和還原軟件的代碼.files/folder_icon.gif" border=0> <A
href="http://www.xfocus.net/articles/3.html">安全配置</A><BR><IMG
src="一種可以穿透還原卡和還原軟件的代碼.files/folder_icon.gif" border=0> <A
href="http://www.xfocus.net/articles/1.html"><B>黑客教學
<<</B></A><BR><IMG src="一種可以穿透還原卡和還原軟件的代碼.files/folder_icon.gif"
border=0> <A href="http://www.xfocus.net/articles/5.html">編程技術(shù)</A><BR><IMG
src="一種可以穿透還原卡和還原軟件的代碼.files/folder_icon.gif" border=0> <A
href="http://www.xfocus.net/articles/7.html">工具介紹</A><BR><IMG
src="一種可以穿透還原卡和還原軟件的代碼.files/folder_icon.gif" border=0> <A
href="http://www.xfocus.net/articles/6.html">火墻技術(shù)</A><BR><IMG
src="一種可以穿透還原卡和還原軟件的代碼.files/folder_icon.gif" border=0> <A
href="http://www.xfocus.net/articles/8.html">入侵檢測</A><BR><IMG
src="一種可以穿透還原卡和還原軟件的代碼.files/folder_icon.gif" border=0> <A
href="http://www.xfocus.net/articles/9.html">破解專題</A><BR><IMG
src="一種可以穿透還原卡和還原軟件的代碼.files/folder_icon.gif" border=0> <A
href="http://www.xfocus.net/articles/11.html">焦點公告</A><BR><IMG
src="一種可以穿透還原卡和還原軟件的代碼.files/folder_icon.gif" border=0> <A
href="http://www.xfocus.net/articles/12.html">焦點峰會</A><BR></DIV></DIV></DIV></DIV>
<DIV class=box>
<H5> 文章推薦 </H5>
<DIV class=body>
<DIV class="content odd"><IMG
src="一種可以穿透還原卡和還原軟件的代碼.files/document_icon.gif" border=0> <A
href="http://www.xfocus.net/articles/200308/593.html">技術(shù)挑戰(zhàn)<一></A><BR><IMG
src="一種可以穿透還原卡和還原軟件的代碼.files/document_icon.gif" border=0> <A
href="http://www.xfocus.net/articles/200306/562.html">任意用戶模式下執(zhí)行 ring 0
代碼</A><BR><IMG src="一種可以穿透還原卡和還原軟件的代碼.files/document_icon.gif" border=0>
<A
href="http://www.xfocus.net/articles/200307/563.html">IIS的NSIISLOG.DLL溢出問題分析</A><BR></DIV></DIV></DIV></TD>
<TD class=main>
<H1>一種可以穿透還原卡和還原軟件的代碼</H1><BR>創(chuàng)建時間:2003-12-07<BR>文章屬性:原創(chuàng)<BR>文章提交:<A
href="https://www.xfocus.net/bbs/index.php?lang=cn&act=Profile&do=03&MID=37072">wind_men</A>
(tyhhyf_at_hotmail.com)<BR><BR>一種可以穿透還原卡和還原軟件的代碼<BR>CVC/GB 風般的男人<BR>還原卡和還原軟件被廣泛運用于各種公共場合的電腦上,比如學校機房和網(wǎng)吧。這些還原卡和還原軟件(以下我簡稱為虛擬還原技術(shù))能夠記錄下一切對硬盤的寫操作,不論您對硬盤進行拷貝還是移動刪除甚至是格式化分區(qū)等操作,只要一重新啟動,一切都會恢復(fù)到這個操作之前的情況,因此有些虛擬還原廠商還會在廣告詞中加上一句“可以防范一切電腦病毒”。這種虛擬還原的方法在大部分時候的確可以對公共機房的電腦起到很好的保護作用,難道真的沒有一種方法能夠穿透這種保護機制么?答案是否定的,下面請聽我一一道來。<BR>一、虛擬還原技術(shù)的原理<BR>本文所說的是一種普遍運用于還原卡或還原軟件上的技術(shù),當然,不同品牌不同廠商生產(chǎn)的可能不盡相同,但原理卻是相通的。<BR>首先,還原卡和還原軟件會搶先奪取引導(dǎo)權(quán),將原來的0頭0道1扇保存在一個其他的扇區(qū),(具體備份到那個扇區(qū)是不一定的),將自己的代碼寫入0頭0道1扇,從而能在操作系統(tǒng)之前得到執(zhí)行權(quán),這一點類似于一個引導(dǎo)型病毒;然后,我們來看看虛擬還原技術(shù)在操作系統(tǒng)之前都做了些什么:<BR>1.將中斷向量表中的INT13H的入口地址保存;<BR>2.把自己用于代替INT13H的代碼寫入內(nèi)存,并記住入口地址,當然這種“寫入內(nèi)存”并不是普通的“寫”,而是一種我們稱為“常駐”的方法,有關(guān)“常駐程序”的實現(xiàn)方法我們不另外花篇幅來描述了,如果你還不了解的話請自己找有關(guān)資料,也可以到<A
href="http://www.hackart.org/"
target=_blank>http://www.hackart.org/</A>或<A href="http://www.lsky.net/"
target=_blank>http://www.lsky.net/</A>找風般的男人交流;<BR>3.將中斷向量表中INT13H的入口地址改為這段常駐程序的入口地址。補充一點,虛擬還原程序在修改INT13H的入口后往往都會修改一些其他中斷入口,當然也是通過常駐程序來實現(xiàn)的,這些中斷用來實現(xiàn)對中斷向量表中INT13H入口地址監(jiān)控,一旦發(fā)現(xiàn)被修改,就馬上把它改回,這樣做同樣是用來防止被有心人破解。<BR>好了,你已經(jīng)看出來了,這段用來替代BIOS提供的INT13H的代碼才是虛擬還原技術(shù)的關(guān)鍵,那么這段代碼到底實現(xiàn)了些什么了,以下是本人對此拙淺的理解:<BR>1.攔截所有INT13H中對硬盤0頭0道1扇的操作<BR>這些包括讀寫操作,把所有的對0頭0道1扇的操作改為對虛擬還原程序備份的那個扇區(qū)的操作,這樣做的目的是保護虛擬還原代碼不被破壞,并且不能被有心人讀出進行破解,即使你用扇區(qū)編輯工具查看主引導(dǎo)區(qū),實際上你看到的是這個備份的主引導(dǎo)區(qū)。<BR>2.攔截所有INT13H中的寫硬盤操作<BR>這里包括對8G以下的硬盤的普通通過磁頭、磁道、扇區(qū)定位的INT13H中的寫操作,和擴展INT13H中基于扇區(qū)地址方式的對大硬盤的寫操作,甚至包括擴展INT13H中對一些非IDE接口的硬盤的寫操作。<BR>至于攔截后做什么是虛擬還原技術(shù)實現(xiàn)的關(guān)鍵,在早期的DOS系統(tǒng)當中完全可以“什么都不做”,也就是說當用戶寫硬盤時實際上是什么都沒做,但現(xiàn)在的操作系統(tǒng)都要對硬盤進行一些必要的寫操作,比如對虛擬內(nèi)存的寫操作。眾所周知,虛擬內(nèi)存實際上就是硬盤,而如果禁止操作系統(tǒng)寫硬盤的話顯然后果是不堪設(shè)想的。所以,大多數(shù)虛擬還原廠商用的方法是占用一些硬盤空間,把硬盤所進行的寫操作做一個記錄,等系統(tǒng)重新啟動后還原這一記錄,但是怎樣科學記錄硬盤的寫操作,是我一直沒想通的問題,這種“科學”應(yīng)該體現(xiàn)在時間上和硬盤空間的占用量上的,也就是說怎么樣用最少的時間和最少的硬盤空間來記錄硬盤的寫操作是實現(xiàn)關(guān)鍵,如果有這方面想法的朋友歡迎和我交流;<BR>3.備份端口70H,71H中的內(nèi)容,并把最后一次執(zhí)行時端口70H,71H的內(nèi)容和備份的內(nèi)容做比較,不一樣就提示BIOS被修改,是否還原,并通過密碼驗證修改BIOS是否合法。<BR><BR>二、PC機的中斷機制<BR>中斷提供了最基本的硬件和軟件的接口,它使得程序員不必了解硬件系統(tǒng)的細節(jié),只要直接調(diào)用系統(tǒng)提供的中斷服務(wù)子程序,就可以完成相應(yīng)功能,這樣能使得程序設(shè)計更為方便。其實現(xiàn)機制如下:當某一中斷源發(fā)出中斷請求時,CPU能夠決定是否響應(yīng)這一中斷請求(當CPU在執(zhí)行更為重要的工作時,可以暫不響應(yīng)),如果允許響應(yīng)該中斷,CPU會在現(xiàn)行的指令執(zhí)行完后,把斷點處的下一條指令地址和各寄存器的內(nèi)容和標志位的狀態(tài),推入堆棧進行保護,然后轉(zhuǎn)到中斷源服務(wù)程序的入口,進行中斷處理,當中斷處理完成后,再恢復(fù)被保留的各寄存器、標志位狀態(tài)和指令指針,使CPU返回斷點,繼續(xù)執(zhí)行下一條指令。<BR>為了區(qū)別各個中斷,CPC系統(tǒng)給每個中斷都分配了一個中斷號N,比如INT
3H是斷點中斷,INT 10H是顯示中斷,我們今天要討論的主要是INT
13H磁盤讀寫中斷。<BR>要說清楚PC機上的中斷機制,用這一點篇幅是完全不夠的,這里我所說的只是一個大概,如果你不清楚的話,請查閱一些資料或和我交流,我們今天重要要說的就是以INT13H為例看看BIOS提供給我們的中斷到底都是在做什么?所謂BIOS中斷簡單說就是你機器上的BIOS提供的中斷,那么在BIOS中斷的后面,到底是些什么呢?實際上是一些對端口的輸入輸出操作,PC的每個端口都實現(xiàn)特定的功能,我們完全可以不調(diào)用BIOS提供的中斷而直接用輸入輸出指令對這些端口進行操作,從而可以實現(xiàn)象調(diào)用BIOS中斷一樣的功能,但是一個前提是你必須對這些端口有詳細的了解。反過來說,PC的中斷系統(tǒng)的一大好處就是能夠讓程序員無須了解系統(tǒng)底層的硬件知識的而能夠編程,從這點看,中斷有點象我們平時所說的“封裝”,我不知道這樣說對不對,但的確中斷為我們“封裝”了許多系統(tǒng)底層的細節(jié)。<BR><BR>三、硬盤讀寫端口的具體含義<BR>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -