iOS IPA 安全問(wèn)題

iOS 如何做才安全:

1匠璧、首先咸这,我們可以通過(guò)軟件 下載 AppStore的ipa文件(蘋(píng)果 把開(kāi)發(fā)者上傳的ipa進(jìn)行了加殼再放到AppStore中),

得到ipa文件 可以分析APP 里包含的一些資源酿雪,如:圖片指黎、plist文件州丹、靜態(tài)wap頁(yè)、.bundle 等吓揪。

所以不要 在plist文件所计、項(xiàng)目中的靜態(tài)文件中 存儲(chǔ)關(guān)鍵的信息主胧,如果要保存习勤,記得加密(這樣可以增加破解的難度)放棒。

2间螟、我們可以用軟件 查看 APP的沙盒,查看里面存儲(chǔ)的 文件:sqlite荣瑟、plist(NSUserdefault會(huì)存到Library下的Preferences中 的 plist文件中)摩泪、圖片等,NSUserdefault 中不要保存關(guān)鍵信息嚷掠,如果要保存不皆,還是加密吧熊楼。。sqlite也是這樣子的犬耻。

3执泰、 用 工具 對(duì)加殼的ipa 進(jìn)行脫殼(越獄手機(jī) 直接用PP助手下載的就是 脫殼的ipa)术吝,再用IDA、Hopper 進(jìn)行反編譯,進(jìn)行分析 税弃,可以得到 近乎易懂的 偽代碼则果。

所以 不要在 代碼 中保存關(guān)鍵信息漩氨,比如接口通信中 AES加密的密鑰叫惊,可以通過(guò)接口獲取 這些關(guān)鍵數(shù)據(jù)做修。

如果要保存關(guān)鍵數(shù)據(jù)(比如:密鑰 等),可以保存加密后的關(guān)鍵數(shù)據(jù)蔗坯,運(yùn)行的時(shí)候進(jìn)行解密獲取真實(shí)的數(shù)據(jù)宾濒。這樣可以增加破解的難度屏箍。

密鑰要定期更換。比如 3個(gè)月 或半年換一次卸奉,如果密鑰是從接口獲取的尚粘,直接修改服務(wù)端就可以了郎嫁。

如果密鑰是寫(xiě)在代碼里的。就等APP升級(jí)新的版本的時(shí)候尚辑,新版本的APP和其對(duì)應(yīng)的接口版本 修改為新的密鑰 就可以了盔腔。舊的接口版本和APP版本還用以前的密鑰弛随,等強(qiáng)制更新的時(shí)候才會(huì)失效。

如果一個(gè)APP 一個(gè)密鑰用上幾年都不變 栓票,是很危險(xiǎn)的愕够。離職的人員都可以直接用以前 的代碼 來(lái)獲取相關(guān)的數(shù)據(jù)。特別是 支付相關(guān)的坠狡,有的服務(wù)端甚至沒(méi)有 去校驗(yàn)支付的金額或其他數(shù)據(jù)逃沿,導(dǎo)致 離職人員用1分錢(qián) 可以買(mǎi)到 任何價(jià)格的 線上產(chǎn)品。缩搅。

最好能 進(jìn)行 代碼混淆触幼,能增加反編譯的難度置谦,當(dāng)然只是增加了難度,還是能破解的瘟栖。

4半哟、用https也是可以被抓包并解析的签餐,所以網(wǎng)絡(luò)通信 一定要用自己的加密方式 進(jìn)行加密。

接口返回的數(shù)據(jù) 最好也進(jìn)行 加密戒良。

可以這么說(shuō):無(wú)論 你怎么做糯崎,理論上都是可以破解的河泳,但是 破解人員也要考慮成本。樟插。

有的銀行的APP黄锤,只用了https食拜,通信都不加密,很容易就拿到明文數(shù)據(jù)了流强。有的APP里的各種數(shù)據(jù)都 采用復(fù)雜的加密算法打月,破解人員看到都煩蚕捉,去破解這個(gè)APP的時(shí)間還不如去搞其他的幾個(gè)APP迫淹。

一、ipa文件

1肺稀、AppStore里的ipa包 可以通過(guò) iTunes 下載到電腦应民。iOS8.3以下系統(tǒng)的非越獄的手機(jī)上诲锹,可以用MAC上的PP助手等軟件,直接把手機(jī)上的ipa文件(包含沙盒里的存儲(chǔ)文件)拷貝到電腦改备。

如果是越獄手機(jī)悬钳,都可以用PP助手偶翅、itools直接把ipa導(dǎo)出到電腦,并且可以用PP助手母剥、iExplorer环疼、itools這些工具 查看 iOS的系統(tǒng)目錄。

MAC上安裝 iExplorer軟件淋叶,用iExplorer 可以看到 手機(jī)(非越獄也可以) 在 iTunes上備份的內(nèi)容煞檩。

如果你在幫測(cè)試美女的手機(jī) 調(diào)試問(wèn)題的時(shí)候栅贴, 在 iTunes上設(shè)置 “連接次iPhone時(shí)自動(dòng)同步”(或者點(diǎn)擊 備份到本地電腦),默認(rèn)該手機(jī)上的照片檐薯、短信等內(nèi)容都會(huì)備份到你的電腦上,用 iExplorer 就可以看到 這位 美女的隱私哄酝。

曾經(jīng)有次不小心看到同事的隱私信息祷膳,所以現(xiàn)在都比較注意這塊直晨,避免引發(fā)誤會(huì)。

2罩句、拿到ipa文件后门烂,解壓縮兄淫,得到.app文件捕虽,右鍵顯示包內(nèi)容,可以看到里面的app中的圖片房揭、js、plist恬砂、靜態(tài)H5頁(yè) 等資源觉既。

比如 你要 用微信里的默認(rèn)表情包乳幸,解壓微信的ipa包就可以獲取到粹断。

3嫡霞、iOS的系統(tǒng)目錄和MAC上的都類似(類unix系統(tǒng))诊沪。iOS系統(tǒng)的目錄圖:

Paste_Image.png

二端姚、沙盒 中的數(shù)據(jù)

iPhone上 計(jì)算器的沙盒:

Paste_Image.png

.app文件:應(yīng)用程序本身的數(shù)據(jù)渐裸,打包時(shí)候的一些資源文件(如:圖片、plist等文件)尚氛、可執(zhí)行文件洞渤。這個(gè)目錄不會(huì)被iTunes同步载迄。

Documents :存儲(chǔ)不可再生 的關(guān)鍵數(shù)據(jù)宪巨。不會(huì)被iTunes同步

Library:保存配置文件和其他一些文件。NSUserDefault 會(huì)存儲(chǔ)到 Library下的Preferences中 的 plist文件中极祸∫=穑可以直接打開(kāi),所以 也不要在 NSUserDefault 中存一些 關(guān)鍵數(shù)據(jù)选泻,或者 存儲(chǔ)的時(shí)候 進(jìn)行 AES等方式的加密美莫。

Library/Caches可以用來(lái)保存可再生的數(shù)據(jù)厢呵,比如網(wǎng)絡(luò)請(qǐng)求,用戶需要負(fù)責(zé)刪除對(duì)應(yīng)文件碌奉。

這個(gè)目錄(除了Library/Caches外)會(huì)被iTunes同步

tmp:臨時(shí)文件赐劣。不需要的時(shí)候哩都,手動(dòng)將其內(nèi)文件刪除茅逮。(當(dāng)應(yīng)用不再運(yùn)行的時(shí)候,系統(tǒng)可能會(huì)將此目錄清空碉考。)

這個(gè)目錄不會(huì)被iTunes同步

存到沙盒的數(shù)據(jù)都是不安全的挺身,關(guān)鍵數(shù)據(jù)一定 要做加密存儲(chǔ)侯谁。

三、Reveal 工具:查看 任意APP 的UI結(jié)構(gòu)

1章钾、不越獄的手機(jī) 可以用 Reveal 來(lái)查看自己APP的UI結(jié)構(gòu)墙贱。不能查看其他APP的UI結(jié)構(gòu)。這里就不再描述了贱傀。

2惨撇、越獄手機(jī) 上可以查看 任何APP的UI結(jié)構(gòu)。

在越獄的手機(jī)上府寒,在 Cydia 搜索并安裝 Reveal Loader报腔,如果搜索不到。就 點(diǎn)下面的“軟件源”剖淀,選擇“BigBoss”,選擇“全部軟件包”纯蛾,點(diǎn)右邊R的字母,去一個(gè)個(gè)找到 Reveal Loader纵隔,放心吧翻诉,你一定能找到的,我用的iOS7.1的系統(tǒng)測(cè)試的捌刮,沒(méi)問(wèn)題碰煌。

安裝完成后,打開(kāi)“設(shè)置”頁(yè)面绅作,下拉到最底部拄查,點(diǎn)擊“Reveal”

3、點(diǎn)擊 Enabled Applictions 棚蓄。然后選中 你想分析的APP。

4碍脏、確保iOS和OSX在同一個(gè)IP網(wǎng)段內(nèi)梭依。打開(kāi)想分析的 APP,如果該APP已經(jīng)啟動(dòng)典尾,則關(guān)閉后再次啟動(dòng)

5役拴、打開(kāi)MAC上的 Reveal,選中 左上方列表里的 APP钾埂,比如QQ:

Paste_Image.png

6河闰、如果 Reveal

左上方 一直顯示:No Connection。說(shuō)明iPhone上的 Reveal Loader 沒(méi)安裝成功褥紫,需要配置一下姜性。

首先從MAC上

用PP助手或 iTools 查看“文件系統(tǒng)(系統(tǒng))”--》Library文件夾,看 Library文件夾下面有沒(méi)有 RHRevealLoader

文件夾髓考,如果沒(méi)有部念,就 右鍵 新建文件夾,并修改名字為:RHRevealLoader氨菇。

在Mac

下打開(kāi)已經(jīng)安裝的Reveal儡炼,選擇標(biāo)題欄Help下的Show Reveal Library in Finder 下的 iOS library

選項(xiàng),將會(huì)顯示如下界面:

Paste_Image.png

將libReveal.dylib 文件通過(guò)PP助手拷貝到剛才創(chuàng)建的RHRevealLoader文件夾下查蓉,就可以了乌询。

然后 從手機(jī)上打開(kāi)APP, 再 打開(kāi) MAC上的 Reveal 軟件豌研,左上方 就會(huì)出來(lái) 相關(guān)APP的選項(xiàng)妹田。

再發(fā)個(gè) 淘寶中的天貓模塊吧:

Paste_Image.png

三唬党、反編譯工具:IDA

從AppStore下載的ipa都是加殼的(蘋(píng)果

把開(kāi)發(fā)者上傳的ipa進(jìn)行了加殼再放到AppStore中),加殼的ipa要先去殼秆麸,可以用clutch初嘹、dumpdecrypted、使用gdb調(diào)試 等解密去殼工具

如果你有越獄手機(jī)沮趣,可以直接

從 PP助手上下載ipa包屯烦,這個(gè)就是 脫殼后的。

現(xiàn)在 我們先反編譯

自己的APP房铭,通過(guò)Xcode打包的APP 都是沒(méi)加殼的驻龟,可以直接用來(lái)反編譯。

新建一個(gè)項(xiàng)目缸匪,在 ViewController

的 viewDidLoad 方法里 加 幾句代碼翁狐。

(void)viewDidLoad {

[super viewDidLoad];

UILabel

*label = [[UILabel alloc] initWithFrame:CGRectMake(50, 70, 200, 100)];

label.text = @"CeShiLabel007";

label.backgroundColor = [UIColor redColor];

[self.view addSubview:label];

}

將項(xiàng)目 打包,生成

ipa文件凌蔬,下面我們就用IDA分析一下 ipa露懒。

將ipa文件 解壓后

得到.app文件:

Paste_Image.png

下載IDA,并打開(kāi):

Paste_Image.png

下載IDA砂心,并打開(kāi):

點(diǎn)擊“New”按鈕懈词,選擇剛才 解壓的 .app文件。一路 點(diǎn)擊“OK”或者“YES” 就可以了辩诞。

打開(kāi)界面后坎弯,雙擊左側(cè)的 viewDidLoad:

Paste_Image.png

可以看出:代碼中的 "CeShiLabel007" 字符串 完全可以反編譯出來(lái)。所以盡量不要在代碼里放一些 關(guān)鍵 的數(shù)據(jù)译暂】偻可以通過(guò)接口來(lái)獲取⊥庥溃或者 把 數(shù)據(jù)進(jìn)行加密崎脉。

從上面的界面中 ,按下鍵盤(pán)的F5象迎,可以 把匯編轉(zhuǎn)成C語(yǔ)言代碼荧嵌。可讀性很高砾淌。啦撮。

你如果試了 就發(fā)現(xiàn)你的F5不管用啊,那是因?yàn)?F5是一個(gè)插件Hex-Rays.Decompiler 的快捷鍵汪厨,這個(gè)插件是收費(fèi)的赃春、收費(fèi)的。

四劫乱、反編譯工具:Hopper Disassembler

下載 Hopper Disassembler軟件织中。打開(kāi)ipa解壓的.app锥涕。 或者直接 把.app拖進(jìn)去。

雙擊“viewDidLoad”: 可以看到 匯編代碼狭吼, "CeShiLabel007" 字符串层坠、setText方法 等。

點(diǎn)擊右上角的 if(a) f(x)圖標(biāo)

Paste_Image.png

會(huì)彈出 類似源代碼的 偽編碼:

Paste_Image.png

代碼中可以清楚的看到 處理的邏輯刁笙。簡(jiǎn)單易懂破花,和看源代碼沒(méi)太大區(qū)別。疲吸。

下面 是我從越獄手機(jī)的PP助手上下載的 微信 的ipa 進(jìn)行反編譯,看下里面的 QQContactInfoViewController 頁(yè)面 的 viewDidLoad方法里的代碼 怎么寫(xiě)的座每,

截圖:

Paste_Image.png

如果 你把從 AppStore下載的 ipa包直接拖到 IDA或Hopper里,看到的就是亂碼摘悴,剛才已經(jīng)說(shuō)過(guò)了峭梳。AppStore的ipa是加過(guò)殼的 。如圖:

Paste_Image.png

五蹂喻、抓包-https

Charles 老版本和 新版本 抓取https 的配置 不一樣葱椭。。

先看HTTP抓包:

1. 打開(kāi)Charles程序

2. 查看Mac電腦的IP地址口四,如192.168.1.7

3. 打開(kāi)iOS設(shè)置挫以,進(jìn)入當(dāng)前wifi連接,設(shè)置HTTP代理Group窃祝,將服務(wù)器填為上一步中獲得的IP,即192.168.1.7踱侣,端口填8888

4. iOS設(shè)備打開(kāi)你要抓包的app進(jìn)行網(wǎng)絡(luò)操作

5. Charles彈出確認(rèn)框粪小,點(diǎn)擊Allow按鈕即可

HTTPS 老版本抓包:

1. 下載Charles證書(shū)http://www.charlesproxy.com/ssl.zip,解壓后導(dǎo)入到iOS設(shè)備中(將crt文件作為郵件附件發(fā)給自己抡句,再在iOS設(shè)備中點(diǎn)擊附件即可安裝探膊;也可上傳至dropbox之類的網(wǎng)盤(pán),通過(guò)safari下載安裝)

2. 在Charles的工具欄上點(diǎn)擊設(shè)置按鈕待榔,選擇Proxy Settings…

3. 切換到SSL選項(xiàng)卡逞壁,選中Enable SSL Proxying

4. 這一步跟Fiddler不同,F(xiàn)iddler安裝證書(shū)后就可以抓HTTPS網(wǎng)址的包了锐锣,Charles 還 需要在上一步的SSL選項(xiàng)卡的Locations表單填寫(xiě)要抓包的域名和端口腌闯,點(diǎn)擊Add按鈕,在彈出的表單中Host填寫(xiě)域名雕憔,比如填 api.instagram.com姿骏,Port填443

HTTPS 新版本抓包:

Charles新版本 的 Proxy Settings 選項(xiàng)里是沒(méi)有 SSL選項(xiàng)卡的。在左側(cè)的域名上點(diǎn)右鍵:Enable SSL Proxying斤彼,就可以用了分瘦。

Paste_Image.png

然后

點(diǎn)擊APP蘸泻,會(huì)看到HTTPS解密的json數(shù)據(jù)。如果接口返回的數(shù)據(jù) 本身進(jìn)行了加密嘲玫,那你看到的還是亂碼悦施。

六、https - iOS 的代碼如何寫(xiě)

2015年4月末去团,網(wǎng)爆流行IOS網(wǎng)絡(luò)通信庫(kù)AFNetworking

SSL漏洞抡诞,影響銀聯(lián)、中國(guó)銀行渗勘、交通銀行在內(nèi)的2.5萬(wàn)個(gè)IOS應(yīng)用沐绒,我來(lái)看下 各種網(wǎng)絡(luò)寫(xiě)法對(duì)應(yīng)的問(wèn)題。

1旺坠、信任任何證書(shū)乔遮。在 AFNetworking

中 定義 allowInvalidCertificates 為true,表示 忽略所有證書(shū)取刃。

AFHTTPRequestOperationManager

manager = [AFHTTPRequestOperationManager manager];

manager.securityPolicy.allowInvalidCertificates = YES;

這種情況下

用我們上面講的方法蹋肮,用Charles很容易 破解HTTPS加密的數(shù)據(jù)。

這種情況璧疗,一般是

因?yàn)?測(cè)試環(huán)境 用的不是 CA發(fā)的證書(shū)坯辩,需要忽略掉證書(shū),所以把 allowInvalidCertificates 設(shè)為了

true崩侠。這個(gè)可以用 #ifdef DEBUG 來(lái)進(jìn)行設(shè)置漆魔。

ifdef

DEBUG

manager.securityPolicy.allowInvalidCertificates

= YES;

endif

2、信任證書(shū)管理機(jī)構(gòu)(CA)頒發(fā)的證書(shū)却音。

CA頒發(fā)的證書(shū)改抡,據(jù)說(shuō)這類的證書(shū)只需50美元就能買(mǎi)到。此類問(wèn)題出在AFNetworking

2.5.2及之前的版本系瓢,是AF的漏洞(詳見(jiàn)新聞)阿纤。如果某IOS APP使用了此版本的開(kāi)源通信庫(kù),在不安全Wifi網(wǎng)絡(luò)中的夷陋,黑客

只要使用CA頒發(fā)的證書(shū)就可以對(duì)該APP的HTTPS加密數(shù)據(jù)進(jìn)行監(jiān)聽(tīng)或者篡改欠拾。

這個(gè)需要升級(jí)到 AFNetworking

最新版本,正好最新版本也聲明兼容IPv6骗绕。

3藐窄、信任合法的證書(shū)、服務(wù)器和客戶端雙向認(rèn)證酬土。

這兩種也都有辦法破解枷邪,詳見(jiàn):Bypassing

OpenSSL Certificate Pinning in iOS Apps、http://drops.wooyun.org/tips/7838

總結(jié):不要完全信任HTTPS的安全性。任何

的 協(xié)議东揣、代碼都是會(huì)有漏洞的践惑。。關(guān)鍵的數(shù)據(jù)一定要自己進(jìn)行加密嘶卧。

黑客不會(huì)去一個(gè)手機(jī)一個(gè)手機(jī)的 把沙盒數(shù)據(jù) 拿出來(lái) 來(lái)看每個(gè)用戶的數(shù)據(jù)(黑客也不可能拿到你的手機(jī))尔觉。

黑客最主要的還是通過(guò)網(wǎng)絡(luò)來(lái)獲取 他們想要的數(shù)據(jù)(網(wǎng)絡(luò)的安全級(jí)別是最高的)。如果恰好 你的APP 加密密鑰 明文 保存到了沙盒里 或者 你的 數(shù)據(jù)通信還沒(méi)有進(jìn)行加密芥吟,恭喜你侦铜,你的數(shù)據(jù)和裸奔沒(méi)啥區(qū)別。钟鸵。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末钉稍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子棺耍,更是在濱河造成了極大的恐慌,老刑警劉巖蒙袍,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異狠怨,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)栏豺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)奥洼,“玉大人灵奖,你說(shuō)我怎么就攤上這事骡尽◇锊龋” “怎么了境钟?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵鱼的,是天一觀的道長(zhǎng)猿规。 經(jīng)常有香客問(wèn)我姨俩,道長(zhǎng),這世上最難降的妖魔是什么张遭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上万细,老公的妹妹穿的比我還像新娘腰素。我一直安慰自己咧虎,他們只是感情好砰诵,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布扶歪。 她就那樣靜靜地躺著妹萨,像睡著了一般乎完。 火紅的嫁衣襯著肌膚如雪桥状。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,036評(píng)論 1 285
  • 那天查邢,我揣著相機(jī)與錄音蚁趁,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛酷师,可吹牛的內(nèi)容都是我干的讶凉。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼山孔,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼懂讯!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起台颠,我...
    開(kāi)封第一講書(shū)人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤褐望,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后串前,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體瘫里,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年荡碾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谨读。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡玩荠,死狀恐怖漆腌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阶冈,我是刑警寧澤闷尿,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站女坑,受9級(jí)特大地震影響谬晕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜臂港,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一椒涯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧碉就,春花似錦盟广、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)烹吵。三九已至,卻和暖如春桨武,著一層夾襖步出監(jiān)牢的瞬間肋拔,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工呀酸, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凉蜂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓性誉,卻偏偏與公主長(zhǎng)得像窿吩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子艾栋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容