專利名稱:可程序化的編碼解碼裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于可程序化的編碼解碼裝置,特別是關(guān)于編碼方式可任意設(shè)定的可程序化編碼解碼裝置。更特定而言,本發(fā)明是關(guān)于編碼方式可任意設(shè)定,可令每一個(gè)軟件程序皆具有不同保護(hù)格式的可程序化編碼解碼裝置。
現(xiàn)有的電子游戲機(jī)電腦(game computer)使用固定而標(biāo)準(zhǔn)化的硬件主機(jī),配以多樣性的游戲軟件卡匣或軟件磁盤,依使用者的喜好,可以選擇各種游戲軟件進(jìn)行游戲。典型的游戲軟件是容納于存儲(chǔ)器集成電路卡匣(memory IC cartridges)、磁盤或只讀型光盤(CD-ROM)之中,可以讓使用者很容易地在游戲機(jī)電腦的硬件主機(jī)上進(jìn)行抽換,以便變換游戲種類與內(nèi)容。
游戲機(jī)電腦的軟件程序數(shù)據(jù),不論是儲(chǔ)存于集成電路卡匣或磁盤中,由于是由標(biāo)準(zhǔn)形式的硬件主機(jī)所執(zhí)行的,因此,其程序內(nèi)容數(shù)據(jù)格式等亦是固定的形態(tài),因此其游戲程序內(nèi)容很容易被仿冒侵權(quán)者所抄襲篡改。本技術(shù)領(lǐng)域中的一個(gè)重大課題即是如何保護(hù)軟件程序內(nèi)容免受解讀抄襲。
現(xiàn)有技術(shù)中保護(hù)軟件程序的方法一般均只是校對(duì)與軟件載體之間的通信協(xié)定(communications protocol),或是檢查整個(gè)軟件程序碼中某一段的程序或數(shù)據(jù)碼的內(nèi)容是否與原軟件著作權(quán)人的原版內(nèi)容一致。由于這種軟件程序保護(hù)的模式是固定的,只要有人就其中一種游戲軟件加以破解,便可以輕易地解開所有其它游戲程序的保護(hù)。
因此,本發(fā)明的目的是在于提供一種可程序化的編碼解碼裝置,其軟件保護(hù)的編碼可以任意設(shè)定,可令每一個(gè)軟件程序皆具有不同保護(hù)格式的可程序化編碼解碼裝置。
本發(fā)明提供的電腦系統(tǒng)的一種可程序化編碼解碼裝置,該電腦系統(tǒng)包括一中央處理器,以及一個(gè)儲(chǔ)存經(jīng)邏輯變換(mapping)的程序碼的存儲(chǔ)器,該可程序化編碼解碼裝置包括有一個(gè)解碼器,接收該中央處理器的位址輸出而在預(yù)定的可程序設(shè)定的狀態(tài)下,輸出一個(gè)允許解碼信號(hào);一個(gè)由觸發(fā)器所構(gòu)成的暫存器,其輸入端被連接至該中央處理器的數(shù)據(jù)總線上,并接受該允許解碼信號(hào)的觸發(fā)而將其輸入端的信號(hào)輸出;與一個(gè)編碼器,具有兩組輸入與一組輸出,其中第一組輸入是連接至該存儲(chǔ)器的輸出,第二組輸入被連接至該暫存器的輸出,并對(duì)該兩組輸入進(jìn)行預(yù)定的邏輯處理功能,并將處理的結(jié)果輸出至該電腦系統(tǒng)的數(shù)據(jù)總線上。
本發(fā)明的其它目的與特點(diǎn)在本說明書中將配合附圖在后面進(jìn)行詳細(xì)說明。
附圖簡要說明
圖1為現(xiàn)有技術(shù)中游戲軟件程序儲(chǔ)存所用的存儲(chǔ)器集成電路(IC),插置于硬件主機(jī)中的示意圖;圖2為依據(jù)本發(fā)明一較佳實(shí)施例的可程序化編碼解碼裝置,設(shè)置于硬件主機(jī)中的電路方框示意圖;圖3為圖2中本發(fā)明可程序化編碼解碼裝置實(shí)施例的暫存器一種較佳實(shí)施例電路圖;圖4為圖2中本發(fā)明可程序化編碼解碼裝置實(shí)施例的編碼器一種較佳實(shí)施例電路圖;與圖5為圖2中本發(fā)明可程序化編碼解碼裝置實(shí)施例的編碼器另一種較佳實(shí)施例電路圖。
首先參考圖1,其中顯示出現(xiàn)有技術(shù)中游戲軟件程序儲(chǔ)存所用的存儲(chǔ)器集成電路(IC),插置于硬件主機(jī)中的示意圖。在現(xiàn)有的游戲機(jī)電腦中,當(dāng)中央處理器(CPU,未顯示于圖中)需要讀取只讀存儲(chǔ)器(ROM)1中所儲(chǔ)存的程序數(shù)據(jù)時(shí),會(huì)在位址總線10上送出該數(shù)據(jù)所在位置的對(duì)應(yīng)的位址信號(hào)A0~An,游戲機(jī)電腦系統(tǒng)中的存儲(chǔ)管理邏輯(未顯示)亦適當(dāng)?shù)卦谥蛔x存儲(chǔ)器(ROM)1的選擇信號(hào)線11上送出CS信號(hào)。只讀存儲(chǔ)器(ROM)1在收到位址A0~An與CS信號(hào)之后,即會(huì)在數(shù)據(jù)總線12上將數(shù)據(jù)位元D0~D7送出(假定ROM1是為8位元的只讀存儲(chǔ)器)。如同前述所提及的,由于游戲機(jī)電腦的硬件是標(biāo)準(zhǔn)化的,其中央處理器(CPU)的指令與數(shù)據(jù)規(guī)格等皆可查知,即便其中央處理器(CPU)是屬特用規(guī)格,其指令結(jié)構(gòu)亦可能會(huì)被破解出來,因此,只讀存儲(chǔ)器(ROM)1中的程序數(shù)據(jù)內(nèi)容便直接可以解出。
本發(fā)明中,儲(chǔ)存變換(mapping)過的程序數(shù)據(jù)的除了只讀存儲(chǔ)器(ROM)之外,亦可使用諸如可抹除可編程序只讀存儲(chǔ)器(EPROM),或電性可抹除可編程序只讀存儲(chǔ)器(EEPROM)等適用的存儲(chǔ)器。
接著參考圖2,其中顯示本發(fā)明的一較佳實(shí)施例的可程序化編碼解碼裝置,設(shè)置于硬件主機(jī)中的電路方框示意圖。如圖2中所顯示的,在采用了本發(fā)明可程序化編碼解碼裝置的游戲機(jī)電腦中,該只讀存儲(chǔ)器(ROM)1中所儲(chǔ)存的數(shù)據(jù)是經(jīng)過編碼器3的編碼之后者才送出去的。本發(fā)明可程序化編碼解碼裝置的編碼器3有兩個(gè)數(shù)據(jù)輸入Ai與Bi,其中Bi輸入接受只讀存儲(chǔ)器(ROM)1所儲(chǔ)存的、經(jīng)編碼過的游戲程序數(shù)據(jù),并在Ai輸入數(shù)值的編碼之后,才透過一個(gè)門控緩沖器4而送出。
儲(chǔ)存于只讀存儲(chǔ)器(ROM)1中的數(shù)據(jù)并非為游戲機(jī)電腦的中央處理器(CPU)所可以直接處理的程序碼。中央處理器(CPU)由只讀存儲(chǔ)器(ROM)1中所讀出的儲(chǔ)存數(shù)據(jù)內(nèi)容必須要經(jīng)過編碼器3的編碼處理之后,透過門控緩沖器4所輸出的數(shù)據(jù)D0~D7,才是為游戲機(jī)電腦硬件的中央處理器(CPU)所能夠執(zhí)行的程序指令與數(shù)據(jù)。正因?yàn)閮?chǔ)存于只讀存儲(chǔ)器(ROM)1中的是為游戲程序碼的一種經(jīng)編碼后的另一種版本的程序碼,在沒有經(jīng)過適當(dāng)?shù)慕獯a之前,這一版本的碼根本無法讓游戲機(jī)電腦的中央處理器(CPU)直接執(zhí)行,有意加以仿冒篡改的侵權(quán)者,就算是取得只讀存儲(chǔ)器(ROM)1,并將其儲(chǔ)存內(nèi)容予以列出,亦無法看得懂其內(nèi)容,更不用說要加以篡改了。
繼續(xù)看圖2,游戲機(jī)電腦的中央處理器(CPU)所可以處理的數(shù)據(jù)D0~D7,是由編碼器3把經(jīng)由其Bi輸入的只讀存儲(chǔ)器(ROM)1中所儲(chǔ)存的碼,經(jīng)過與由暫存器5所內(nèi)存的數(shù)據(jù)加以邏輯處理之后才獲得的,換句話說,只讀存儲(chǔ)器(ROM)1中所儲(chǔ)存的是游戲的程序碼經(jīng)過特定的邏輯變換(mapping)之后儲(chǔ)存起來的。亦即,編碼器3的輸出Oi是為其兩輸入Ai與Bi經(jīng)過邏輯處理的結(jié)果。編碼器3的邏輯功能可能為,例如,圖4中所顯示的邏輯加(ADD),或如圖5中所顯示的異門(XOR),等等,任何適當(dāng)?shù)倪壿嫻δ埽缤T(XNOR)等,皆可以使用。
圖4中的8位元加法器構(gòu)成了編碼器3的主體。每一個(gè)由只讀存儲(chǔ)器(ROM)1中讀出的位元被輸入至編碼器3的Bi輸入,再與Ai的位元進(jìn)行相加的動(dòng)作,其結(jié)果才變成游戲機(jī)電腦的中央處理器(CPU)所可以處理的程序碼與數(shù)據(jù),亦即Oi輸出。
在圖5所顯示的編碼器3的另一種實(shí)施例中,共有八個(gè)異門邏輯門構(gòu)成了編碼器3的主體。每一個(gè)由只讀存儲(chǔ)器(ROM)1中讀出的位元被輸入至編碼器3的Bi輸入,再與Ai的位元進(jìn)行異門的動(dòng)作,其結(jié)果才變成游戲機(jī)電腦的中央處理器(CPU)所可以處理的程序碼與數(shù)據(jù),亦即Oi輸出。
由圖2中可以見到,暫存器5的時(shí)鐘信號(hào)CK,是由一個(gè)解碼器2送出的。此解碼器2與中央處理器(CPU)的位址線相連,并可解碼出一個(gè)特定的位址區(qū)域,當(dāng)中央處理器(CPU)欲對(duì)暫存器5植入新數(shù)據(jù)時(shí),必須寫入此特定位址區(qū),便可以輸出信號(hào)15,供給暫存器5時(shí)鐘信號(hào)CK,并且更新暫存器5中的數(shù)據(jù)。參考圖3,其中顯示圖2中暫存器的一種較佳實(shí)施例電路圖。這一暫存器可由8個(gè)單純的D型觸發(fā)器所構(gòu)成,在時(shí)鐘信號(hào)CK的觸發(fā)之下,將出現(xiàn)在其D輸入的數(shù)據(jù)D0~D7轉(zhuǎn)發(fā)至其輸出Q,以便構(gòu)成圖2中編碼器3的Ai輸入。
再參考圖2,由于編碼器3的兩個(gè)輸入中的一個(gè)為真實(shí)D0~D7數(shù)據(jù)位元的一個(gè)受控的回饋,因此游戲程序的編寫設(shè)計(jì)人員,可以隨時(shí)利用解碼器2的解碼狀態(tài)設(shè)定,來改變暫存器5的Qi數(shù)據(jù)而給予編碼器3。隨著編碼器3的Ai輸入的改變,程序的編碼方式亦隨之改變。例如,游戲程序編寫人員可以將游戲程序碼中某一位址區(qū)段中的所有數(shù)據(jù)以一個(gè)設(shè)定值A(chǔ)3H(十六進(jìn)制)進(jìn)行編碼,再將程序碼中另一位址區(qū)段中的所有數(shù)據(jù)以另一個(gè)設(shè)定值86H(十六進(jìn)制)進(jìn)行編碼。這樣一來,任何仿冒者便很難將整個(gè)程序破解開,因?yàn)樵跊]有前述設(shè)定值與所設(shè)定的位址區(qū)間的數(shù)據(jù)的情況下,要正確地解開程序的編碼幾乎是不可能的。
因此,仿冒者僅只是取得某一游戲卡匣中的只讀存儲(chǔ)器(ROM)1,并將其儲(chǔ)存內(nèi)容予以列出,亦是無法解開游戲的程序碼的正確程序內(nèi)容。就算是仿冒者試圖在游戲進(jìn)行的情況之下監(jiān)看暫存器5的狀態(tài),試圖獲取其設(shè)定值,亦會(huì)因?yàn)榻獯a器的設(shè)定會(huì)隨程序的進(jìn)行,而由程序本身進(jìn)行復(fù)雜的變換因而難于獲得正確的設(shè)定值。另一方面,由于暫存器5的Di輸入端亦可以不連接至D0~D7上,而可以接至,例如,游戲機(jī)電腦中沒有用到的位址總線,或只是任意地連接其中的部分電路,因此其變化范圍更形加大,要予破解更是困難,達(dá)到防止仿冒抄襲破解的目的。
就軟件程序保護(hù)的觀點(diǎn)而言,本發(fā)明的可程序化編碼解碼裝置,可制作于單一顆的集成電路晶片之上,以增加其保護(hù)的作用。
權(quán)利要求
1.電腦系統(tǒng)的一種可程序化編碼解碼裝置,該電腦系統(tǒng)包括一中央處理器,以及一個(gè)儲(chǔ)存經(jīng)邏輯變換(mapping)的程序碼的存儲(chǔ)器,其特征在于,其中包括一個(gè)解碼器,接收該中央處理器的位址輸出而在預(yù)定的可程序設(shè)定的狀態(tài)下,輸出一個(gè)允許解碼信號(hào);一個(gè)由觸發(fā)器所構(gòu)成的暫存器,其輸入端被連接至該中央處理器的數(shù)據(jù)總線上,并接受該允許解碼信號(hào)的觸發(fā)而將其輸入端的信號(hào)輸出;與一個(gè)編碼器,具有兩組輸入與一組輸出,其中第一組輸入是連接至該存儲(chǔ)器的輸出,第二組輸入被連接至該暫存器的輸出,并對(duì)該兩組輸入進(jìn)行預(yù)定的邏輯處理功能,并將處理的結(jié)果輸出至該電腦系統(tǒng)的數(shù)據(jù)總線上。
2.根據(jù)權(quán)利要求1所述的可程序化編碼解碼裝置,其特征在于,其中該暫存器的輸入端是被連接至該電腦系統(tǒng)的位址總線中的選定位元上。
3.根據(jù)權(quán)利要求1或2所述的可程序化編碼解碼裝置,其特征在于,其中該編碼器可進(jìn)行預(yù)定的邏輯處理功能包括有加法邏輯處理,異門(XOR)邏輯處理與同門(XNOR)邏輯處理。
4.根據(jù)權(quán)利要求1或2所述的可程序化編碼解碼裝置,其特征在于,其中該存儲(chǔ)器為只讀存儲(chǔ)器(ROM),可抹除可編程序只讀存儲(chǔ)器(EPROM),或電性可抹除可編程序只讀存儲(chǔ)器(EEPROM)。
全文摘要
一種可程序化的編碼解碼裝置包括一解碼器,可接收中央處理器的位址輸出而在預(yù)定的可程序設(shè)定狀態(tài)下,輸出一允許解碼信號(hào);一個(gè)由觸發(fā)器構(gòu)成的暫存器,其輸入端被連接至中央處理器的數(shù)據(jù)總線上,并接受允許解碼信號(hào)的觸發(fā)而將其輸入端的信號(hào)輸出;一編碼器,具有兩組輸入與一組輸出,其中第一組輸入連接至存儲(chǔ)器的輸出,第二組輸入連接至?xí)捍嫫鞯妮敵觯?duì)兩組輸入進(jìn)行預(yù)定的邏輯處理功能,并將處理的結(jié)果輸出至電腦系統(tǒng)的數(shù)據(jù)總線上。
文檔編號(hào)H03M7/28GK1119803SQ9411643
公開日1996年4月3日 申請(qǐng)日期1994年9月19日 優(yōu)先權(quán)日1994年9月19日
發(fā)明者許智信 申請(qǐng)人:聯(lián)華電子股份有限公司