日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

獲取root權(quán)限及破解原理分析

 昵稱6656145 2012-12-21

2012-03-18 

現(xiàn)在Android系統(tǒng)的root破解基本上成為大家的必備技能!網(wǎng)上也有很多中一鍵破解的軟件,使root破解越來越容易。但是你思考過root破解的原理嗎?root破解的本質(zhì)是什么呢?難道是利用了Linux kernal的漏洞嗎?本文將簡單對root的破解原理進行分析。

網(wǎng)上很多root教程所使用的都是rageagainstthecage程序,今天下載了rageagainstthecage.c源程序看了一下,大致理解了獲取root權(quán)限的基本過程和原理。
首先簡單解釋一下什么是root過的手機(Android系統(tǒng)),所謂root過的手機就是我們可以以root的權(quán)限運行各種程序,進而完全控制系統(tǒng)。
因為官方系統(tǒng)基于安全原因,默認程序的運行都是以非root用戶運行的,包括adbd進程。adbd進程是手機中運行的一個守護進程,他負責解釋并運行PC傳送過來的命令,
該進程由init進程創(chuàng)建,但是創(chuàng)建后自身通過調(diào)用setuid()系統(tǒng)調(diào)用設置運行的用戶為shell用戶。所以我們在手機中執(zhí)行ps命令看到的adbd進程都是以shell用戶身份運行的。
獲取root權(quán)限的關鍵是想辦法讓adbd進程重新以root身份運行,這樣通過電腦傳送過來的命令也就能夠以root身份運行了。
眾所周知,Android系統(tǒng)用的是linux的內(nèi)核,在linux中,對于用戶最大允許運行的進程數(shù)有限制,所以rageagainstthecage程序在運行后先結(jié)束當前的adbd進程,
然后init進程會重新啟動新的adbd進程。但是rageagainstthecage程序同時會創(chuàng)建大量的子進程,這些子進程默認都是shell用戶身份,從而使得shell用戶擁有的進程數(shù)達到最大值,這就使得新啟動的adbd進程調(diào)用setuid()系統(tǒng)調(diào)用失敗,因為shell用戶的進程數(shù)已滿,adbd無法把自己運行的用戶設置為shell用戶,從而保持在剛創(chuàng)建時的root用戶身份中運行。
這時候我們在電腦中執(zhí)行adb shell命令時發(fā)現(xiàn)已經(jīng)進入root shell了。
從上面的分析我們可以知道:要能夠root成功必須滿足兩點:
1、系統(tǒng)必須已經(jīng)設置每個用戶允許運行的最大進程數(shù)(官方的Android2.1、2.2好像都已經(jīng)設置,2.3的不是很清楚)。
2、必須要在新啟動的adbd進程調(diào)用setuid()系統(tǒng)調(diào)用前創(chuàng)建足夠多的進程數(shù)。但是因為系統(tǒng)進程調(diào)度的隨機性,并不能保證每一次都能滿足這個要求,這也就是為什么網(wǎng)上說多試幾次就會成功。
執(zhí)行完rageagainstthecage程序后其實已經(jīng)獲得了root權(quán)限,但是每次這么做非常麻煩,所以還應該設置一些永久性的東西,主要是上傳幾個程序到系統(tǒng)并設置相應權(quán)限,這幾個程序分別是:
su--使得非root用戶能夠以root身份運行程序。
busybox--系統(tǒng)工具包,包含很多的系統(tǒng)使用工具。
SuperUser.apk--授權(quán)管理軟件包,為需要root身份運行的程序授權(quán)。

網(wǎng)上下的一鍵root包其實也就是把上面的工作制作成腳本讓它自動執(zhí)行罷了。

網(wǎng)上有一篇文章已經(jīng)對root破解的基本原理進行了簡單介紹,大家可以先參考一下《》,本文只能說對root原理進行了方向性的描述,但是在一些具體的方面沒有描述清楚。本文將會對其進行一些必要的擴展和補充。

如果你進行過程序開發(fā),在root過的手機上面獲得root權(quán)限的代碼如下:

1: Process process = Runtime.getRuntime().exec("su");
2: DataOutputStream os = new DataOutputStream(process.getOutputStream());
3: ......
4: os.writeBytes("exit\n");
5: os.flush();

從上面代碼我們可以看到首先要運行su程序,其實root的秘密都在su程序中,《》中講到Android系統(tǒng)默認的su程序只能root和shell可以用運行su,這個是安全的。如果把這個限制拿掉,就是root破解了!

下面我們仔細分析一下程序是怎樣獲得root權(quán)限的,如果對Linux的su命令熟悉的朋友可能知道su程序都設置SUID位,我們查看一下我的手機(已經(jīng)root破解)上的su權(quán)限設置,

獲取root權(quán)限及破解原理分析 - KidGeek - 等待機遇

我們發(fā)現(xiàn)su的所有者和所有組都是root,是其實是busybox的軟鏈接,我們查看busybox的屬性發(fā)現(xiàn),其設置了SUID和SGID,并且所有者和所有組都是root。SUID和SGID的作用是什么呢?如果你不太清楚,請參考《Linux進程的實際用戶ID和有效用戶ID》,這樣運行busybox的普通用戶,busybox運行過程中獲得的是root的有效用戶。su程序則是把自己啟動一個新的程序,并把自己權(quán)限提升至root(我們前面提到su其實就是busybox,運行期它的權(quán)限是root,當然也有權(quán)限來提升自己的權(quán)限)。

再強調(diào)一下不光root手機上su需要設置SUID,所有的Linux系統(tǒng)上的su程序都需要設置SUID位。請參考一下UC服務器的su的權(quán)限情況:

獲取root權(quán)限及破解原理分析 - KidGeek - 等待機遇

我們發(fā)現(xiàn)su也設置了SUID位,這樣普通用戶也可以運行su程序,su程序會驗證root密碼,如果正確su程序可以把用戶權(quán)限提高的root(因為其設置SUID位,運行期是root權(quán)限,這樣其有權(quán)限提升自己的權(quán)限)。

這樣我們就可以看出其實Android系統(tǒng)的破解的根本原理就是替換掉系統(tǒng)中的su程序,因為系統(tǒng)中的默認su程序需要驗證實際用戶權(quán)限(只有root和shell用戶才有權(quán)運行系統(tǒng)默認的su程序,其他用戶運行都會返回錯誤)。而破解后的su將不檢查實際用戶權(quán)限,這樣普通的用戶也將可以運行su程序,也可以通過su程序?qū)⒆约旱臋?quán)限提升。

到這里大家對root破解不感到神秘了吧。root破解沒有利用什么Linux內(nèi)核漏洞(Linux內(nèi)核不可能有這么大的漏洞存在),可以理解成root破解就是在你系統(tǒng)中植入“木馬su”,說它是“木馬”一點兒都不為過,假如惡意程序在系統(tǒng)中運行也可以通過su來提升自己的權(quán)限的這樣的結(jié)果將會是災難性的。所以一般情況下root過手機都會有一個SuperUser應用程序來讓用戶管理允許誰獲得root權(quán)限,也算是給系統(tǒng)加了一層保險吧!

Android的應用程序入口肯定是Java程序。應用程序的啟動者是由系統(tǒng)臨時根據(jù)Androidmanifest.xml中定義的權(quán)限而創(chuàng)建的臨時用戶。而不像linux那樣是使用登陸者的身份啟動,從而使得進程具有登陸者的所有權(quán)限。這也是Android的安全機制之一。新的權(quán)限機制也帶來新的問題,Android給應用程序的權(quán)限是按功能來分,java雖然可以訪問文件系統(tǒng)。但由于應用程序本身是臨時用戶啟動,這個臨時用戶權(quán)限十分有限。因此誕生了<越獄/root機器>這樣的產(chǎn)物其實root機器不是真正能讓你的應用程序具有root權(quán)限。它原理就跟linux下的像sudo這樣的命令。在系統(tǒng)的bin目錄下放個su程序并屬主是root并有suid權(quán)限。則通過su執(zhí)行的命令都具有Android root權(quán)限。
Su的源代碼網(wǎng)上也有,有興趣的同學去google下。
當然使用臨時用戶權(quán)限想把su拷貝的/system/bin目錄并改屬性并不是一件容易的事情。這里用到2個工具跟2個命令。工具就是busybox。不熟悉的同學可以去網(wǎng)上google下。這個太有名了我就不多說了。把busybox拷貝到你有權(quán)限訪問的目錄然后給他賦予4755權(quán)限,你就可以用它做很多事了。當然busybox只能不能提升權(quán)限,真正提升權(quán)限的是ratc這個程序,這個程序中一鍵root包里面可以找到,作用是rooting在adb的shell。
網(wǎng)上介紹Ratc的文章不多,它是rage against the cage 的縮寫。是真正的提升權(quán)限的破解程序。雖然我沒看過源代碼,但估計是利用adb源代碼部分內(nèi)容來實現(xiàn)的,原理估計跟模擬器使用adb shell登陸可以獲得root shell差不多。(因為它運行需要adb連接才會成功)。使用busybox前先運行ratc,這樣運行busybox的UID將是0,也就是root。首先把system目錄改成可讀性的:busybox mount -o remount,rw /system,當然你還不能改下面的文件,因為system下文件的所有者都不是你。但你可以偷梁換柱把system下的目錄給換掉。使用命令Busybox mount -t tmpfs none /system/xbin,呵呵這下xbin目錄你隨便寫了。
將su跟busybox弄過去cp /data/data/xxx/su /system/xbin。然后賦權(quán)限chmod 4755 /system/xbin/su。/然后使目錄生效busybox --install -s /system/xbin,
別忘善后busybox mount -o remount,ro /system去掉system可寫。這樣只是臨時的,只能用su跟busybox能執(zhí)行一些原來系統(tǒng)沒有權(quán)限執(zhí)行的命令而已。當系統(tǒng)重啟后/system/xbin又變?yōu)樵瓉淼奈募?。真正要改系統(tǒng)的話需要自己寫內(nèi)核代碼(相當于windows的驅(qū)動程序)。內(nèi)核文件擁有所有權(quán)限。使用busybox命令insmod /data/data/xxx/xxx.ko裝載內(nèi)核文件,你想干嘛就可以干嘛了。
當然我們不是搞破解的沒必要去改別人的機器,我們只是想讓自己應用程序具有root權(quán)限而已。所以臨時的su就可以了。我們用c++寫一個可執(zhí)行文件。使用socket可以跟java的程序通訊。然后將需要使用root權(quán)限才能執(zhí)行的代碼放在c++程序里,然后java程序中創(chuàng)建新的su進程,將c++程序帶全路徑作為參數(shù)1。啟動后就可以通過socket調(diào)用c++函數(shù)去執(zhí)行你想干的事了。
最后程序執(zhí)行完了別忘了善后busybox umount /system/xbin。
最后說說要注意的事情,如果機器已經(jīng)擁有Android root權(quán)限的話就不需要做這些事情了,但root過的機器都有裝有個權(quán)限管理的程序。會彈出對話框。但這個程序管理能力有限,如果不想讓他彈出的話。也許可以通過改su文件名來解決。有興趣的同學不妨試試。

SuperOneClick 獲取 Root 權(quán)限的原理

轉(zhuǎn)貼自:http://blog.csdn.net/liwei_cmg/article/details/6313944

一、前言

經(jīng)過筆者自己測試與分析,得出結(jié)論:所以Android手機獲取Root權(quán)限,最直觀
最有效,最簡便的就是SuperOneClick方法!
與i9000基帶版本的什么JPE,JPD,JP8等等,沒有關系
與i9000Android軟件版本的什么2.0,2.1,2.2等等,沒有關系
與具體的什么Android手機也沒有關系
管你是三星的,還是MOTO的,還是HTC……

到底與什么有關呢,我理解是Linux的內(nèi)核版本!當然普通用戶根本不必關心!
后續(xù)的文章會提到有關破解Root的底層概念,當然也超出普通用戶的理解范圍。

這里,我只想介紹一下SuperOneClick獲取Root權(quán)限的簡單原理!

二、提示

有關Root權(quán)限的獲取方法可參考
《Android應用.三星i9000系列(3).無需刷機輕松獲取Root權(quán)限》
本系列文章:http://blog.csdn.net/liwei_cmg/category/241839.aspx
三、原理簡介

我們已經(jīng)知道adb(Android Debug Bridge)這個概念,不管是Moto的,還是Samsung
的,Android手機通過USB連接電腦后,安裝好驅(qū)動,在設備管理器里都會看到Android
Composite ADB Interface這樣的東東。SuperOneClick就是調(diào)用的adb這樣的接口。
同樣豌豆莢,91手機助手這樣的軟件也是使用了adb。

關于Android手機USB連接電腦的相關內(nèi)容,可參考:
《Android應用.三星i9000系列(1).版本選擇與USB連接電腦》

四、SuperOneClick提取Root權(quán)限的基本步驟

F:/Own/Phone/Samsung/Tools/SuperOneClick 的目錄下所有文件

2010/10/16  22:04           577,335 adb.exe
2010/10/18  11:27           339,885 adblinux
2010/10/18  11:26           171,656 adbmac
2010/10/16  22:04            96,256 AdbWinApi.dll
2010/10/16  22:04            60,928 AdbWinUsbApi.dll
2010/10/16  23:29         1,062,992 busybox
2010/10/16  22:04             5,392 rageagainstthecage  //步驟一
2010/10/16  22:04            24,120 sqlite3
2010/10/16  22:04            26,264 su                  //步驟二
2010/11/04  21:21           379,392 SuperOneClick.exe
2010/10/16  22:04           196,521 Superuser.apk       //步驟三

手機USB調(diào)試方法連接好電腦后,在電腦上運行SuperOneClick.exe,在彈出的
界面上,點擊Root按鈕,便開始了Root權(quán)限提取的自動操作!

其實它的步驟是這樣的:

步驟一:將rageagainstthecage文件存放在手機/data/local/tmp下,并執(zhí)行
——————————————————————————–

1) 將文件放在/data/local/tmp下,其他目錄無法執(zhí)行。命令如下:
F:/Own/Phone/Samsung/Tools/SuperOneClick>adb push rageagainstthecage /data/local/tmp

2) 使用adb shell,修改rageagainstthecage文件權(quán)限
F:/Own/Phone/Samsung/Tools/SuperOneClick>adb shell
$ cd /data/local/tmp
cd /data/local/tmp
$ chmod 777 rageagainstthecage

3) 使用adb shell,運行rageagainstthecage
$ ./rageagainstthecage

[*] CVE-2010-EASY Android local root exploit (C) 2010 by 743C

[*] checking NPROC limit …
[+] RLIMIT_NPROC={2410, 2410}
[*] Searching for adb …
[+] Found adb as PID 19374
[*] Spawning children. Dont type anything and wait for reset!
[*]
[*] If you like what we are doing you can send us PayPal money to
[*] 7-4-3-C@web.de so we can compensate time, effort and HW costs.
[*] If you are a company and feel like you profit from our work,
[*] we also accept donations > 1000 USD!
[*]
[*] adb connection will be reset. restart adb server on desktop and re-login.
$

此時退出shell,再次使用adb shell,會發(fā)現(xiàn)提示符為#,已經(jīng)在電腦Shell
上獲取了Root權(quán)限。如果不是#,重復執(zhí)行(./rageagainstthecage),
直到提示#。

F:/Own/Phone/Samsung/Tools/SuperOneClick>adb shell
#

步驟二:將/system修改為可讀寫,把su復制到/system/bin/
——————————————————————————–

1)上步驟一成功出現(xiàn)的#號提示符下,修改/system
# mount -o remount rw /system
#

2)另開一個命令行窗口,復制su至/system/bin
F:/Own/Phone/Samsung/Tools/SuperOneClick>adb push su /system/bin

su這個文件的功能,便是實現(xiàn):普通用戶至root超級用戶的權(quán)限切換!

步驟三:將授權(quán)管理的標準Android軟件包(Superuser.apk)復制到手機并安裝
——————————————————————————–

這個過程很簡單,不再贅述,就是adb push與adb install。授權(quán)管理其實
就是管理哪些程序能夠使用su。也就意味著對超級用戶權(quán)限的使用進行管理。

步驟四:重啟手機
——————————————————————————–

其實就是重啟測試一下。

五、總結(jié)
在提取Root權(quán)限過程中,只有兩個重要的文件:

rageagainstthecage
su

rageagainstthecage負責直接破解獲取Root權(quán)限,然后才能修改/system/。
su如果只放在/data/local/tmp目錄下,是沒有權(quán)限運行的。

$ ls -l su
ls -l su
-rwxrwxrwx shell    shell       26264 2010-10-16 22:04 su
$ ./su
./su
Permission denied
$

所以需要把su放在/system/bin目錄下。以供以后的手機應用程序使用!
至于rageagainstthecage,su的運行原理,就不是本文現(xiàn)在討論的問題了。

This entry was written by sense, posted onAugust 5, 2011 at 20:43, filed under Android and tagged Android. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback: Trackback URL.
[轉(zhuǎn)貼] ubuntu下調(diào)試android手機,并進入手機shell終端

android 手機/平板大行其道的今天,獲得 root 權(quán)限成了大家關注的話題。

據(jù)我所知,需要獲得 root 權(quán)限的嵌入式操作系統(tǒng),只有 ios 和 android。其中 ios 稱為越獄,隨著 ios 的發(fā)布,有眾多高手開發(fā)了相應的傻瓜越獄工具。但是 android 應用非常廣泛,卻沒有統(tǒng)一的技術支持,所以只能由用戶自己進行權(quán)限破解。因為 android 的內(nèi)核是 linux,而 linux 中 root 擁有至高無上的權(quán)限,所以一時間獲取 root 權(quán)限也成了很多非 linuxer 關注的話題。
一鍵獲取 android root 權(quán)限: Unviersal Androod (不適用所有機型)

為什么要獲得 root 權(quán)限呢?

其實日常應用并不需要 root 權(quán)限,但是由于一些 android 的限制,我們必須擁有 root 權(quán)限才能:

  • 下載收費軟件

  • 修改系統(tǒng)文件

  • 替換 hosts 文件

  • 截圖

  • 等等 …

連截圖都要 root 權(quán)限……(記得 ios 是 home+power 吧?)

消歧

使用 adb 連接到設備獲得的 root 權(quán)限并不是 設備所擁有的 root。

也就是說,連接設備成功后,我們對設備的系統(tǒng)具有了 root 權(quán)限,而設備系統(tǒng)自身并沒有 root 權(quán)限。例如您在 market 看到 need rooted device 字樣,那就是意味著您的設備系統(tǒng)也具有 root 權(quán)限。通常來說,root 指設備自身可以執(zhí)行 su 并獲得 root 權(quán)限。

原理

adb ( android debug bridge ) 鏈接設備,并使用具有 root 權(quán)限的 adb 修改/替換設備 su 文件,從而具有 root 權(quán)限。

前期準備

  • 訪問 http://developer./sdk/index.html (need proxy),獲取 adb 工具(需要下載 sdk,windows 還需額外下載 usb 驅(qū)動);

  • 開啟您的 android 設備,并執(zhí)行如下操作: settings — application — development, 勾選usb debugging;

  • 創(chuàng)建 

    DE>/etc/udev/rules.d/51-android.rules 文件,內(nèi)容如下:

    DE>

ubuntu:

1
2
DE>SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4",             MODE="0666"DE>
DE>SUBSYSTEM=="usb_device", SYSFS{idVendor}=="0bb4",             MODE="0666"DE>

arch:

1
2
3
DE>SUBSYSTEM==”usb”, SYSFS{idVendor}==”0bb4″, MODE=”0666″DE>
DE>SUBSYSTEM==”usb”,ATTR{idVendor}==”0bb4″,ATTR{idProduct}==”0c02″,SYMLINK+=”android_adb”DE>
DE>SUBSYSTEM==”usb”,ATTR{idVendor}==”0bb4″,ATTR{idProduct}==”0c01″,SYMLINK+=”android_fastboot”DE>

其中 USB Vendor IDs 可以在 這里 查到。

更改文件權(quán)限:

1
DE>chmodDE> DE>a+rx DE>DE>/etc/udev/rulesDE>DE>.dDE>DE>/50-androidDE>DE>.rulesDE>

重新加載 udev 規(guī)則:

1
DE>udevadm control –reload-rulesDE>
  • 下載越獄軟件包,并把 su 拷貝到 adb/tools 內(nèi)

  • 開始~

    插入 usb 數(shù)據(jù)線,然后打開終端,進入 adb/tools 目錄,執(zhí)行

    1
    DE>adb devicesDE>

    Android adb devices顯示 ????????????    no permissions怎么辦?

    Windows:運行adb root

    Linux:
    adb kill-server
    sudo adb root

    此時顯示為:

    List of devices attached 0123456789ABCDEF    device

  • 成功列出已連接的設備后,執(zhí)行

    1
    2
    3
    4
    5
    6
    7
    DE>adb shell DE>DE>mvDE> DE>/system/xbin/suDE> DE>/system/xbin/osuDE>      DE># 備份原 su 文件DE>
    DE>adb push DE>DE>suDE> DE>/system/xbinDE>      DE># 把 adb/tools 的 su 文件 推送到 android設備 /system/xbinDE>
    DE>adb shell DE>DE>rmDE> DE>/system/bin/suDE>      DE># 移除其他的 su 文件DE>
    DE>adb shell DE>DE>lnDE> DE>-s DE>DE>/system/xbin/suDE> DE>/system/bin/suDE>      DE># 軟鏈 suDE>
    DE>adb shell DE>DE>chmodDE> DE>6755 DE>DE>/system/xbin/suDE>       DE># 變更權(quán)限D(zhuǎn)E>
    DE>adb shell DE>DE>syncDE>      DE># 同步所有緩存中的文件DE>
    DE>adb shell reboot      DE>DE># 重啟 android 設備DE>

    (您需要根據(jù)您的設備和設置變更執(zhí)行的路徑)

    等待設備重啟完成后,可以在 adb shell 模式輸入:su(回車),會出現(xiàn)su: access granted, courtesy of www.magicandroidapps.com #等提示,代表成功了。

    現(xiàn)在您可以使用root explorer,藍牙上網(wǎng),截圖,martket enabler等工具啦~

    為什么我不需要 root

    網(wǎng)上超多的 root 教程會讓你驚奇的發(fā)現(xiàn),ROOT好簡單哦。但是看到新手一拿到手機就馬上刷ROOT,然后再問:取了ROOT有什么用?
    我們不能完全責怪用戶,因為很多教程都沒有強調(diào)刷ROOT可能導致的嚴重后果,會危及到你手上設備的安全性。實際上,很多用戶根本不需要ROOT權(quán)限!

    在開始之前,請先問你自己以下2個問題:
    1.你有幾次細讀過菜市場里下載的軟件或者游戲的使用協(xié)議?
    2. 你有幾次看了軟件使用協(xié)議中的權(quán)限要求(full internet, gps location, read contacts等等)后會問“嗯,為什么這個游戲需要這些權(quán)限呢?”
    你是不是還是照安裝不誤呢?

    事實是,絕大多數(shù)的用戶根本不會理會 程序所 請求 的這些權(quán)限,他們會照安裝不誤。

    雖然 market 已經(jīng)通知了用戶軟件所需的權(quán)限,但這遠遠不夠。 因為用戶還是不知道這些權(quán)限和安全有什么關系。有些軟件也許沒有什么惡意,但設計的卻極其的爛。因為開發(fā)者也是人,也會犯錯。有時,程序員會選擇一個他們認為安全的協(xié)議,但實際上卻是很危險的。又或者有些惡意軟件,可以讓別人遠程清空你的手機,或者將你手機里的信息傳送回指定服務器后再清空你的手機(也許已經(jīng)有這樣的軟件了)。我以上所說的這些例子表明,即便是非ROOT權(quán)限的程序都有可能很危險,何況那些獲得ROOT權(quán)限的程序呢?

    其實,有些功能其實完全不應該需要ROOT權(quán)限的。很多用戶取得ROOT權(quán)限只是為了添加一些自己的主題,為了一些小眾的需求而已。

    老實的說,看到越來越多的ANDROID新手認為不ROOT就不能正常工作,讓我感到很沮喪。(via)

    參考資料

    http://developer./guide/developing/device.html

    http://www./2009/08/22/archlinux-android-adb-recognize-device/

    http:///blog/android_cupcake_root.html

    http://bbs./thread-652917-1-1.html

    https://www./blog/2010/12/17/android-root-on-linux/

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多