GBA的D商漢化游戲 細胞分裂實體卡 袁軍加密破解研究 2025.04.14補充版本
GBA的D商漢化游戲 細胞分裂實體卡 袁軍加密破解研究 2025.04.14補充版本
PS:如果真有人可以嘗試dump也可以聯系我,反正這卡帶我還留著。
本文部分研究成果來自流浪的獵人和Advance漢化組@空調JO太郎,臥看微塵和DS Homebrew群友@BadLuckW所進行的討論,以及星夜之幻和B站UP主 深空星塵Channel提供的一位GBA卡帶Dump相關人士的出處指引,以及GBA開源燒錄卡ChisFlash作者林面包做出的一些回答與討論。
本文僅出于技術討論為目的進行編寫。
流浪的獵人于2024年10月14日進行初次記錄并發布在老男人游戲網附屬論壇,在2024年12月6日進行補充,在2025年4月14日集成其他的討論內容。
其實我一開始根本不考慮發到老男人游戲網附屬論壇,如果不是因為那個論壇的站長有這個卡帶的ROM不發布,我根本沒必要往那里發這篇內容。
還有一點,與其因為自己不會去做某樣東西,好意思把這種不會當成某種理所應當的事去別人跟前求一個東西卻不愿意自己先動手嘗試一下,想要一樣東西卻不敢付出任何的努力,還不如自己試一試親自下場做點什么,有些東西光靠從別人手里要,求別人給自己做某樣東西這輩子都不可能有,我自己做這個研究同樣是自己查了一些東西之后發現自己可能搞不定才去集結其他開發者去搞這個研究,要是光靠從別人手里面要東西就因為自己不會還覺得是理所應當的話,那這種人就是活該要不到。
關于這張卡帶,在2018年左右,GBA吧的吧主嘗試去使用EZ Flash的燒錄器去dump這張卡帶,最后沒有dump出來。




之后貼吧里面有人成功dump過該卡帶,不過未發布ROM。
再之后在老男人論壇里面的這個帖子里也是一樣的內容,對方不愿意公開發布ROM,本人一開始覺得對方是在吊胃口+人無我有跑公開平臺臭顯擺。


直到2024年8月的某一天,我在閑魚上看見了這張卡帶:

當時我還不確定是否要去dump這張卡帶,因為我對這個游戲其實沒有特別大的興趣。
然后就是2024年9月末的一天,我發現這人居然還在閑魚上掛著這張卡帶,于是我就決定把他買了,自己給dump了再發出來ROM,然后我連帶花掉149RMB,買了一個西蒙匠人的GBA燒錄器以防萬一。(當時我買這個燒錄器的另一個打算,是去燒錄那張我之前在淘寶上買的4G合卡)





賣家附贈了兩張GBA卡帶,一張是龍珠Z的盜版卡,另一張是早就被Dump出來ROM的D商漢化三國志。

EZODE燒錄卡和NDS內存拓展卡旁邊那兩張就是賣家的贈品了。

這張卡帶還是2005年賣出去的,都快20年了居然還能讀出來,也是奇跡了。



還有一點,這張卡帶只有GBA可以正常運行,NDS是不能運行的。(BadLuckW之前說GBA和NDS這兩個機型運行GBA的初始化情況并不一致,實際上在GBA+NDS模擬器 No$GBA的開發者馬丁·科思(Martin Korth)寫的GBA軟硬件研究文檔里,也提及了GBA和NDS的Bios引導上有一定區別。
實際上這張卡帶沒那么容易破解,我一開始覺得這張卡帶大概率就和我之前買的4G合卡一樣,用NDS自制軟件都可以把第一個地址的ROM給dump出來,但是這個游戲的ID有一些不同之處。



我在卡帶到手后,先后在使用了燒錄器和NDS自制軟件將卡帶給dump之后,提取出來的ROM屬于空數據,有一大部分的數據都不見了。
由于該卡帶的片頭顯示為YJencrypted,我們在進行了一定調查之后,可以確定這張卡帶使用了袁軍加密,并不好破解,該加密幾乎無法被任何dump設備所提取。
我這下可以確定為啥GBA吧的吧主不能把這張卡帶給dump出來了。
后面我和DS Homebrew群里的幾個人,以及Advance漢化組的幾個人說了這張卡帶的事情,DS homebrew的幾位技術人士對此有一些不同的看法:
在軟件問題上沒有頭緒的情況下,BadLuckW讓我把卡帶拆了把電路板拍照發出來看看。
由于這張卡帶的外殼也有一點松,我直接可以用手扣開,看到電路板上面的布局,我把卡帶拆了發給了他們幾個人看。


卡帶正面和一些D卡的結構一致,但是背面有兩塊芯片,BadLuckW認為可能卡帶使用了這兩個IC作為加密手段,但是芯片表面被白色的粘稠膏狀物給黏住了。
我拿棉簽蘸了點酒精擦了一會,卡帶背面是兩片三菱的芯片,看來并不是負責加密的。

而在破解卡帶加密上,目前還有一些不同的方案:
1.臥看微塵之前在DS Homebrew群里提到了一個NGC的自制軟件,可以用于NGC有線連接GBA,從而去監聽卡帶數據。
2.參考GBE+模擬器作者Shonumi之前收集任天堂GBA播放君數據的方案,去編寫一個Wii自制軟件,并把GBA連接到Wii上面,然后讓Wii來監聽數據。(按照BadLuckW的說法,這本質上是讓GBA先讀取一個bootloader,然后這個bootloader劫持了一些玩意,這個思路被Shonumi稱為“病毒程序”)

(Shonumi自己做的一張圖片,來展示這個劫持技術具體的思路)
3:BadLuckW提出的兩個思路:
如果有一個通道數足夠的邏輯分析儀,那么直接監聽GBA和卡帶的通信并截獲,然后一點點拼回去。
卡帶的供電上焊接兩個引線,接入可調電源,插入GBA,然后讓GBA完成開機初始化,接著可調電源給卡帶供電,然后在不關閉GBA的情況下拔出卡帶插入GBX Flash燒錄器。
但是還有個問題就是這卡帶里面還設置了一些陷阱,你訪問了這個陷阱卡帶又會鎖上。
關于目前的情況:
1.卡帶使用了袁軍加密,不能用正常手段(指使用GBA燒錄器和NDS自制軟件)將ROM給dump出來。
2.目前已知過去周哥破解過一張袁軍加密的卡帶,但是周哥和卡帶加密者袁軍是朋友關系,我覺得基本上就是開發者模式了。
PS:周哥放出過部分加密破解的ROM,但是格式是GBK,不是常規的GBA文件,只能在K101硬解機運行。
流浪的獵人之前去聯系周哥,周哥表示目前沒時間搞這個。
而目前暫時不可行的原因,只是筆者暫時沒有啥折騰主機的條件(DS Homebrew群里有人愿意給我借一臺NGC用,只是我目前實在是不太方便。)
實際上在11月份左右,流浪的獵人看見星夜之幻dump了幾張Game Boy卡帶并放出了ROM,抱著試一試的形態,想看看能不能星夜之幻幫忙dump,不過星夜之幻也表示對GBA沒有咋研究過,主要在研究GB卡帶。
不過星夜之幻和B站UP主 深空星塵Channel,都向我提到了一個人,GBC模擬器hhugboy的開發者Taizou。(我看他主頁感覺像是俄羅斯人?)
他在個人主頁記錄了大量dump任天堂GBA+GBC/GB盜版卡帶的記錄,其中就有一篇在2020年左右發布的文章,Taizou成功dump了一張帶有YJencrypted的口袋妖怪藍寶石D商英譯卡帶:

這里我把他破解相關的一部分內容,通過deepl翻譯貼到這里:
這是一個非官方的英文譯本,是在游戲的日文版和北美版之間完成的。這兩個版本之間的間隔只有四個月,這意味著該譯本的制作者必須趕在正式英文版上架之前將其推出市場。
不僅如此,他們還采用了與Sintax公司為其數十億部GBA平臺游戲所使用的 “YJencrypted”系統相同的復制保護措施,大概是為了確保沒有其他有心的盜版商可以趁機鉆空子。
卡帶標簽很明顯是在美國官方發行材料問世之前制作的--它實際上使用了游戲發行前的封面圖,并標有 “RP”(評級待定)的 ESRB 評級。Sintax 的 GBC 策略游戲《口袋妖怪 Saphire》的“New Game Color Advance”版本也使用了同樣的封面圖。
實際翻譯與所謂的“中國綠寶石”有一些共同之處,可能是由同一個人完成的,但很多文字都不一樣(而且更奇怪!)。
保護和轉儲組合
現在,正如我所提到的,這個卡帶是受拷貝保護的--但與GBC卡帶通常受保護的方式不同,GBC卡帶通??梢酝耆D儲游戲,但如果沒有該公司的特定映射器就無法運行。哦不:“YJencrypted”卡帶有適當的讀取保護,是提取數據的大麻煩。
簡單總結一下:除非通過GBA啟動序列正確初始化,否則你根本無法從卡匣中讀取數據(我無法手動復制,只能想辦法在不斷電的情況下重置),如果你設法繞過了初始化,每個卡匣都有許多“陷阱 ”地址,從這些地址讀取數據將被鎖定,無法讀取任何進一步的數據。而且每個卡匣的“陷阱 ”地址都不一樣,所以確定這些地址的唯一方法就是反復試驗。
如果你設法從這些卡匣中轉存ROM,它大部分都能像標準的GBA ROM一樣工作,但它們在32MB ROM地址空間的未使用部分使用了奇怪的尋址/鏡像,這也是因卡匣而異的,我不確定它是否有任何模式。
它做的另一件不尋常的事情是,在正常初始化之后,在 ROM 頭中替換任天堂標志的幾個字節;據我所知,這似乎沒有任何與保護相關的用途,但確實可以防止 GBA 在這種狀態下以某種方式啟動游戲。在本例中,被替換的數據是 “90 AE 17 4E 59 4A”--最后兩個字節在ASCII 碼中是“YJ”,因此這可能是某種保護的“簽名”......
總之,這意味著我無法像往常那樣發布 GBC 的“原始轉儲”,然后盡可能發布“石皮 解”版本--相反,我在這里展示的是從這東西中提取完整可用 ROM 的最佳努力。
該ROM的構建過程如下:
轉存了整個32MB ROM區域(實際ROM大小為8MB,與日文版相同)
跳過“陷阱”地址
跳過的數據從相同數據的鏡像拷貝補回
ROM保留為完整的32MB,以便在不模擬怪異鏡像的情況下進行游戲(因為我還沒有完全弄明白它是如何工作的)
用真正的任天堂徽標補回標題中被覆蓋的部分任天堂徽標
起初我對最后一點不太確定,因為這意味著要黑掉一些原來轉儲的數據;但我們知道它實際上在啟動時確實顯示了正確的任天堂標志,因為游戲啟動時確實顯示了該標志,所以恢復該標志實質上就是恢復購物車的正常啟動狀態。我認為這是合理的。
(我確實考慮過發布較少觸發的ROM,例如跳過數據仍被跳過,任天堂徽標被部分覆蓋的 ROM,但我不認為它比這個轉儲更“真實”/“完整”,如果我把它放到野外,只會引起混亂,但如果有人有興趣看看,請告訴我)。
我把它標記為“YJ恢復”轉儲,這意味著它基本上是用上述技術轉儲并修補的。這并不是真正的“原始轉儲”,因為它是經過修補的,而且存在已知的重復/過度轉儲數據。但這也不是真正的破解/黑客行為,因為理論上所有修補過的數據都應該存在于原始磁帶盒中。
根據深空星塵Channel的說法,Taizou使用了一個叫xboo電纜的東西,將GBA連接到PC上面進行操作。
湊巧前幾天,流浪的獵人在嘗試配置GBA開發庫butano,并打算寫一些東西(但是我又被配置Windows環境變量和WSL安裝Linux給惡心了一次),不過在工程make上面一直存在問題弄不出來,中途我還是又翻了一下Tonc的GBA開發文檔,正好Tonc在第3章里面提到了這個xboo電纜的樣子:


這就麻煩了,這個電纜需要打印機接口連接,而且需要自己手搓一根出來,這對于不擅長硬件的我而言十分棘手,而且跑這個東西,你得弄一臺Windows XP系統的電腦。
筆者最后在這個記錄的評論區給Taizou回復了一條評論,不過對方截至2024年12月6日發布本文的時候仍然沒有做出回復。

目前暫時沒啥頭緒了,我暫時不考慮dump這張卡帶了。
前段時間熱門的GBA開源燒錄卡ChisFlash作者林面包,正在開發Bacon開源燒錄器,筆者把自己正在寫的這篇文章發給了對方,對方表示等他開發設備到了的下一步就是做仿真,Bacon燒錄器的設計目標之一就是用于直接執行卡帶,能直接執行卡帶意味著加密的內容會自動被拖下來。
并且林面包看完本文之后,也提出了一個思路:
大概明白了,我的思路是這樣的,也更方便做調試和自動化提取
利用bacon+mgba(或者自己寫一個小型的ARM解釋器)實現片上執行,模擬真實GBA對卡帶的操作,但暗樁確實沒辦法防,等我開發進度到片上執行的時候,我會試試解密我手頭的yj加密卡帶, 而且說起來都是袁軍加密,說不定每個游戲操作都不一樣,最最直接粗暴的方法就是片上執行。
目前流浪的獵人也只能等著Bacon開源燒錄器的成品發布之后,再買一個去嘗試dump這張卡帶了。
最后我再補充兩張我拿Analogue Pocket運行這張卡帶在BIOS界面報錯的照片:


不過我個人對某人dump不發布ROM有一些不同的想法,當時我提出的幾個問題:
1.當事人既然不愿意放出ROM,那么破解者是否是袁軍本人?或者是雙方存在利益關系不愿意發布?
2.假設他dump了卡帶,是否和某些人一樣覺得“自己研究這個太辛苦了,不能就這么發了ROM白讓你們玩”,我不知道對方是否這么想過。
3.卡帶持有者不知道是因為啥原因不想公開ROM
不過至少對方沒干另一種行為,破解了之后搞付費,只能找誰買到ROM才能玩,或者是和某些bilibili眾籌漢化的人渣一樣,未經允許偷跑ROM再跑到閑魚上面開個小號當倒賣狗。
在我發布這篇文章幾個小時后,論壇站長給出如下回復:
Oldman:
是這個游戲嗎?我就有rom,不過dump者不讓發布,還需等待,不是吊胃口,我也得講信用是吧
流浪的獵人:
我是看見你沒公開ROM,我準備買了自己dump,結果發現卡帶有加密
Oldman:
不讓公開呀,而且他人也消失了,聯系不到了,手上還握著很多其他dump修復的中文rom
然后是另外幾位的回復:
shn:
卡帶ic擦干凈些看看。不過可以推斷,應該就是三零的兩個nor,用于存儲rom的,兩個ic串聯高位,實現的擴容。我不知道這個卡插nds上會顯示什么,是不能dump還是dump的內容有問題。如果是dump的內容有空白,兩個ic存儲的話,可能有自己的切換空間指令?目前我還想不通。 但是,但是,但是,就算是兩個ic,只要是三零的nor芯片,可以焊下來搞到老d卡上去,分別dump,然后合并就行了。
我對nor的了解,應該沒有什么特殊的指令不讓讀取,或者我理解的太淺顯了
流浪的獵人:
這張卡帶插在NDS上面,使用GBA模式運行會直接白屏,使用nds端的燒錄軟件也只會顯示一些空數據,dump出來只有開頭一部分的地址
shn:
另外對于周老板的gbk游戲,我發現,其頭部bios讀取部分實際跟原版gba是一致的,單到了執行游戲初始化時,其代碼改變了規則,并不能被arm或者thumb反匯編處理,不知是否意味著bios中(或者周老板的固件中)有別的編碼處理,可以識別這些看似加密的代碼?
只是略窺一探,我也沒有深入的去了解,主要我對這些代碼根本不了解,有時間可以繼續研究研究
72hour:
dump到陷阱了,看原理好像放了些陷阱地址,只要讀到這些地址就停止讀取后面的數據了!
shn:
不要dump,進nds的hex查看數據情況先。如果直接查看的內容跟dump的不同,再說
shn:
我是理解不了什么dump陷阱,nor作為讀取狀態,我了解的根本不會有什么指令會阻止它輸出,跟紙上的文字一樣,沒有什么指令能阻礙眼睛看到它的內容。如果有,那真的太神奇了,一段書本上的文字被人看到就會將全本書的內容隱藏了,這個我真理解不了。nor的寫入是要解鎖的,就像拿筆一樣,如果說這個環節能改變東西我相信,讀取是不會改變任何東西的,這也是nor保護數據安全的基礎原理啊
gymzatan :
袁軍加密有兩種,一種可以在nds上運行,rom頭也可以被dump設備讀取,但讀取很小一段之后就會被屏蔽;另一種就是nds也無法運行的。我在taizou的discord群里面請教過他,他說這種卡帶加密主要是靠檢測GBA開機啟動時間,必須與官方GBA系列完全一致才能通過,否則看門狗就會屏蔽設備,而NDS因為啟動方式不同所以就無法運行此類卡帶。周哥硬解機也是基于控制啟動時間實現了運行這類D卡。至于那個藍寶石,我記得他們說是通過一個類似外接金手指的設備間接讀取卡帶,在進入游戲后馬上做一些硬件上的操作引導到dump設備(具體我也不清楚),實現分批讀取rom片段,最后把這些片段拼接起來,反正是非常繁瑣,也并非完全可重復的操作
gymzatan :
具體也不能透露更多了,只是說這個事情可能最后還是得老愛決定怎么處理
流浪的獵人:
看個人決定了,無論最終老愛是否發布ROM,我這邊都會嘗試dump卡帶的
流浪的獵人:
不過倒是感謝你的回答了,我現在還在寫一篇研究Analogue Pocket有關GBA還原研究相關的文章,你的回答倒是啟發了我的一個想法
Conard :
有沒有這么一種可能,給存儲芯片吹下來用IC刷寫器直接給做鏡像,就不管他卡帶的主控程序
une21:
作為帖子里截圖中的“一員”表示,這盤卡我收到兩張了,但是一直沒有更好的通路實現分享,包括蠟筆小新D商漢化,我至今都未買到,也基本放棄找尋了,之前也無償分享過不少自費購卡的rom,至于閑魚上是否有人拿去做卡賺錢跟我沒關系,反正我也不靠這個發家,既然都決定發布出去了就別搞長臂管轄了。分享這個事,的確是持卡者不同意發布的話也實在沒辦法,雖然我也理解不了這種決定,也的確很想下到這些rom,所以不多說什么了,樓主的文字通篇都看完了,一樣堅持過但個人實在能力有限,表示完全感同身受。
補充:
如果有其他人方便dump也可以聯系我,我唯一的要求就是dump成功并修復ROM后必須無償在互聯網上公開ROM,要是只有我一個人自嗨的話,那我買這張卡帶就沒意思了。
如果之前那位破解了袁軍加密的人,愿意協商并公開ROM我也沒問題,不過我還是會想辦法去嘗試把我手里的這張卡帶給dump出來。
目前的進展:
BadLuckW答應可以做一根Xboo電纜,我會在確定整個流程后嘗試回家用我那臺老筆記本試著提取數據,但是我們需要單獨研究整個工作流程。
參考內容:
A mysterious sapphire
https://hhug.me/?post=90
Tonc: My first GBA demo
https://www.coranac.com/tonc/text/first.htm
GBA D商絕版游戲互助分享計劃,站長請進
https://bbs.oldmantvg.net/thread-29248.htm
Edge of Emulation: Nintendo Play-Yan - Part 1
https://shonumi.github.io/articles/art32.html

浙公網安備 33010602011771號