最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

究極綠寶石5.3——科普向,什么是金手指(二)

2022-01-20 12:26 作者:圍巾胖頭魚  | 我要投稿

說在前面:

????回顧一下上一期的內(nèi)容,最核心的是“你所玩的電子游戲,本質(zhì)都是在操作數(shù)據(jù)”。電子游戲中 的一切,無論是圖片、動畫還是邏輯,都可以看做是數(shù)字,正常的游戲操作是改數(shù)字,使用金手指也是改數(shù)字。在結(jié)尾的部分,專欄中提出了三個有關(guān)“金手指”的問題:

  1. 我們想要改的數(shù)字在哪里——變量地址查詢

  2. 我們要改的數(shù)字是什么含義,或者說我們想改的東西對應(yīng)了什么數(shù)字——變量與實體的映射表

  3. 修改了之后不起作用、甚至存檔都損壞了怎么辦——修改變量的副作用

????第二篇專欄,主要介紹第一個問題:我們想要改的數(shù)字在哪里?

變量和它的地址

????現(xiàn)在我們用一下稍微專業(yè)一點的術(shù)語來描述“我們想要改的數(shù)字在哪里”這個問題,其實是“我們想要改的變量,它的地址是什么”。變量是編程中的一個術(shù)語,含義和數(shù)學(xué)中的變量類似,通常情況下有一個名稱和對應(yīng)的取值,例如變量a的取值是1,變量b的取值是10。變量這個概念是和常量對應(yīng)的,常量的取值不能更改,而變量的取值可以被改變,用上一句話的例子,變量a之前取值是1,現(xiàn)在可以把它改成2,之后還可以改成3或者4,一個直觀的比喻就是變量名稱a是個容器,而里面的內(nèi)容(取值)是可以任意改變的,再通俗一點就是a是個筐,里面裝蘋果還是梨都行,也可以什么都不裝,只不過我們需要把“裝蘋果”“裝梨”“什么都不裝”這三種狀態(tài)對應(yīng)到數(shù)字,這是下一期專欄的內(nèi)容。

????編寫程序時,變量的名稱是程序員指定的,TA想把這個變量取什么名字就取什么名字(當(dāng)然合格的程序員取變量名是要遵循一定規(guī)范的,這不在本專欄的討論范圍內(nèi))。我們作為游戲玩家,看到的是一個完整的程序界面,而不是編寫程序時充滿著各種英文單詞(術(shù)語叫代碼)的界面,變量的名稱早已無處尋覓。我們想要找到一個變量在哪里,除了查找它的名稱之外,還可以通過地址來找。

????就像現(xiàn)實世界中,我們要找某個超市、醫(yī)院、銀行時,需要知道它們在哪條街道、門牌號是多少一樣,虛擬世界中的變量同樣也有個“門牌號”,這就是它的地址。虛擬世界沒有現(xiàn)實世界那么復(fù)雜,沒有縱橫交錯的街道,所有的變量都“住”在一條“大街”上,而且這條“大街”還只有單側(cè),不是兩邊都“住人”的。程序中的所有變量都“住”在這條“大街”上,每個變量都有一個門牌號。為了描述清楚這條“大街”是什么樣子,我們需要具體說明一下游戲運行的環(huán)境。

VBA模擬器

????該系列專欄以Visual Boy Advance (VBA) 模擬器為例,在windows 10操作系統(tǒng)上運行究極綠寶石5.3程序(這并不是說金手指只能在這種環(huán)境下使用,僅僅是因為在電腦上操作起來更方便)。VBA模擬器和游戲本體的gba文件都可以在百度貼吧“究極綠寶石吧”的置頂帖“【冬至發(fā)布】究極綠寶石V-虹之抹滅者??!”中下載到。

????VBA模擬器為究極綠寶石5這個游戲提供了運行的環(huán)境,在VBA模擬器中加載好游戲之后,該游戲的所有變量、代碼(代表著游戲邏輯)、資源(圖片、動畫等)就都進(jìn)入了VBA模擬器的管轄范圍。我們想找的變量“住”的那條“大街”,也在VBA模擬器中,具體來說,是在工具-反匯編...中。

工具-反匯編...

????打開工具-反匯編...,我們看到的是一堆讓人頭暈眼花的、夾雜著數(shù)字和字母還有特殊符號的東西。這個“反匯編”名詞太過學(xué)術(shù),我們可以暫時把它理解為“變量地址查看器”。(下圖的紅框和藍(lán)框是后來添加的,原本的界面沒有這兩個框)

變量地址查看器,按ARM模式查看

????有的讀者打開看到的也可能是下圖的樣子,藍(lán)色框稍微窄一點:

變量地址查看器,按THUMB模式查看

????藍(lán)色框有寬有窄的原因是這個界面左上角默認(rèn)選擇的是“自動”,如果選擇的是ARM模式(點擊ARM前面那個圓圈),則會顯示上半張圖那種寬的藍(lán)色框;如果選的是THUMB模式(點擊THUMB前面那個圓圈),則會顯示下半張圖那種窄的藍(lán)色框。自動模式下,會隨機選其中一個。

????在本專欄中,我們只關(guān)注上圖中被紅框和藍(lán)框圈出來的部分。其中紅框圈出來的部分就是變量的地址——門牌號,右邊有個滾動條,一路拉下去就形成了一條“大街”,每個變量都有一個地址,按照從小到大的順序從上到下排列;藍(lán)框圈出來的部分就是變量的取值,按每一行來看,紅框內(nèi)的一個地址對應(yīng)藍(lán)框內(nèi)的一個取值,例如在上圖中,地址“00000000”處的變量,取值為“ea000006”(這是上半張圖,下半張是“0006”)。不了解什么是十六進(jìn)制的讀者們可能會有疑惑:變量的門牌號(地址)和取值應(yīng)該都是數(shù)字才對啊,為什么紅框和藍(lán)框里面會有字母出現(xiàn)呢?接下來我們介紹“進(jìn)制”這個概念。

進(jìn)制

????“進(jìn)制”是一個數(shù)學(xué)上的概念,如果從網(wǎng)上搜索的話有一大堆的資料可以讓讀者們了解什么是進(jìn)制。這里為了本專欄的完整性,從個人理解的角度試圖讓沒有接觸過“進(jìn)制”這個概念的讀者迅速入門。已經(jīng)了解進(jìn)制概念的讀者跳過也罷。

????我們在日常生活中見到的數(shù)字,例如考試中的85分、微信紅包里的12塊錢、人口統(tǒng)計中的14億(寫開了是1400000000)等等,都是“十進(jìn)制數(shù)字”。這里的“十進(jìn)制”代表“逢十進(jìn)一”,也就是說0到9都是一位數(shù),從10開始就變成兩位數(shù)了,碰到了“十”,數(shù)字的位數(shù)就會增加一位,我們也稱這些數(shù)字的“進(jìn)制”是“十”。從符號的角度來看,阿拉伯?dāng)?shù)字中其實只有十個符號:0123456789,“10”這個數(shù)字本身并沒有用一個特殊的符號來代替,而是用“1”和“0”兩個符號前后拼接來表示,因此不嚴(yán)格來講,也可以說只用十個符號的數(shù)字就是十進(jìn)制數(shù)字。

????十進(jìn)制數(shù)字深入人心,因此在習(xí)慣上,十的倍數(shù)總會讓人看做是“整的數(shù)”,比如付錢時如果能湊足10塊或者100塊,都會說“湊個整”。其實“十”這個數(shù)字在數(shù)學(xué)上沒有任何特殊之處,人們之所以采用十進(jìn)制純粹是因為人類都長了十根手指(可能有爭議,但是至少包括作者在內(nèi)的很多人都認(rèn)可這個原因)。古時候人們常用手指計數(shù),當(dāng)兩只手?jǐn)?shù)不過來的時候,每伸出來十根手指,就拿一個小石頭或者小樹枝來代替這伸出來的十根手指,然后手指再都縮回去重新計數(shù),這樣數(shù)完之后,看看地上有多少個石頭或樹枝,再加上伸出來的手指數(shù)量,就知道結(jié)果了。從這個過程可以看出來,假如人類只長了八根手指,那么很有可能人類的數(shù)字系統(tǒng)就會變成八進(jìn)制的;假如人類長了十二根手指,那么很有可能人類的數(shù)字系統(tǒng)就會變成十二進(jìn)制的。

????日常生活中也有其他進(jìn)制的例子,比如時間和角度按60進(jìn)制(逢六十進(jìn)一),一天中的小時按24進(jìn)制(逢二十四進(jìn)一),星期按7進(jìn)制(逢七進(jìn)一)等等,但是在表示這些數(shù)字的時候,我們?nèi)匀皇前词M(jìn)制數(shù)字的形式表示的,比如說21:19這個時間,我們只會按照“二十一點十九分”來理解,而不會把它看做是別的時間,但如果換個進(jìn)制就不同了。

????最簡單無腦的進(jìn)制就是一進(jìn)制,純粹就是看數(shù)字的位數(shù)來判斷這個數(shù)字是多少。一進(jìn)制中只有一個符號,我們可以用“0”,也可以用“+”,或者用“=”,都無所謂,比如“+++++”就代表五,“===”就代表三,“0000000000000000”就代表十六,等等。有個笑話說的是一個小孩學(xué)了漢字怎么寫“一二三”之后,就以為自己什么數(shù)字都會寫了,結(jié)果讓他寫個“萬”字,寫半天都寫不出來,這就是一進(jìn)制的典型應(yīng)用。如果要寫出“億”這種大數(shù),一進(jìn)制得浪費多少墨水?但這并不妨礙一進(jìn)制是最樸素、最原始的進(jìn)制,看起來再傻,也是一個合法的進(jìn)制。

????下一個就是二進(jìn)制了,相比于一進(jìn)制而言有了質(zhì)的飛躍。在計算機領(lǐng)域中,再怎么高估二進(jìn)制的作用也不為過,道理和人有十根手指類似:早期計算機的“手”——二極管,只有兩根“手指”,就是“導(dǎo)通”和“截止”,一根二極管只能表示兩個數(shù),自然就形成了二進(jìn)制。二進(jìn)制有兩個符號,可以用“+”和“-”,也可以用“*”和“/”,也可以用“0”和“1”,用什么符號本身無所謂,只要能讓人理解就好。只是很多介紹二進(jìn)制的資料,上來就說“二進(jìn)制的‘1010’就是十進(jìn)制的‘10’”這種話,很容易讓人犯暈,因為前面“1010”中的“1”和“0”,跟后面“10”中的“1”和“0”,雖然長相一樣,但含義卻完全不同,這時我們只能把“1”和“0”看做是符號,暫時忽略它們的數(shù)字屬性。

????二進(jìn)制中只有兩個符號,而且最常使用的符號就是“0”和“1”,因此采用這種符號的二進(jìn)制數(shù)里面是不會出現(xiàn)“2”、“3”之類的符號的。二進(jìn)制的特點是“逢二進(jìn)一”,每當(dāng)碰到一個二進(jìn)制單獨符號計數(shù)計不過來的情況(就是碰到“二”了),就會多出一位數(shù)字來,和古代人類一雙手?jǐn)?shù)不過來、拿個小石頭代表“十”是類似的含義。這樣我們從小到大去數(shù)二進(jìn)制的數(shù),第零個是“0”,第一個是“1”,第二個數(shù)呢?我們無法再用一位數(shù)字表示了,因為“只有兩根手指”的我們數(shù)不過來了,所以第二個數(shù)變成了“10”,這個數(shù)字不是“十”,再強調(diào)一遍這里的“0”和“1”只是個符號,把它換成“+”和“-”也是一樣的,也就是說“+-”這個東西也可以表示二進(jìn)制中的第二個數(shù),總不會有人認(rèn)為“+-”就是日常生活中我們用到的那個“十”吧?

????接下來,第三個數(shù)是“11”,第四個數(shù)呢?倒數(shù)第一位要“逢二進(jìn)一”,進(jìn)位之后,倒數(shù)第二位也要“逢二進(jìn)一”,因此第四個數(shù)是“100”,這個數(shù)可不是“一百”。像這樣依次向后數(shù),就是二進(jìn)制的世界中對全部數(shù)字的描述。

????為了避免混淆,二進(jìn)制的數(shù)字往往在最后加上一個下標(biāo),例如“1010(2)”表示二進(jìn)制的“1010”,也就是十進(jìn)制里的“十”,寫成“10(10)”,右下角的小括號內(nèi)數(shù)字表示進(jìn)制。有了這種區(qū)分方式,我們就可以寫“1010(2)=10(10)”,含義就是二進(jìn)制的“1010”等于十進(jìn)制的“10”。

????我們怎么看得出來二進(jìn)制的“1010”是十進(jìn)制的幾呢?這可以通過觀察十進(jìn)制數(shù)來推測:

????在十進(jìn)制下:

1372_%7B(10)%7D%3D1*10%5E3%2B3*10%5E2%2B7*10%2B2

????或者我們寫成

1372_%7B(10)%7D%3D1*10%5E3%2B3*10%5E2%2B7*10%5E1%2B2*10%5E0

????也就是說,從符號的角度上來說,我們把數(shù)字“一千三百七十二”寫成“1372”,把四個符號從左往右寫,在數(shù)學(xué)上的意義是將這四個符號加權(quán)求和,其中權(quán)重和兩個因素有關(guān):該符號所在的位置,和它所用的進(jìn)制。符號所在的位置,為了和指數(shù)上標(biāo)對應(yīng)起來,我們把最右邊的位稱為第0位(它的權(quán)重是10%5E0),也稱為最低位,倒數(shù)第二位稱為第1位(它的權(quán)重是10%5E1),以此類推,最左邊的是第3位(它的權(quán)重是10%5E3),也稱為最高位。1372(10)這個數(shù)是十進(jìn)制的4位數(shù),權(quán)重里面,所有的底數(shù)都是10,因為這是個十進(jìn)制的數(shù)字,“逢十進(jìn)一”說的就是這個意思。

????類比到二進(jìn)制中來:

1010_%7B(2)%7D%3D1*2%5E3%2B0*2%5E2%2B1*2%5E1%2B0*2%5E0

????加權(quán)求和、最低位、最高位的概念沒有變,只不過權(quán)重的底數(shù)變成了2,把上面公式的右側(cè)算出來就知道這個數(shù)是十進(jìn)制的10。有了這個辦法,就可以進(jìn)行二進(jìn)制數(shù)向十進(jìn)制轉(zhuǎn)換的操作了。至于十進(jìn)制怎么轉(zhuǎn)換成二進(jìn)制,原理在網(wǎng)上或書上的資料都有,在介紹完十六進(jìn)制后,會給一個好用的工具。

????理解了二進(jìn)制,就可以看懂一個有關(guān)二進(jìn)制的謎語了:

????這個世界上只有10種人,一種是懂二進(jìn)制的人,一種是不懂二進(jìn)制的人。

????把這句話里的10寫成10(2)相信大家就都能看懂了。

????再往后的三進(jìn)制、四進(jìn)制用處就不是很大了,我們只介紹另一個最常用的進(jìn)制:十六進(jìn)制。十六進(jìn)制是“逢十六進(jìn)一”,從符號的角度來看,十六進(jìn)制中一共有16個符號,最通用的是用0~9來表示前十個數(shù)字,從10開始,用英文字母a~f來表示(大小寫都可以,但需要統(tǒng)一,不能大小寫混用,否則就不是16個符號了)。

????具體而言,就是說

????a(16)=10(10),b(16)=11(10),……,f(16)=15(10)

????十六進(jìn)制之所以常用,是因為1位十六進(jìn)制數(shù)和4位二進(jìn)制數(shù)是等價的(原因就是2%5E4%3D16)。因此用十六進(jìn)制數(shù)表示數(shù)字會更緊湊,用8位十六進(jìn)制數(shù)就可以表示32位二進(jìn)制數(shù)。我們在究極綠寶石中用到的所有金手指,以及在變量地址查看器里看到的所有變量的地址和取值,都是用十六進(jìn)制表示的數(shù)字。所以在變量地址查看器中,看到有字母就不會感到奇怪了。

????理解進(jìn)制需要轉(zhuǎn)變一些固有觀念,一些早在意識深處認(rèn)定“理所當(dāng)然”的事情。再講一個故事,換位思考一下可能會對理解進(jìn)制有所幫助:

????你在和一個外星人交流各自的數(shù)學(xué)。你對外星人說人類采用10進(jìn)制,外星人說很巧,它們用的也是10進(jìn)制。隨著你們交流的深入,你們都發(fā)現(xiàn)對方用的根本不是10進(jìn)制,你認(rèn)為外星人用的明明是16進(jìn)制,而外星人認(rèn)為你用的明明是A進(jìn)制。

????有了二進(jìn)制和十六進(jìn)制,就可以介紹計算機領(lǐng)域中字節(jié)這個概念了,字節(jié)是長度單位,一個字節(jié)表示8個二進(jìn)制位,也就是2個十六進(jìn)制位。在變量地址中,字節(jié)是最基本的單位。

????這一節(jié)的最后給一個好用的、在各個常用進(jìn)制之間轉(zhuǎn)換的工具:win10系統(tǒng)自帶的計算器:

程序員計算器

????左上角有一個三個橫杠的小圖標(biāo),在其中可以選擇“程序員”類型的計算器,進(jìn)入計算器界面后,左邊有4個進(jìn)制:HEX表示十六進(jìn)制,DEC表示十進(jìn)制,OCT表示八進(jìn)制(一般用不到),BIN表示二進(jìn)制。這四個進(jìn)制可以選中一個,然后輸入數(shù)字,則其他進(jìn)制下該數(shù)字會自動表示到每個進(jìn)制的后面,如圖中所示,選中的是DEC十進(jìn)制,輸入10的時候,十六進(jìn)制HEX顯示的是A,二進(jìn)制BIN顯示的是1010。這種類型的計算器,或者從網(wǎng)上找到的進(jìn)制轉(zhuǎn)換器,在金手指的應(yīng)用中可謂必備工具。

變量地址查看器

????言歸正傳,介紹了大半篇的進(jìn)制、最高最低位的概念,為的是讀者能更深刻地理解金手指的含義。

????回到上面這幅變量地址查看器的圖片,了解了進(jìn)制之后,讀者對里面的數(shù)字應(yīng)該就不會陌生了:

ARM模式
THUMB模式

????左邊紅框表示的是變量地址,第一行為00000000(16),第二行怎么就跳到了00000004(16)(上半圖ARM模式)或者00000002(16)(下半圖THUMB模式),而不是00000001(16)呢?原因是變量是有長度的,下面我們以上半圖為例。我們看一下藍(lán)色框的第一行,這就是位置在00000000(16)的這個變量的取值,這是一個8位的十六進(jìn)制數(shù),需要占據(jù)4個字節(jié),從00000000(16)開始,4個字節(jié)之后正好就是00000004(16),也就是說,左邊紅框里的數(shù)字,單位是字節(jié),每個變量占據(jù)4個字節(jié)的長度,然后依次排列下去。

????那變量究竟是占4字節(jié)的長度,還是2字節(jié)的長度呢?這一點其實無關(guān)緊要,只需要知道變量長度的最基本單位也是字節(jié)(也就是說沒有長度是半個字節(jié)的變量),2字節(jié)也好,4字節(jié)也好,都是連續(xù)的一段數(shù)字,怎么看都可以,只有賦予其實際意義的時候才需要把它們連起來看,在現(xiàn)在沒有實際意義的情況下,完全可以看做一個字節(jié)是一個變量,兩個連續(xù)的單字節(jié)變量又可以組成一個雙字節(jié)變量,兩個連續(xù)的雙字節(jié)變量可以組成一個四字節(jié)變量,等等。

????請注意,由于地址是十六進(jìn)制數(shù),因此第三行00000008(16)的下一個地址不是00000012,而是0000000c(16),這里避免慣性思維,認(rèn)為8+4=12就把12放進(jìn)去,12在十六進(jìn)制中是c,不是個兩位數(shù),真正的00000012(16)在十進(jìn)制中其實是18。

????大家可以嘗試把右邊的滾動條稍微向上拉一下,可以看到最后一個地址是fffffffc(16)(上半圖,下半圖的話是fffffffe(16),也就是說,變量全部的地址,取值范圍總共占據(jù)了從00000000(16)~ffffffff(16)的空間,填滿了整個8位十六進(jìn)制數(shù)。

????還有一個重要的地方需要說明:上面兩張圖表示的變量取值情況其實是完全一樣的,也就是說:

????和

????是等價的,仔細(xì)觀察不難發(fā)現(xiàn)規(guī)律,8位十六進(jìn)制數(shù)ea000006被拆成了兩部分,分別放在了00000000和00000002兩個位置,不過為什么是ea00放在后面,0006放在前面呢?好像有點不符合直觀感覺。這就要回顧最高位最低位這兩個概念了,這種變量的拆分方式是高位放在高地址,低位放在低地址(術(shù)語叫小端序),ea00是ea000006的高4位,因此放在較高(也就是較大)的地址00000002處,0006是ea000006的低4位,因此放在較低(也就是較?。┑牡刂?0000000處。之后有的金手指代碼會用到這個規(guī)律進(jìn)行合并。

????所以,我們也可以說,ARM模式是變量取值按8位十六進(jìn)制數(shù)顯示的模式,THUMB模式是變量取值按4位十六進(jìn)制數(shù)顯示的模式。

????在反匯編(也就是變量地址查看器)的界面內(nèi),上邊有一個輸入框,在其中輸入8位16進(jìn)制數(shù)然后點擊后面的“轉(zhuǎn)到”按鈕,可以直接看到該地址處的變量取值。

????因此,我們在使用金手指之前,學(xué)會了一項重要的技能:從游戲中讀取變量的取值。如果說金手指是對數(shù)據(jù)進(jìn)行了修改(在計算機的術(shù)語中,稱為寫操作),那么通過變量地址查看器看到變量的取值,就是計算機術(shù)語中的讀操作。有許多用了金手指導(dǎo)致存檔損壞(也被稱為壞檔)的讀者正是因為不了解使用金手指之前這些變量的取值情況,在使用之后不能將它們恢復(fù)到正常的樣子,從而導(dǎo)致的壞檔。

????知道了變量在哪里,好像意義并沒有那么大,這些變量都是一些16進(jìn)制數(shù),說白了也就是一個表示位置的數(shù)字,誰看得懂它們是什么意思啊?這就是下期專欄要介紹的內(nèi)容——變量與實體的映射表。將一個個抽象的數(shù)字與游戲中有具體含義的實體聯(lián)系起來,才是程序化腐朽為神奇之處。在這里,先給大家一個彩蛋,見識一下讀取變量取值的威力。

彩蛋:黃半仙送的蛋里面是什么?

????終于回到游戲了!在究極綠寶石5中,通關(guān)神奧聯(lián)盟后,神奧地區(qū)隨意鎮(zhèn)的隨意遺跡洞口會打開,在遺跡的上方站著一個黃半仙,他會送你一個蛋,里面可以孵出各種神奇的寶可夢,不僅是神獸幻獸,甚至連極巨化的寶可夢都有(對戰(zhàn)一次后失效)。如果孵蛋需要的步數(shù)很多很多,有經(jīng)驗的玩家就知道蛋里面一定是好東西。

送蛋的黃半仙

????在學(xué)會了本期專欄的內(nèi)容后,配合下個專欄的內(nèi)容,我們就可以做到在蛋孵出來之前,提前得知蛋里面是什么精靈!

????操作方法:領(lǐng)取到蛋之后,把它放到隊伍的首位。

蛋放在首位

????打開變量地址查看器(工具-反匯編),在“轉(zhuǎn)到”按鈕之前的框里面,輸入0202450C,點擊“轉(zhuǎn)到”,會顯示地址是0202450C的變量,其取值是多少。每個人的取值不一樣,下圖是作者臨時測試的一個結(jié)果:

找到變量

????這里顯示的位于0202450c處的變量,取值是02b0,如果我們恰好知道這個數(shù)字對應(yīng)的精靈是三首惡龍,那么我們就相當(dāng)于在蛋孵出來之前,提前知道了蛋內(nèi)的精靈是什么。果不其然,孵出來的確實是三首惡龍。

驗證確實是三首惡龍

????是不是有種未卜先知的感覺?

????兩個最關(guān)鍵的地方:為什么0202450C處的變量代表了蛋里面是什么精靈?為什么02b0表示的是三首惡龍?這一切都要等下一期——變量與實體的映射表——來介紹了。

????這兩個神秘數(shù)字一現(xiàn)身,金手指也就呼之欲出了,如果我們能修改這個位置處的變量取值,是不是蛋里面就會孵出來別的精靈呢?先別著急,等接下來的幾期專欄慢慢介紹~

????如果大家還感興趣的話,作者會繼續(xù)更新,謝謝眾位讀者的支持!

究極綠寶石5.3——科普向,什么是金手指(二)的評論 (共 條)

分享到微博請遵守國家法律
元阳县| 尼木县| 兴仁县| 阿瓦提县| 上林县| 舞钢市| 延安市| 仙桃市| 吉水县| 密云县| 平南县| 汨罗市| 白河县| 英吉沙县| 顺昌县| 衡南县| 宜春市| 武胜县| 花莲市| 华阴市| 平原县| 祥云县| 正宁县| 渭南市| 宁城县| 临漳县| 越西县| 临高县| 和平县| 通许县| 天长市| 油尖旺区| 龙泉市| 洮南市| 宁南县| 通山县| 双柏县| 屏南县| 扎兰屯市| 游戏| 攀枝花市|