新四季網

軟體運行時執行恢復與重放方法

2023-06-23 08:16:41 1

專利名稱:軟體運行時執行恢復與重放方法
技術領域:
本發明涉及二進位程序運行時執行恢復與重放方法。本發明用於對二進位程序的執行分 析與容錯。
技術背景軟體容錯系統一般採用冗餘來滿足系統高可靠性的要求,冗餘可以劃分為時間冗餘和空 間冗餘兩類。時間冗餘是指出現故障時通過將控制回巻到一個無錯的執行點,通過採用同種 方法或不同方法再試的手段得到正確結果;空間冗餘通常指由多個相同組件並行執行,通過 將各自執行結果比較或者表決的方法來檢測錯誤或者得到正確結果。空間冗餘代價大,成本 高,主要應用於特殊領域。時間冗餘不僅開銷小,而且行之有效。時間冗餘方法中最常用的 是進程檢查點(Checkpointing)方法。進程檢査點機制是在進程正常運行時周期性的設置檢查點,把進程在運行時的正確狀態 保存到穩定存儲器中。如果在隨後運行過程中發生故障,那麼將進程進行巻回恢復,從穩定 存儲器中讀出前一個檢査點時的正確狀態,從該點繼續執行。這樣就避免了由於故障而導致的程序從頭重新執行,因而有效的減少了計算損失,設置檢查點的時刻稱之為檢查點時刻; 保存進程狀態的文件稱之為檢查點文件。通過設置檢查點能夠保存和恢復程序的運行狀態, 因此它在許多領域都有重要的應用。進程檢査點可以分別在作業系統級、用戶級或者應用程式級實現,但各自有其優缺點。 作業系統級進程檢查點對用戶程序透明,容易得到進程的內核數據結構,但需要修改系統內 核,因此對於基於封閉作業系統的進程檢査點難以實現,並且其可配置性和移植性不高,檢 査點開銷很大。用戶級的進程檢査點,將檢查點功能編譯為一個動態連結庫連結到應用程式, 可以實現對應用程式透明,易於配置且開銷較小,.但其率現機制與作業系統平臺密切相關, 無法實現在不同系統平臺之間移植。應用程式級的進程檢查點,優點是能夠實現平臺無關, 可在不同的作業系統間移植;缺點是只限於幾種有限的程式語言,目前僅有基於JAVA虛擬機 的應用程式級檢査點。由於用戶級的進程檢査點具有對應用程式透明,易於配置、開銷較小 且實用等特點,因此大部分檢查點系統都選擇在用戶級實現。隨著PC機使用範圍的不斷擴大,Windows系統己經成為一個日益流行的桌面平臺,尤其 是在中低端市場。與此同時,基於Windows作業系統的機群系統也開始出現。由於Windows 作業系統在集群系統中的運用,隨故障負載和隸屬關係的影響,彼時不再可用,即具有變化 特性。因此,迫切需要一種能有效運行於Windows作業系統環境上,並支持高效快速執行恢復 與重放的方法。該方法應具有較小的運行開銷,能支持各類系統內核資源的恢復,重現系統 的運行狀態,為軟體容錯提供可靠而全面的分析信息和執行平臺。 發明內容有鑑於此,本發明的目的是提供一種基於檢測點設置的執行恢復方法,它將結合對用戶 地址空間、系統內核資源的保存和恢復來實現對二進位程序進程狀態的任意恢復和重放。為了達到上述目的,本發明提供了一種軟體運行時執行恢復與重放方法,其特徵在於 該系統包括了下述組成部件-代碼注入部件檢測點設置部件和執行恢復部件都是以動態連結庫(DLL)的方式存在的, 它們的功能獨立於目標二進位程序。為了能將檢測點設置與恢復的功能增加到目標二進位程 序,必須通過代碼注入方式將動態連結庫的代碼遠程注入到目標二進位程序中,並按代碼的指令執行相應的功能。代碼注入部件利用CreateRemoteThread函數,能夠容易的在另一個進 程中創建線程。利用在目標進程中新創建的線程調用LoadLibrary函數來加載想要插入的 DLL。該方法的基本操作步驟使用VirtualAllocEx函數,在目標進程的地址空間中分配內 存;使用WriteProcessMemory函數,將DLL的路徑拷貝到第一步中分配的內存中;使用 GetProcAddress函數,獲取在Kernel32. dll中的LoadLibraryA或LoadLibraryW函數的實 際地址;使用CreateRemoteThread函數,在目標進程中創建一個線程,它調用正確的 LoadLibmry函數,為它傳遞第一步中分配的內存地址。函數攔截部件作業系統內核對象的狀態是進程狀態重要的一部分。微軟Windows系統 將內核對象的數據結構保存在內核空間中,而內核空間不能由用戶線程直接訪問,如果需對 內核對象進行訪問和操作,必須通過系統提供的應用程式接口(API)調用。因此保存系統內核 對象狀態的一個可行的方法是截獲對內核對象進行訪問和操作的API。從截獲的API中可以 獲知操作內核對象的API調用、參數、返回值等,將他們都保存到檢査點文件中。當程序出 現故障進行恢復時,將重新執行保存的有關API調用,創建及操作內核對象來恢復其狀態。 函數攔截^5件包含對系統進程、文件、註冊表、網絡等API函數的攔截。檢測點設置部件進程狀態由其用戶地址空間的狀態和內核對象的狀態組成。因此檢測 點設置部件分為用戶地址空間狀態的保存,內核對象狀態的保存兩部分。檢測點設置部件首 先利用SuspendThread函數將目標二進位程序的所有應用線程掛起;獲取並保存用戶地址空 間布局以及區域或塊對應的文件名;保存地址空間中可讀寫塊並已提交的數據;保存用戶線 程的上下文及線程局部存儲;保存用戶線程有關內核對象的API跟蹤記錄;保存活動文件的 信息;檢査點線程對所有應用線程分別調用ResumeThread函數恢復其執行,然後進入等待狀 態直到下一次檢査點。執行恢復部件執行恢復部件利用檢測點設置部件記錄的進程用戶地址空間信息,以及 函數攔截^M牛記錄的內核對象操作信息,將目標二進位程序重新設置為對應檢測點位置的狀 態。執行恢復部件一致恢復進程用戶地址空間狀態;以掛起方式創建除主線程之外的其它線 程,恢復所有應用線程的棧內容,線程的上下文,線程局部存儲等。對線程局部存儲恢復的 策略為當線程創建並開始執行時,通過TlsSetValue實現對應線程局部存儲的恢復;根據保 存的API系統調用創建其他內核對象,並通過重新執行API恢復內核對象狀態;對於活動文件 信息,重新打開這些文件並設置指針的位置;檢査點線程對所有應用程式線程分別調用 ResumeThread函數恢復其執行。然後進入等待狀態直到下一次檢査點時刻。為了達到上述目的,本發明還提供了一種軟體運行時執行恢復與重放方法,其特徵在於 該方法包括了下述操作步驟-步驟(l),系統啟動目標二進位程序;步驟(2),代碼注入部件將檢測點設置部件和執行恢復部件注入到目標二進位程序的進程 空間;步驟(3),函數攔截部件監控記錄進程、文件、註冊表、網絡等內核對象的行為; 步驟(4),檢測點設置部件在程序運行過程中安裝檢測點; 步驟(5),得到恢復命令後;步驟(6),執行恢復部件將目標程序的運行狀態恢復到對應檢測點位置的狀態。總之,本發明系統與方法的優點簡述如下結合系統內核,能更好的監控並記錄各類資源的訪問情況,同時能提供高效的運行環境,減少了執行恢復系統的運行開銷,具有良好的實用性。


圖1是本發明軟體運行時執行恢復與重放方法的流程圖。圖2是本發明軟體運行時執行恢復與重放方法的總體結構框圖。
具體實施方式
為使本發明的目的、技術方案和優點更加清楚,下面結合附圖對本發明作進一步的詳細 描述。系統啟動目標二進位程序後,代碼注入部件將檢測點設置部件和執行恢復部件注入到目標二進位程序的進程空間;函數攔截部件監控記錄進程、文件、註冊表、網絡等內核對象行 為;檢測點設置部件在程序運行過程中安裝檢測點;當得到恢復命令後,執行恢復部件將目
標二進位程序的運行狀態恢復到對應檢測點位置的狀態。圖2為軟體運行時執行恢復與重放方法的總體結構框圖。下面將結合附圖2,具體介紹本發明的各個主要部件-用戶地址空間Windows中,每個進程都被賦予自己的虛擬地址空間。Windows給32位進程分配一個4GB 的虛擬地址空間。進程中的線程運行時可以訪問屬於該進程的地址空間,屬於其他進程的地 址空間則是不能被訪問。4GB的虛擬地址空間,地址範圍是0x00000000-OxFFFFFFFF。其中0x80000000-0xFFFFFFFF近2G為作業系統使用空間,稱之為內核空間。該分區存放 作業系統代碼。用於線程調度、內存管理、文件系統支持、網絡支持和所有設備驅動程序的 代碼全部加載在這個分區。進程內核對象的數據結構也存放在該分區。駐留在該分區中的一 切均可被所有進程共享。但在Windows中,這個分區是受系統保護的,用戶線程不能對其進 行直接讀寫訪問。0x00010000-0x7FFFFFFF近2G為進程私有地址空間,稱之為用戶地址空間。 該分區是進程的私有地址空間。 一個進程不能讀取、寫入或者以任何方式訪問另一個進程中 駐留在該分區中的數據。Windows中該分區加載所有可執行模塊或DLL模塊,^映射該進程 可以訪問的所有內存映射文件。屬於本進程的用戶線程可以對其進行直接的讀寫訪問。 用戶地址空間恢復Windows進程用戶地址空間包括數據段、堆、各線程堆棧以及代碼段。為了恢復地址空 間的便利,系統將用戶地址空間的布局,以及可寫並已提交的塊中數據一併保存到檢查點文 件中,這包括各區域和塊的起始地址、保護屬性、存儲屬性、狀態、類型,對於映像區域和 映射區敏還包括它們映射的文件名。保存用戶地址空間狀態時,循環使用函數VirtualQuery 遍歷地址空間。該函數每次返回一個指向MEMORY—BASIC—INFORMATION結構的指針。該結構記 錄了對應區域或塊中的起始地址,大小,存儲屬性,保護屬性和狀態等信息。根據區域或塊 的存儲屬性和狀態可以判別出文件映像區域、映射區域、私有內存區域,這些對應了數據段, 但無法區分出棧區域,堆區域。區分堆區域的方法由函數GetProcessHeaps得到該進程中所有堆的起始位置。遍歷時, 堆起始所在的區域即為堆區域。線程棧所在的區域是由棧區域中的塊擁有的特殊保護屬性標 識的,棧頂的塊擁有獨特GUARD保護屬性,由此可以區分棧區域。也可通過獲取線程上下文 中ESP的^k址,該地址所在的區域即為棧區域。保存地址空間布局後,將可寫並已提交塊的數據進行保存。條件是存儲屬性為 MEM—Private或MEM—Image或MEM—Map,且保護屬性包含有READWRITE的塊。這些塊包括了執 行文件中可改寫的數據段、棧、和堆,但不包括代碼段,因為代碼段映射到地址空間的保護
屬性為只讀。保存棧區域時,獲取該堆棧的ESP,保存從棧底到ESP地址之間的數據,以盡 量減少保存的數據。進程恢復時,用戶地址空間的恢復分為兩步。第一步進行地址空間布局的恢復;第二步 進行地址空間數據的恢復。恢復時重新啟動進程,檢查點線程獲取初始用戶地址空間布局, 並與保存的布局相比較。從低地址空間向高地址空間逐一比較並恢復各區域。在當前地址空 間中釋放保存布局中不存在的區域,並重新創建程序在執行過程中動態分配的數據區域。動 態分配的數據區域具有分配地址不確定性問題,如何使動態數據區域恢復到指定位置是一致 方法中要解決的關鍵問題。調用VirtualAlloc分配數據區域時,可以指定區域起始地址和大 小,容易做到在原對應位置分配新區域。而恢復在程序執行過程中創建的堆區域和棧區域情 況不同,因為利用系統調用創建這兩種區域時,不能指定區域的分配地址。作業系統對於沒 有指定分配位置的系統調用實施這樣的分配原則。低地址空間優先分配,在地址空間中從低 向高查找空閒區域,如果找到能滿足系統調用中要求大小的空閒區域就將其分配。根據作業系統分配原則,恢復地址空間時,從低地址空間向高地址空間逐步恢復。當恢 復到堆區域時,為使新分配^l堆區域與保存對應區域位置一致,在調用HeapCreate恢復堆區 域之前,將低於該地址的空閒區域暫時分配,以保證在低地址空間中沒有合適區域可分配給 堆空間,這樣就保證了作業系統在原對應位置創建了新的堆區域。直到將整個內存布局調整 為與保存布局一致時再將臨時分配的區域釋放。棧區域是系統創建新線程時進行分配的。棧 空間的恢復是通過恢復線程內核對象而恢復的。棧區域的分配位置也有不確定性,因此採用 與恢復堆類似的方法,從低向高恢復地址空間,當恢復到棧的位置時,創建線程內核對象, 使得分配棧的位置與原棧一致。當地址空間布局完全恢復後,再將可讀寫塊中的數據恢復。 進程內核對象系統要創建和操作若干類型的內核對象,如線程對象、文件對象、文件映射對象、進程 對象、互斥對象、管道對象等。內核對象是內核分配的一個內存塊,存放在內核空間中並只 能由內核訪問。該內存塊是一種數據結構,它的成員負責維護該內核對象的各種信息。由於內核對象的數據結構只能被內核訪問,因此應用程式無法在內存中找到這些數據結 構並直接修改它們。Windows提供了一組系統調用對內核對象進行操作和訪問。當調用創建 內核對象的API函數時,該函數返回一個用於標識該對象的句柄;操作和訪問某內核對象時, 用標識該對象的句柄執行相應的系統調用。 進程內核對象恢復
將跟蹤的與內核對象狀態有關的API調用保存到檢查點文件中。恢復時,根據檢查點文件, 重新執行與內核對象有關的系統調用,把內核對象的狀態調整為與保存時一致。進程正常運行時,函數攔截部件截獲應用程式與內核對象相關的系統調用,將調用參數 和執行線程記錄起來,做檢查點時將記錄的信息保存到檢查點文件中。恢復時,由於重新啟 動進程,系統中可能不存在檢査點時刻的內核對象,因此必須重新創建它們。用保存的參數 重新執行系統調用,創建內核對象,由於系統狀態可能與上次執行該系統調用時不一致,引 起系統調用的返回值也可能與原來不一致,這種現象稱為創建內核對象的不確定性問題。這個問題可能對進程的恢復有以下影響。由於用戶地址空間狀態與內核對象狀態存在數 據藕合,恢復後的進程仍然用原句柄調用內核對象,由於對應原句柄的內核對象可能不存在, 進程將恢復出錯。採用虛擬句柄替換真實句柄的方法解決上述問題。創建內核對象時,通過攔截系統調用, 將系統API返回的真實句柄替換為虛擬句柄提交進程。進程利用虛擬句柄操作內核對象時, 攔截函數將用真實句柄替換虛擬句柄進行系統API調用。做檢査點時,將兩者的對應關係保 存在檢査點文件中。進程恢復時,重新創建內核對象,函數攔截部件攔截的函數用同樣的虛 擬句柄替換真實句柄返回給應用程式。這樣應用程式看到的同一內核對象句柄都是"相同" 的句柄。恢復內核對象時,根據記錄的API調用跟蹤信息,重新執行影響內核對象狀態的系 統調用,使內核對象恢復到檢査點時狀態。
權利要求
1、軟體運行時執行恢復與重放方法,其特徵在於包括如下組成部件代碼注入部件檢測點設置部件和執行恢復部件都是以動態連結庫(DLL)的方式存在的,它們的功能獨立於目標二進位程序。為了能將檢測點設置與恢復的功能增加到目標二進位程序,必須通過代碼注入方式將動態連結庫的代碼遠程注入到目標二進位程序中,並按代碼的指令執行相應的功能。函數攔截部件作業系統內核對象的狀態是進程狀態重要的一部分。微軟Windows系統將內核對象的數據結構保存在內核空間中,而內核空間不能由用戶線程直接訪問,如果需對內核對象進行訪問和操作,必須通過系統提供的應用程式接口(API)調用。因此保存系統內核對象狀態的一個可行的方法是截獲對內核對象進行訪問和操作的API。從截獲的API中可以獲知操作內核對象的API調用、參數、返回值等,將他們都保存到檢查點文件中。當程序出現故障進行恢復時,將重新執行保存的有關API調用,創建及操作內核對象來恢復其狀態。函數攔截部件包含對系統進程、文件、註冊表、網絡等API函數的攔截。檢測點設置部件進程狀態由其用戶地址空間的狀態和內核對象的狀態組成。因此檢測點設置部件分為用戶地址空間狀態的保存,內核對象狀態的保存兩部分。執行恢復部件執行恢復部件利用檢測點設置部件記錄的進程用戶地址空間信息,以及函數攔截部件記錄的內核對象操作信息,將目標二進位程序重新設置為對應檢測點位置的狀態。
2、 根據權利要求1所述的軟體運行時執行恢復與重放方法,其特徵在於代碼注入部件利用CreateRemoteThread函數,能夠容易的在另一個進程中創建線程。利用在目標進程中新 創建的線程調用LoadLibrary函數來加載想要插入的DLL。該方法的基本操作步驟使用 VirtualAllocEx函數,在目標進程的地址空間中分配內存;使用WriteProcessMemory函數, 將DLL的路徑拷貝到第一步中分配的內存中;使用GetProcAddress函數,獲取在Kerne132. dll 中的LoadLibraryA或LoadLibraryW函數的實際地址;使用CreateRemoteThread函數,在目 標進程中創建一個線程,它調用正確的LoadLibrair函數,為它傳遞第一步中分配的內存地 址。
3、 根據權利要求l所述的軟體運行時執行恢復與重放方法,其特徵在於檢測點設置部 件首先利用SuspendThread函數將目標二進位程序的所有應用線程掛起;獲取並保存用戶地址 空間布局以及區域或塊對應的文件名;保存地址空間中可讀寫塊並已提交的數據;保存用戶 線程的上下文及線程局部存儲;保存用戶線程有關內核對象的API跟蹤記錄;保存活動文件的 信息;檢査點線程對所有應用線程分別調用ResumeThread函數恢復其執行,然後進入等待狀 態直到下一次檢査點。
4、 根據權利要求l所述的軟體運行時執行恢復與重放方法,其特徵在於執行恢復部件 一致恢復進程用戶地址空間狀態;以掛起方式創建除主線程之外的其它線程,恢復所有應用 線程的棧內容,線程的上下文,線程局部存儲等。對線程局部存儲恢復的策略為當線程創 建並開始執行時,通過TlsSetValue實現對應線程局部存儲的恢復;根據保存的API系統調用 創建其他內核對象,並通過重新執行API恢復內核對象狀態;對於活動文件信息,重新打開這 些文件並設置指針的位置檢查點線程對所有應用程式線程分別調用ResumeThread函數恢復 其執行。然後進入等待狀態直到下一次檢查點時刻。
5、 根據權利要求1所述的軟體運行時執行恢復與重放方法,其特徵在於-步驟(l),系統啟動目標二進位程序;步驟(2),代碼注入部件將檢測點設置部件和執行恢復部件注入到目標二進位程序的進程 空間;步驟(3),函數攔截部件監控記錄進程、文件、註冊表、網絡等內核對象的行為; 步驟(4),檢測點設置部件在程序運行過程中安裝檢測點; 步驟(5),得到恢復命令後;步驟(6),執行恢復部件將目標二進位程序的運行狀態恢復到對應檢測點位置的狀態。
全文摘要
本發明涉及計算機二進位程序運行時的執行恢復與重放方法。該系統由代碼注入部件、函數攔截部件、檢測點設置部件和執行恢復部件組成。該方法是系統啟動目標二進位程序,由代碼注入部件將檢測點設置部件和執行恢復部件注入到目標二進位程序的進程空間,通過函數攔截部件監控記錄進程、文件、註冊表、網絡等內核對象的行為,並由檢測點設置部件在程序運行過程中安裝檢測點,得到恢復命令後,執行恢復部件將目標二進位程序的運行狀態恢復到對應檢測點位置的狀態。本發明適用於對未知二進位程序的分析與容錯,提高分析人員的效率,支持對軟體運行時錯誤的分析和修復。
文檔編號G06F11/36GK101154185SQ20071004985
公開日2008年4月2日 申請日期2007年8月27日 優先權日2007年8月27日
發明者躍 曹, 李曉冬, 李毅超, 曉 梁, 武 肖 申請人:電子科技大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀