前言
記得小學的時候玩頁游把家里電腦弄壞了(怎么回事,頁游還能弄壞電腦?),然后我爸拿去重新裝了系統,回來之后電腦里有了兩個新的單機游戲,植物大戰僵尸和大魚吃小魚。
那個年代周圍的小學生都是賽爾號/奧比島/洛克王國/天書奇譚/龍之刃/夢幻西游,玩摩爾莊園的小學生說出來都不是九年義務教育的。植物大戰僵尸雖然現在看來比較久遠,但他的游戲元素卻是推生出許多游戲音樂文化,比如Billie Eilish的《bad guy》,節奏簡直就是植物大戰僵尸的燈 燈 燈 燈 燈燈~了。
當時因為生存模式被虐,在網上找了修改器,可以修改陽光點數,那時候雖然沒學計算機專業,但對修改器的運行機制還是有所猜測的,當時小學因為不知道內存這回事,所以是覺得修改的文件中的數據。
這個猜測如今看起來很搞笑,但也不失道理(要開始狡辯了),有些游戲的數據可能是先放在文件中的,在游戲啟動之后把文件中的數據讀取到游戲的內存區域,所以我們需要先修改數據所在的文件內容,然后啟動游戲,但是很多游戲的數據文件是加密的(出大問題,騎馬與砍殺就沒有加密),我們沒辦法從文件進行修改,所以需要讓游戲進程先把它讀到內存,然后從內存修改,然后再退出游戲的時候游戲進程自動把它保存下來,之后也就是這個數據了。
所以綜上可以發現有這幾類修改對象:
游戲數據在本地未加密文件,直接修改它來修改游戲數據
這一類的代表就是騎馬與砍殺,它的角色數據在文檔中,可以肆意修改玩家屬性,但是不要修改太大,因為數據會溢出。此外它的游戲數據,如NPC對話,NPC姓名,國家名稱,城堡名稱都是明文給出的(還是用Excel保存的???),最可怕的是它的內部機制,如兵種上限/士氣/圍攻時間/酒館花費等都是明文的,怪不得騎砍會有各種版本。
數據封裝,通過修改內存來修改游戲數據
網絡游戲,數據在對方服務器,無法直接修改,通過模擬網絡請求表單來模擬自己獲得游戲物品(看對方服務器邏輯嚴密程度了)
舉幾個例子(騰訊游戲全部忽略,這個不在新手教程里面),你正在玩一個網頁游戲龍之刃,打死了一個小怪,獲得了15銀幣,這時你的網頁需要給服務器發送給你銀幣數據+15的信息,你可以用瀏覽器自帶的工具開發者調試看看這個數據的格式,然后模仿一個相似的,發送的服務器,比較菜的游戲廠商當然無法完善這方面的邏輯了。(另外我有一個想法,steam在我們玩游戲的時候應該會有一個線程監控我們正在玩什么游戲,所以我們可以監控這個線程發出的網絡表單,然后我們自己不斷發出,這不是卡套刷滿?)
下面開始實戰部分,因為不想再下載騎砍,而且這種修改文件的教程在騎砍官網很多,所以我就跳過啦。
一. 內存數據排查
游戲作為進程運行在我們的電腦中,所以要修改它的數據我們可以在內存進行搜索修改。
拿植物大戰僵尸為例,我們要修改的是他的陽光數量。假如我們現在的陽光值是75,我們需要在內存中查找75的數字。
先用內存工具打開植物大戰僵尸的進程。
然后查找25這個數字,下圖只找到一個,所以陽光的數據就存儲在21BF10C8這個地址了,但很多游戲搜索出來可能不止這一個地址,我們需要將查詢的那個道具(陽光)花費掉一點,變成另一個值再次掃描一次才能精準定位。
修改這個地址的數值。
在游戲中查看陽光數量。
是不是太簡單了?! 這是因為這個游戲本身設計已經和這個時代脫軌了,如今的游戲制造商不僅要考慮內容,還需要在安全上和高玩斗智斗勇。
接下來再拿一個游戲練練手,就是最近非常火的宮崎英高老賊作品只狼。
Sekiro : Shadows Die Twice
作為一個九周目下忍,這款游戲真的讓我知道了死字怎么寫。
先來看看我當前的金幣,2323。
然后按照慣例選擇只狼的進程,搜索2323這個數據,可以發現出現了很多。
我去殺了一個小怪,把金幣加到了2360。
再次搜索發現還有5個地址存在,直接修改會發現不會改變,有一種猜測是它用了一種類似于病毒中多進程相互守護一樣的方法,會讓數據保持一致,所以我們可以直接全部選中同事修改,會發現第三個沒有修改成功,因為這個值不是背包中金幣數量,而是戰斗界面的數量,你可以自己試試。
金幣順利添加了兩萬,其它數據在本地的都是如此,可以自己嘗試,但這種方法效率總是不高,我們可以使用代碼的形式來把這個修改過程自動化。
這里多說一句,代碼的方式是把數據的地址編碼到代碼中,如果游戲的更新導致這個地址改變話,代碼里面也要同步修改,所以需要頻繁更新的游戲其實修改器很多會失效。
二. 外掛程序編寫
先來了解幾個Windows的API。
HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName); 通過類名或窗口名查找,返回窗口句柄DWORD GetWindowThreadProcessId(HWND hWnd,LPDWORD lpdwProcessId); 得到窗口句柄后通過GetWindowThreadProcessId這個函數來獲得窗口所屬進程ID和線程IDHANDLE OpenProcess(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwProcessId) 打開一個已存在的進程對象,并返回進程的句柄bool WriteProcessMemory(HANDLE hProcess,LPVOID lpBaseAddress,LPVOID lpBuffer,DWORD nSize,LPDWORD lpNumberOfBytesWritten ); 能寫入某一進程的內存區域。入口區必須可以訪問,否則操作將失敗
附上代碼:
#include
這樣一個代碼,可以讓我們隨時調用,把陽光修改為2000,這個程序沒有做圖形化界面,因為太簡單了,所以當做入門Demo吧。
我們修改了通過地址直接游戲的數據,那么能不能說做一個游戲助手,讀出游戲的某些數據來輔助玩家呢?CE工具雖然可以搜索讀取,但是效率太差,接下來介紹一個新的API,來讀取固定地址的數據。
來源:公眾號【肥宅與畫家】
前言
記得小學的時候玩頁游把家里電腦弄壞了(怎么回事,頁游還能弄壞電腦?),然后我爸拿去重新裝了系統,回來之后電腦里有了兩個新的單機游戲,植物大戰僵尸和大魚吃小魚。
那個年代周圍的小學生都是賽爾號/奧比島/洛克王國/天書奇譚/龍之刃/夢幻西游,玩摩爾莊園的小學生說出來都不是九年義務教育的。植物大戰僵尸雖然現在看來比較久遠,但他的游戲元素卻是推生出許多游戲音樂文化,比如Billie Eilish的《bad guy》,節奏簡直就是植物大戰僵尸的燈 燈 燈 燈 燈燈~了。
當時因為生存模式被虐,在網上找了修改器,可以修改陽光點數,那時候雖然沒學計算機專業,但對修改器的運行機制還是有所猜測的,當時小學因為不知道內存這回事,所以是覺得修改的文件中的數據。
這個猜測如今看起來很搞笑,但也不失道理(要開始狡辯了),有些游戲的數據可能是先放在文件中的,在游戲啟動之后把文件中的數據讀取到游戲的內存區域,所以我們需要先修改數據所在的文件內容,然后啟動游戲,但是很多游戲的數據文件是加密的(出大問題,騎馬與砍殺就沒有加密),我們沒辦法從文件進行修改,所以需要讓游戲進程先把它讀到內存,然后從內存修改,然后再退出游戲的時候游戲進程自動把它保存下來,之后也就是這個數據了。
所以綜上可以發現有這幾類修改對象:
游戲數據在本地未加密文件,直接修改它來修改游戲數據
這一類的代表就是騎馬與砍殺,它的角色數據在文檔中,可以肆意修改玩家屬性,但是不要修改太大,因為數據會溢出。此外它的游戲數據,如NPC對話,NPC姓名,國家名稱,城堡名稱都是明文給出的(還是用Excel保存的???),最可怕的是它的內部機制,如兵種上限/士氣/圍攻時間/酒館花費等都是明文的,怪不得騎砍會有各種版本。
數據封裝,通過修改內存來修改游戲數據
網絡游戲,數據在對方服務器,無法直接修改,通過模擬網絡請求表單來模擬自己獲得游戲物品(看對方服務器邏輯嚴密程度了)
舉幾個例子(騰訊游戲全部忽略,這個不在新手教程里面),你正在玩一個網頁游戲龍之刃,打死了一個小怪,獲得了15銀幣,這時你的網頁需要給服務器發送給你銀幣數據+15的信息,你可以用瀏覽器自帶的工具開發者調試看看這個數據的格式,然后模仿一個相似的,發送的服務器,比較菜的游戲廠商當然無法完善這方面的邏輯了。(另外我有一個想法,steam在我們玩游戲的時候應該會有一個線程監控我們正在玩什么游戲,所以我們可以監控這個線程發出的網絡表單,然后我們自己不斷發出,這不是卡套刷滿?)
下面開始實戰部分,因為不想再下載騎砍,而且這種修改文件的教程在騎砍官網很多,所以我就跳過啦。
一. 內存數據排查
游戲作為進程運行在我們的電腦中,所以要修改它的數據我們可以在內存進行搜索修改。
拿植物大戰僵尸為例,我們要修改的是他的陽光數量。假如我們現在的陽光值是75,我們需要在內存中查找75的數字。
先用內存工具打開植物大戰僵尸的進程。
然后查找25這個數字,下圖只找到一個,所以陽光的數據就存儲在21BF10C8這個地址了,但很多游戲搜索出來可能不止這一個地址,我們需要將查詢的那個道具(陽光)花費掉一點,變成另一個值再次掃描一次才能精準定位。
修改這個地址的數值。
在游戲中查看陽光數量。
是不是太簡單了?! 這是因為這個游戲本身設計已經和這個時代脫軌了,如今的游戲制造商不僅要考慮內容,還需要在安全上和高玩斗智斗勇。
接下來再拿一個游戲練練手,就是最近非常火的宮崎英高老賊作品只狼。
Sekiro : Shadows Die Twice
作為一個九周目下忍,這款游戲真的讓我知道了死字怎么寫。
先來看看我當前的金幣,2323。
然后按照慣例選擇只狼的進程,搜索2323這個數據,可以發現出現了很多。
我去殺了一個小怪,把金幣加到了2360。
再次搜索發現還有5個地址存在,直接修改會發現不會改變,有一種猜測是它用了一種類似于病毒中多進程相互守護一樣的方法,會讓數據保持一致,所以我們可以直接全部選中同事修改,會發現第三個沒有修改成功,因為這個值不是背包中金幣數量,而是戰斗界面的數量,你可以自己試試。
金幣順利添加了兩萬,其它數據在本地的都是如此,可以自己嘗試,但這種方法效率總是不高,我們可以使用代碼的形式來把這個修改過程自動化。
這里多說一句,代碼的方式是把數據的地址編碼到代碼中,如果游戲的更新導致這個地址改變話,代碼里面也要同步修改,所以需要頻繁更新的游戲其實修改器很多會失效。
二. 外掛程序編寫
先來了解幾個Windows的API。
HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName); 通過類名或窗口名查找,返回窗口句柄DWORD GetWindowThreadProcessId(HWND hWnd,LPDWORD lpdwProcessId); 得到窗口句柄后通過GetWindowThreadProcessId這個函數來獲得窗口所屬進程ID和線程IDHANDLE OpenProcess(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwProcessId) 打開一個已存在的進程對象,并返回進程的句柄bool WriteProcessMemory(HANDLE hProcess,LPVOID lpBaseAddress,LPVOID lpBuffer,DWORD nSize,LPDWORD lpNumberOfBytesWritten ); 能寫入某一進程的內存區域。入口區必須可以訪問,否則操作將失敗
附上代碼:
#include
這樣一個代碼,可以讓我們隨時調用,把陽光修改為2000,這個程序沒有做圖形化界面,因為太簡單了,所以當做入門Demo吧。
我們修改了通過地址直接游戲的數據,那么能不能說做一個游戲助手,讀出游戲的某些數據來輔助玩家呢?CE工具雖然可以搜索讀取,但是效率太差,接下來介紹一個新的API,來讀取固定地址的數據。
HWND ReadProcessMemory(HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead); 根據進程句柄讀入該進程的某個內存空間lpBaseAddress的nSize字節,并寫入緩沖區lpBuffer,多次計算基址和偏移即可
嘗試讀取 :
附上代碼實現:
#include
三. 掛機類自動外掛
上述都是一些修改數據的外掛,此外還有一種是自動操作類的修改器,比如自動玩連連看(霧),自動下棋(霧),自動拼圖(笑)。
例如下面這樣的連連看,當你用CE觀察內存時,會發現它的數據奇妙在于這是一個二維數組,在內存中不同牌有不同數值,此處參考網上lgx大佬給出的方案。
想要自動消除連連看,肯定需要先模擬鼠標的操作,介紹一個API,它可以模擬鼠標操作,但不會移動我們的物理鼠標(虛無點擊?)。
LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);其中Msg為WM_LBUTTONDOWN,WM_LBUTTONUP,表示對鼠標的軟件模擬操作(雖然兼容性和安全性不如硬件模擬的mouse_event,但不改變移動鼠標指針)
除此之外,對一個二維數組尋找可以消除的兩幅牌,可以使用BFS算法實現。
void clearapair() { //找到可消去的兩個點并點擊 POINT p1, p2; int x1, y1, x2, y2; for (y1=0; y1<11; y1++) for (x1=0; x1<19; x1++) { if (!chessdata[y1][x1]) continue; for (y2=0; y2<11; y2++) for (x2=0; x2<19; x2++) if (chessdata[y2][x2] && (chessdata[y1][x1]==chessdata[y2][x2]) && (x1!=x2 || y1!=y2) ) { p1.x=x1; p1.y=y1; p2.x=x2; p2.y=y2; readchess(); if (llk_bfs(y1, x1, y2, x2) != -1) { click2p(p1, p2); return; } } }}
四. 網絡游戲外掛
這個是我從小學四年級開始玩的游戲,因為時間很長沒有登錄,這里累積了很多經驗,在領取之前我們可以先觀察一下。
抓到了一條表單。
初步分析,經驗數據不是直接明文規定的,而是從了其他數值代替,并且獲取經驗這一類型也是有其他數字代替,這里初步猜測為age。
好吧,可能種類太多,抓不出來相同的Age。
但是我換了一種方式,對寵物使用了兩次經驗包,抓下來的兩次包,都是叫fcode1f3....的這個包。
其中Age類型也是一樣。
現在過了幾分鐘,我們把第三個包也使用掉。
囊達?難道,這個Age真的是...(小聲bb)
還是不確定,讓我們用爬蟲來模擬這次表單吧,刷爆(封號)!!!
測試N次過后...
成功啦!!!
需要注意的是,這個游戲服務器以及幾年沒更新了,上一條公告還是十年前的。
如果你要使用爬蟲來模擬使用道具,非常關鍵的一個信息就是cookie,這是確認你登錄的賬號的判斷信息。
下面貼出代碼(我的cookie肯定要刪除掉啦)
import java.util.ArrayList;import java.util.List;import org.apache.http.Header;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ResponseHandler;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.BasicResponseHandler;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;import org.apache.http.protocol.HTTP;public class Renren { private static String renRenLoginURL = "http://resourcemop.l.imop.com/res/fc/fcde1f39034b164a0d5fe7e455b0c32e"; private HttpResponse response; private CloseableHttpClient httpclient = HttpClients.createDefault(); private boolean login() { HttpGet httpGet = new HttpGet(renRenLoginURL); httpGet.setHeader("Accept-Ranges", "bytes"); httpGet.setHeader("Age", "74342"); httpGet.setHeader("Cache-Control", ""); httpGet.setHeader("Content-Length", "3266"); httpGet.setHeader("Content-Type", "text/plain"); httpGet.setHeader("Date", "Thu, 23 May 2019 08:41:58 GMT"); httpGet.setHeader("Expires", "Sun, 20 May 2029 08:41:58 GMT"); httpGet.setHeader("Last-Modified", "Wed, 22 May 2019 08:13:20 GMT"); httpGet.setHeader("Server", "Apache"); httpGet.setHeader("Via", "1.0 Static1.lzr.squid1:80 (squid/2.6.STABLE7)"); httpGet.setHeader("X-Cache", "HIT from Static1.lzr.squid1"); httpGet.setHeader("Referer", "http://s34.l.imop.com/"); httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"); try { response = httpclient.execute(httpGet); } catch (Exception e) { e.printStackTrace(); return false; } finally { httpGet.abort(); } return true; } public static void main(String[] args) { Renren renRen = new Renren(); renRen.login(); }}
這個其實是兩年前寫的人人網爬蟲,改了改表單數據就可以用啦。
篇幅有限,所以暫時就寫這么多。之后可能會繼續更新其他的修改教程,steam掛卡這個我是一定要寫的。
敲代碼是熱愛,敲到世界充滿愛!撤退!
(完)
HWND ReadProcessMemory(HANDLE hProcess, LPCVOID lpBaseAddress, LPVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead); 根據進程句柄讀入該進程的某個內存空間lpBaseAddress的nSize字節,并寫入緩沖區lpBuffer,多次計算基址和偏移即可
嘗試讀取 :
附上代碼實現:
#include
三. 掛機類自動外掛
上述都是一些修改數據的外掛,此外還有一種是自動操作類的修改器,比如自動玩連連看(霧),自動下棋(霧),自動拼圖(笑)。
例如下面這樣的連連看,當你用CE觀察內存時,會發現它的數據奇妙在于這是一個二維數組,在內存中不同牌有不同數值,此處參考網上lgx大佬給出的方案。
想要自動消除連連看,肯定需要先模擬鼠標的操作,介紹一個API,它可以模擬鼠標操作,但不會移動我們的物理鼠標(虛無點擊?)。
LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);其中Msg為WM_LBUTTONDOWN,WM_LBUTTONUP,表示對鼠標的軟件模擬操作(雖然兼容性和安全性不如硬件模擬的mouse_event,但不改變移動鼠標指針)
除此之外,對一個二維數組尋找可以消除的兩幅牌,可以使用BFS算法實現。
void clearapair() { //找到可消去的兩個點并點擊 POINT p1, p2; int x1, y1, x2, y2; for (y1=0; y1<11; y1++) for (x1=0; x1<19; x1++) { if (!chessdata[y1][x1]) continue; for (y2=0; y2<11; y2++) for (x2=0; x2<19; x2++) if (chessdata[y2][x2] && (chessdata[y1][x1]==chessdata[y2][x2]) && (x1!=x2 || y1!=y2) ) { p1.x=x1; p1.y=y1; p2.x=x2; p2.y=y2; readchess(); if (llk_bfs(y1, x1, y2, x2) != -1) { click2p(p1, p2); return; } } }}
四. 網絡游戲外掛
這個是我從小學四年級開始玩的游戲,因為時間很長沒有登錄,這里累積了很多經驗,在領取之前我們可以先觀察一下。
抓到了一條表單。
初步分析,經驗數據不是直接明文規定的,而是從了其他數值代替,并且獲取經驗這一類型也是有其他數字代替,這里初步猜測為age。
好吧,可能種類太多,抓不出來相同的Age。
但是我換了一種方式,對寵物使用了兩次經驗包,抓下來的兩次包,都是叫fcode1f3....的這個包。
其中Age類型也是一樣。
現在過了幾分鐘,我們把第三個包也使用掉。
囊達?難道,這個Age真的是...(小聲bb)
還是不確定,讓我們用爬蟲來模擬這次表單吧,刷爆(封號)!!!
測試N次過后...
成功啦!!!
需要注意的是,這個游戲服務器以及幾年沒更新了,上一條公告還是十年前的。
如果你要使用爬蟲來模擬使用道具,非常關鍵的一個信息就是cookie,這是確認你登錄的賬號的判斷信息。
下面貼出代碼(我的cookie肯定要刪除掉啦)
import java.util.ArrayList;import java.util.List;import org.apache.http.Header;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ResponseHandler;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.BasicResponseHandler;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.message.BasicNameValuePair;import org.apache.http.protocol.HTTP;public class Renren { private static String renRenLoginURL = "http://resourcemop.l.imop.com/res/fc/fcde1f39034b164a0d5fe7e455b0c32e"; private HttpResponse response; private CloseableHttpClient httpclient = HttpClients.createDefault(); private boolean login() { HttpGet httpGet = new HttpGet(renRenLoginURL); httpGet.setHeader("Accept-Ranges", "bytes"); httpGet.setHeader("Age", "74342"); httpGet.setHeader("Cache-Control", ""); httpGet.setHeader("Content-Length", "3266"); httpGet.setHeader("Content-Type", "text/plain"); httpGet.setHeader("Date", "Thu, 23 May 2019 08:41:58 GMT"); httpGet.setHeader("Expires", "Sun, 20 May 2029 08:41:58 GMT"); httpGet.setHeader("Last-Modified", "Wed, 22 May 2019 08:13:20 GMT"); httpGet.setHeader("Server", "Apache"); httpGet.setHeader("Via", "1.0 Static1.lzr.squid1:80 (squid/2.6.STABLE7)"); httpGet.setHeader("X-Cache", "HIT from Static1.lzr.squid1"); httpGet.setHeader("Referer", "http://s34.l.imop.com/"); httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"); try { response = httpclient.execute(httpGet); } catch (Exception e) { e.printStackTrace(); return false; } finally { httpGet.abort(); } return true; } public static void main(String[] args) { Renren renRen = new Renren(); renRen.login(); }}
這個其實是兩年前寫的人人網爬蟲,改了改表單數據就可以用啦。
篇幅有限,所以暫時就寫這么多。之后可能會繼續更新其他的修改教程,steam掛卡這個我是一定要寫的。
敲代碼是熱愛,敲到世界充滿愛!撤退!
(完)
作者:panpan0571
甘肅
甘肅是一處“雞犬相聞”"卻又“與世無爭”的世外桃源,更為震撼的是這里的自然景觀。
這里有直插云天的皚皚雪峰;有一望無垠的遼闊草原;有莽莽漠漠的戈壁瀚海;有郁郁蔥蔥的次生森林;有神奇碧綠的湖泊佳泉;有江南風韻的自然風光;也有西北特有的名花瑞果。這就是甘肅,不嬌氣不精致,卻美得古樸又大氣。
人類藝術的結晶在這里閃閃發光,千年不褪色!這,是不可錯過的精彩!
第1天
杭州
英倫風出租車
杭州蕭山機場擴建后,更時尚漂亮
蘭州
提前降落在中川機場,前后來了7-8回蘭州,有種莫名的親切感。
鼓樓的夜晚時間匆匆 陌生的人 請給我一支蘭州(宋冬野)。
蘭州中川機場
這家店原來是馬子祿牛肉面,哪個更好吃呢?
京穆蘭蘭州牛肉面·清真
去酒店的路上
從中川機場出來,去民航招待所費了一些周折。
因為是晚上不太好找,問了機場工作人員,才知道要先過一座天橋。
吶,就是這個了。。。走在橋上,夏天的風也能讓你一激靈。
深夜的過街天橋,感覺可不好
走去招待所的路上,穿過中川公園。
公園內沒有開燈,隱隱約約大路上的燈在閃爍,有著詭異的氣氛。
中川公園
蘭州民航招待所
招待所位于蘭州中川機場老候機樓對面。
晚上12點,走了一段昏暗的帶有西北特色小路,小超市像20年前南方城市的樣子。
走了10分鐘后,遠遠看到招待所的燈光,激動不已。
那個點的前臺大姐,看著比白天更有魅力,我想著是有人在等你回“家”的感覺。
深夜總有人留著燈
招待所的小貓咪,從來沒有早睡過。那句話沒錯,沒有一條小魚干是隨便吃的。
工作喵
招待所一樓的餐廳不大,選擇有限,吃飽無憂。
餐廳色彩搭配不錯
招待所內廊做的很夢幻,
其貌不揚卻有內涵,
這就是驚喜。
機艙主題
第2天
神州租車
神州租車APP很方便,保姆級步行導航。
不會找錯地方。就是有點繞。
神州柜臺只大哥一人,除了打電話解決問題,還順便幫我辦好手續,這就是效率。
神州租車貼心步行導航
接下來的幾天,就要拜托“探岳哥”了。
95,管夠!動力不要保留,盡情輸出吧!
白色探岳
之前沒有開過大眾車,還算不錯。
動力嘛,超車要踩的稍微狠一點。過了一秒,探哥收到指令,框框往前沖。。。
懸掛系統略顯松垮,問題也不大,畢竟不是咱的車。
那就連上carplay,出發go吧。
探哥內飾
在蘭州雨一直下,對于大西北來說,其實算是不錯的天氣。
G6京藏高速
雨一直下。。卡碟了。黃河在青海境內還是很清澈的,到蘭州附近河水就變黃了。
黃河大橋
東鄉縣奔馳溝觀景平臺(劉家峽水庫)
東鄉奔馳溝觀景平臺,下雨天來看劉家峽,也別有一番風味。過幾天還會路過這里的低配版觀景平臺,晴天大太陽放無人機,曬的要死!
在奔馳溝俯瞰劉家峽水庫
東鄉奔馳溝觀景平臺有停車場、木棧道。登上觀景平臺,整個視野變得超級開闊,鳥瞰整個庫區和大橋美景,眼下的景色讓人心曠神怡,不由得震撼。
壯觀的劉家峽大橋像一道彩虹,橫跨在奔馳溝上,嘆為觀止。折達公路上來往的車輛俯瞰猶如爬行的蟲子,真有一種“會當凌絕頂,一覽眾山小”的感覺。
在奔馳溝俯瞰劉家峽水庫
折達公路
折達公路建設標準和質量雖然打了折,但它確實是條美麗的景觀路。只是太窄、雙向兩車道,碰到大車在前面慢慢吞吞,心情也跟著打折。
折達公路
臨夏
臨夏回族自治州,簡稱臨夏州,是中國甘肅省下轄的一個自治州,位于甘肅省中部,黃河上游,黃土高原與青藏高原交界。地處省會蘭州以南,西為青海省邊界,南面是甘南藏族自治州,東鄰定西市。首府臨夏市是古代絲綢之路、唐蕃古道的重鎮,明代四大茶馬司之一,有“河湟雄鎮”之稱。
臨夏收費站
臨夏州民族文化和民俗風情獨特,旅游資源眾多。境內有以世界非物質文化遺產“花兒”和國家級非物質遺產磚雕為主的民族民俗文化,以中國“小麥加”·伊斯蘭經典為代表的宗教歷史文化。有炳靈寺石窟,蓮花山,松鳴巖,劉家峽水庫等旅游景點。
臨夏街景
臨夏是中華文明的重要起源地之一,早在5000多年以前就有先民居住,自秦漢以來就設縣、置州、建郡,古稱枹罕,后改稱河州。是我國新石器文化最集中、考古發掘最多的地區之一。馬家窯文化、半山文化、齊家文化等文化遺址星羅棋布,因國家博物館珍藏的“彩陶王”出土于臨夏,被譽為“中國彩陶之鄉”。有世界文化遺產炳靈寺石窟、世界非物質文化遺產民歌“花兒”,被譽為“中國花兒之鄉”。
臨夏街景
臨夏街景
八坊十三巷
八坊十三巷是國家AAAA級旅游景區 ,位于甘肅臨夏回族自治州首府臨夏市。臨夏古稱河州,知道河州的人,還會知道臨夏市內的回民又稱“八坊人”。“八坊”和“河州”同時成為了臨夏的別稱,而八坊十三巷便是河州民族風情的古街區。
路牌
從唐朝,圍繞著八座清真寺形成了八個教坊、十三條街巷,故稱為“八坊十三巷”。它融合了回族磚雕、漢族木刻、藏族彩繪,集民族特色、休閑旅游、綠色生態、人文科教為一體,呈現出穆斯林的生活畫卷,是河州民族民俗文化名片,民族建筑藝術“大觀園”。
八坊十三巷全覽
城角寺:市級文物保護單位,位于北巷口東北部,細巷西北部,屬“格底目”教派,俗稱“老教”。是臨夏州較大的清真寺之一,也是臨夏市八坊十二寺之列。
因地處小西關路,又稱小西關清真寺,始建于明朝成化年間(約1465年—1487年間),已有五百多年的歷史,當時建有禮拜大殿、喚禮樓、凈水堂、住房等建筑物。禮拜大殿為磚木結構飛檐翹角中國古典“五轉七”式建筑,喚禮樓為二層四角亭式,均為磚木結構。
民國17年(1928年),毀于兵燹(xian)。1930年信教群眾捐資依樣復建。大殿仍為磚木結構飛檐翹角中國古典“五轉七”式建筑,喚禮樓為木制結構,雕梁畫棟、斗拱架彩、規模宏大,正門為“三開旋式”,建筑藝術上稱之為“二仙盤道”。1944—1946年再次重建喚禮樓,為木制結構五層六角飛檐翹角式建筑,賦有雕梁畫棟,彩飾豐富華麗,遍布磚木雕作。建有供人上下的兩面樓梯稱“二郎擔山“,壯觀宏偉,雋秀挺拔。 歷經多年的不斷修葺和擴建,規模宏大,建筑雄偉華麗更勝前時。成三進院落:禮拜殿院、學房院、后院,占地3100平方米。建筑面積近2000平方米。重建后的禮拜大殿為中國古典式“五轉七”式建筑,由前卷、正殿兩部分組成,均為磚木結構。禮拜大殿正南方建有五層六面飛檐翹角式喚禮樓,底層為正門,樓身高達27米,臨街矗立,雋秀玲瓏,高聳輕巧。
清真城角寺
來,坐馬車。
哦,不拼車。
八坊十三巷
八坊民俗館:省級文物保護單位,古稱“大公館”,位于大旮巷80號,原為馬占鰲之孫、馬安良之子馬廷勷,人稱“三少軍”的私邸。至1928年,大公館形成了占地十分寬闊的三進或四進式四合院。內中,正院四座,院中套院,院院相通,亭臺樓閣,曲徑回廊。
正院之外,尚有占地寬廣的后院、南院、車院、花園及庫房,與正院相連。后院儲存軍用品,南院為車馬院,整個建筑群四周均有高大圍墻及哨樓,兼具軍事防御功能。建筑仿造北京四合院形制,融入回族磚雕、漢族木雕、藏族彩繪等眾多地方特色建筑文化,代表了臨夏地區建筑極致水平。
“大公館”幾經戰火和人為損毀,現僅存三少君府部分建筑,不足原有建筑十分之一。修繕后的80號大院其建筑主要由包括正房(北房)、東西耳樓、東西廂房、廳堂、游廊、花園構成。整體裝飾為磚雕和木雕,青磚的古樸典雅,木雕的雍容華貴,象征著回漢文化的相互融合與和諧統一。
八坊民俗館
這玩意兒(搖爆米花),全國都有嗎
東公館是民國時期臨夏大戶人家的私宅,于1938年動工修建,1945年建成,現為全國重點文物保護單位,國家 AAA 級旅游景區。1949年8月22日臨夏解放民解放軍接管,王震大軍進軍青海前,司令部曾駐此。
東公館的歷史
臨夏美食
甘蔗冰糖
鐵/家/寺
大西關清真寺
西關路車太多,找了一圈,最后把車停在紅園新村路。
夏河美食
G1816 烏海至瑪沁高速公路
烏瑪高速車很少,可以邊開車邊欣賞風景(照片都是副駕駛拍的哈)。
G1816
烏瑪高速上的景色
夏河,夏河。
烏瑪高速上的景色
右轉往王夏高速,還有30多公里就能到拉卜楞寺(夏河)。
景點很多,都值得去看看
王格爾塘—夏河高速公路,簡稱王夏高速。
王夏高速
藏區的白塔,可以理解為漢族的宗祠建筑。
王夏高速
王夏高速
夏河在望
夏河,是個詩意的名字
S312
進夏河前公路上像牌樓的建筑物
S312
可右轉去青海
拉卜楞寺
過大夏河,爬上對面的坡地,居高臨下,可以俯瞰整個拉卜楞寺的全貌,成片的寺廟經堂非常壯觀,貢唐寶塔的金頂也閃爍著熠熠光芒。
鳥瞰拉卜楞寺
傍晚和閑時,常能看到僧人們在這里三兩而坐憩息談經。這里也是看日落和日出的最佳地段,無論是晨光初露的拉卜楞寺,還是夕陽時分的貢唐寶塔,都分外迷人。
坡地邊的攤位
來到拉卜楞寺,不得不去全國最長的轉經廊轉上一圈。這長達3.5km 的轉經廊周圍,每時每刻都有虔誠的信眾追隨并叩拜著。
拉卜楞寺外的轉經廊
跟隨著喇嘛或當地藏民,順時針地圍繞整個寺院轉上-圈,在不停行走的過程中,觸摸每一個滄桑的經綸,感受信眾們的信仰和執著,一定會有很多收獲。
白塔/藏民們經常會在白塔周圍轉經,祈求神靈保佑和庇護。
拉卜楞寺
身著藏族服飾的姑娘
典型的夏河小店/價廉物美
夏河的馕
夏河扎西洋浀賓館
酒店的民族裝飾/紋飾與色彩都很神秘
洋浀對面的小店,喝了羊湯很快就有反應了。
腸胃不好的同學,要慎重。
第3天
拉卜楞寺
早起看日出,走進拉卜楞寺對面的學校。
藏族學校
藏民祭祀祈福用品
甘南
甘南藏族自治州位于甘肅省西南部,與青海、四川毗鄰,屬于安多藏區,首府為合作市。作為絲綢之路和唐蕃古道的重要組成部分,甘南州不僅有著廣闊美麗的高原風光,還擁有著濃郁的藏傳佛教文化風情,可以說景色和人文兩者兼具。在圣境天堂般的甘南,草原上彌散著沁入心脾的酥油香,拉卜楞寺的辯經聲隨著炊煙一同升起,郎木寺如世外桃源般遺世獨立,白龍江源頭傳來久遠的召喚。轉經廊外默念著六字真言、充滿信仰的人們和匍富在路上、磕著長頭的老者都給我們帶來心靈的震撼。
桑科草原
剛出夏河,就有美麗的風景。
中國拉卜楞寺/世界藏學府
G316桑科濕地觀景臺
桑科草原是桑科鄉達久灘草原的一部分,位于夏河縣城西南 10km 處。
G316桑科濕地觀景臺
桑科草原的風景在沿途都能看到,進入草原游玩主要是參加藏家樂的活動。目前在桑科草原旅游區內已有尼瑪度假村、格桑花旅游點等旅游設施 10 余處。
格桑花草原
可以在藏包里吃酸奶、手抓羊肉、裕耙等藏族食物,參加箸火晚會、騎馬等娛樂活動,但牧民家條件略苦,習俗上可能有不便的地方根據個人喜好選擇是否參加。每年的農歷七月十三,達久灘上會舉行盛大的賽馬活動,熱鬧非凡。
桑科草原
桑科草原上騎行的人勇士
郎木寺鎮
家人高反狀態不佳,吃了頓中飯,匆匆而過;
我們后面還會來郎木寺,那時候已經適應了高海拔情況。
因身體原因,在格爾底寺匆匆而過
四川格爾底寺
郎木寺鎮車很多,不過有警車來回喊話疏導交通,不至于堵塞不通。
郎木寺鎮
U13縣道
從郎木寺鎮去唐克鎮(黃河九曲)有兩條路。一條是248國道之雅克大道,一條是U13縣道。我們先走U13,去扎尕那再走248。在西北旅行,越是不起眼的小路,越有可能遇到驚艷的美景。
U13縣道
眼睛是最好的記錄儀,再好的相機都不如親眼來看看。
U13縣道
記不清楚我們一路上“哇”了多少回。
U13縣道
旅行不必在意目的地,在乎的是沿途的風景和看風景的心情!
與若爾蓋藏族小姑娘的對話,都是一次心靈的凈化。
若爾蓋草原上/純真的小姑娘
若爾蓋草原風光,
美的讓人沉醉。
你之前看過無數的美景,
依然會無法自拔的愛上它。
黃河九曲第一灣
九曲黃河第一彎位于中國甘肅省臨夏回族自治州瑪曲縣,是黃河上游的一個著名景點。藏族人民結合黃河上游的地形和景觀,為上游諸河段取了富有特色的名稱,如“卡日曲”、“約古宗列曲”、“扎曲”、“星宿海”、“瑪曲”、“析(賜)支”、“河曲”、“九曲”、“逢留大河”等。藏語中“河”被稱為“曲”。“九曲”指的是唐時對貴德以上黃河段的稱呼,即黃河首曲所在地瑪曲縣。九曲黃河第一彎景區距離唐克西村9公里,是黃河及其支流白河交匯并轉彎的地方,景色壯觀,被譽為“塞外西湖”。。
黃河九曲第一灣/落日
黃河九曲第一灣/法螺觀景臺
若爾蓋星途智享酒店
住在蒙古包,感受異域風情。
蒙古包
星途酒店
深夜不要錯過美麗的星空。
酒店右側有個廣場,深夜2點結伴去拍星空、銀河。
星空
第4天
G248
若爾蓋草原海拔3500米以上,沿途可游覽花湖、若爾蓋縣城、松潘草原、紅原草原、黃河九曲第一灣、瓦切塔林、紅軍過草地紀念碑等景點。這是一條經典景觀大道,藍天白云,高原草旬,遍地小黃花,山上的牛羊,仿佛置身于一個夢幻般的世界…
248國道若爾蓋段/也是景觀大道
若爾蓋草原3500+,可能會有高反,不要跑不要跳。
248國道若爾蓋段/車少景色迷人
在甘南經常會遇上牦牛/羊/馬橫穿公路
要有耐心,休息一下,等它們先過去
248國道/看不夠的美景
甘川交界有少量野生梅花鹿分布
路標有三種文字上
向左向右/都是美麗的景色
這云/都在翩翩起舞
郎木寺是甘南重要的樞紐小鎮
若爾蓋花湖生態旅游區
若爾蓋草原,也稱熱爾大壩草原,僅次于呼倫貝爾草原,海拔3468米,面積近3萬平方公里,由草甸草原和沼澤組成。若爾蓋花湖位于四川若爾蓋和甘肅郎木寺之間的213國道旁,是熱爾大壩草原上的一個天然海子。
花湖
如詩如畫的若爾蓋
248國道(紅星鎮-鐵布鎮-迭部縣)
248國道
紅星鎮/離降扎溫泉11公里左右
248國道(紅星鎮-鐵布鎮-迭部縣)的地貌與若爾蓋草原完全不同
更像在江南丘陵行駛
裸露的巖石
248國道左拐往益哇
右邊是345國道往迭部
益哇
哈雜村岔路
扎尕那
扎尕那山位于甘肅省甘南迭部縣的益哇鄉,全國十大非著名山峰之一,海拔3970米。
“扎尕那”的藏語意思為“石匣子”,是一座天然巖壁構筑的古城,俗有“閻王殿”之稱。扎尕那在解放以前屬卓尼縣楊土司的四十八個旗(藏語稱為瑪日)之一,當地的始祖為吐蕃第三十二朝順贊干布的后裔。2009年11月,扎尕那山入選《中國國家地理》雜志社發布的“十大非著名山峰”。
扎尕那大景區門口
扎尕那大景區門口/海拔2652
進入扎尕那大景區的道路
進入扎尕那大景區的道路
扎尕那山,山勢奇峻、景色優美,猶如一座規模宏大的石頭宮殿,這片世外桃源雖然早在百年前就被洛克譽為亞當和夏娃的誕生地,但至今仍是一塊處女地。(《中國國家地理》評)
遠處就是扎尕那核心景區的石頭匣子
村落(東哇村)也隱約可見
扎尕那山山勢奇峻、云霧繚繞,四周全都是峭立的山峰,扎尕那山的東邊山峰高聳矗立,南邊的兩座石峰拔地而起,相對而立成為石門,北邊是一座俗稱“石鏡山”的光蓋山石峰,因其灰白色的巖石容易反光而得名。扎尕那是天然巖壁構筑的一座完整的古城,有獨特的地質地貌景觀和豐富完整的動植物資源體系。扎尕那山旅游景區是集森林、古冰川遺址、田園風光等旅游資源為一體的綜合旅游景區。
扎尕那核心景區
也是甘南大景區的明珠
迭部扎尕那花田民俗客棧
扎尕那花田民俗客棧
客棧門外景色
客棧check in區
房間內蒼蠅很多,藏民不殺生,與它們和睦相處;
用紙杯+機票,成功趕出20多只;
驅趕期間不覺煩惱,不亦樂乎,
我相信是窗外景色洗滌了我的靈魂。
第5天
扎尕那
扎尕那日出
次高的村落(業日村)
扎尕那
最高的兩個村落(達日村、代巴村)
345國道
距離江蘇啟東2608公里處
345國道
345國道/鐵布鎮
在甘南開車,要特別小心路邊的大動物;
毀車先不說,撞壞這些寶貝賠不起。
若爾蓋縣紅星鎮
紅星鎮路牌
都去過的景點
248國道穿過紅星鎮
注意來往村民
248國道過橋后,是213國道
右拐往郎木寺-碌曲-合作方向
郎木寺鎮
郎木寺鎮是甘肅甘南碌曲縣和四川阿壩若爾蓋縣共同下轄的一個小鎮,白龍江穿鎮而過。
甘肅郎木賽赤寺
其中江北的賽赤寺屬于甘肅碌曲縣,又叫“達倉郎木賽赤寺”,江南是格爾底寺,屬于四川若爾蓋縣,又叫“達倉郎木格爾底寺”,兩座寺廟均屬藏傳佛教格魯派寺廟。
甘肅郎木賽赤寺
四川朗木格爾底寺
郎木寺鎮
身體已適應高海拔
郎木寺的景色比前兩天來,感覺上完全不一樣了。
郎木寺鎮基本上都是川菜館,
3個菜(大盤雞、蔥炒羊肉、番茄炒蛋)200左右,貴嗎?
無人機是旅途不可或缺的工具
尕海湖
啃噬時間的一群黑牦牛
也在啃噬遼闊無邊的積雪
空蕩的岸邊
它的身影就是草原的寂靜
當冬天的大風翻數衰草時
水域遼闊的尕海湖
就是一面靜默而明亮的鏡子
……
詩人王小忠在《時光里的尕海湖》中
對尕海湖充滿了奇異而美麗的想象
尕海湖
213國道/碌曲
213國道/尕秀村
夏河
213國道/夏河機場/阿木去乎鎮
213國道/直合隆
213國道
213國道/經幡
當周草原是甘南香巴拉旅游藝術節主會場,也是甘南州民族性群眾文體活動、節日慶典的聚會場。
當周草原/甘南文旅會展中心
當周草原/甘南文旅會展中心
合作
合作街景
馬成虎手抓美食城
手抓羊肉78/斤,真沒多少,不夠吃
涼拌枸杞藤
豆芽炒米粉
烤羊排118/斤
沙蔥百合炒雞蛋 46
八寶茶 10/客
合作/羚城西苑
我在xx等你,全國遍地開花
不信你看
錄豆囊村/天津援建
藏傳佛教元素
合作 夜色
登高在觀景平臺看合作夜色
合作夜色
合作夜色
合作明海飯店
明海飯店/合作地標建筑
第6天
米拉日巴佛閣
米拉日巴佛閣位于甘肅安多藏區合作市,它的全稱是“安多合作米拉日巴九層佛閣”,名字雖然有點兒長,卻也講得很明白。始建于清乾隆四十二年(1777年),原建樓閣已毀于“文革”。現存建筑重建于1988年5月,歷時四年落成。米拉日巴佛閣是為紀念米拉日巴而修建的佛閣。是藏傳佛教噶舉派(白教)在安多藏區的代表寺院。
米拉日巴佛閣
樓高共九層,供奉以米拉日巴尊者及其弟子為主的藏傳佛教各派的開宗祖師,有以金剛為主的四密乘的眾多佛像、菩薩、護法神等各類佛像1720尊。反映藏傳佛教內容的各類壁畫規模巨大,繪畫技法高超,具有很高的藝術價值。在中國藏區共有兩座米拉日巴佛閣,這座佛閣為安多藏傳佛教名剎之一,建筑氣勢雄宏,金碧輝煌。常年有住寺喇嘛學習研修,供奉佛主,有獨特的文化氛圍。
米拉日巴佛閣
劉家峽大橋
與前幾天下著雨看劉家峽
又有不一樣的感覺
劉家峽大橋
劉家峽水庫
蘭州水墨丹霞旅游景區
距離甘肅省會蘭州約15公里的地方也有一處神奇丹霞地貌——水墨丹霞,其雖沒有張掖丹霞的磅礴氣勢,也沒有張掖丹霞那種狂熱人氣,但卻因此塑造了一種另類的景象,構成了一幅奇特的荒漠水墨畫,很是值得一觀。
絲路古途
絲路霞光—看丹霞,從登高望遠到身臨其境,細看百里丹霞。站在絲路霞光平臺之上,目光所及之處,便是形成于一億五千萬年前的丹霞地貌奇觀。每當朝陽西落,絢爛的晚霞仿佛給周圍的群山披上了一道七彩霓裳,形成了一輪紅日天邊掛,滿眼霞光照碧峰的盛景。因此這兒是整個丹霞拍攝日落和夕陽最美的地方,所以被叫做絲路霞光。
絲路霞光
絲路霞光
“雄鷹探海,雙翼齊飛”絲路雄鷹觀景平臺海拔1841米,是景區內第一個近距離俯瞰丹霞地貌的觀景點。此處丹霞崖壁壯觀雄渾,紅山灣地貌色彩斑斕,猶如跌落人間的彩虹。既可俯瞰全貌,又可深入彩色山嵐,近觀微型石林之妙,遠賞南北兩側地質差異奇觀,是游客近距離接觸丹霞地質遺跡的最佳地點。
絲路雄鷹
九色丹青—品丹霞。九色丹青也是景區內最核心的觀景處,平臺面積1327㎡,在這里能看到的景色就像一幅山水畫,淡雅別致。整個平臺造型宛若一把琵琶橫幅在丹霞崖壁之間,琵琶象征著聲音遠播,在這里也希望水墨丹霞景區能夠聲明遠揚,琵琶更有一種寓意叫知音難覓,琴謝知音。
九色丹青
九色丹青
沙井部落
丹秀映天可以俯瞰整片丹霞云海,悠遠的峽谷、層次分明的紅色山體,這都充分體現了大自然的鬼斧神工,但站在這里最吸引眼球的還是身后這片壯闊的丹霞崖壁。這片山體在經歷了千百萬年的風化剝蝕之后,石膏質粗砂巖與泥巖、粉砂巖層形成了順層凸起與凹陷相間的地質景觀。
丹秀映天
翠峰瀾天是景區丹霞地貌的一個分水嶺。在這里駐足遠望可以看到兩種不同的奇觀:陰坡因日照時間短,蒸發量小,含水量充足,長滿了翠綠的植被,連綿起伏的山巒如大海的波濤,仿佛置身于一片綠色的海洋,與天融為一體。陽坡因日照充足,植被覆蓋量低,看到的是火紅的紅山灣地貌,有八百里火焰山之稱,兩側山體對比鮮明,給游客巨大的視覺沖擊,贊嘆這大自然的鬼斧神工。
翠峰瀾天
丹頂攬勝—望丹霞,這里是景區七個觀景平臺中最高的一個觀景平臺丹頂攬勝,海拔1959米。站在觀景平臺上登高望遠,景色盡收眼底,雄偉壯闊的丹霞崖壁,全長約9公里,而崖壁下方,9只神獸正探出頭,好奇的注視著遠處的丹霞云海,這九只神獸代表著龍的九個兒子,俗稱九龍探海。
丹頂攬勝
蘭州中川國際機場
回家了