簡單小木馬脫殼

  1. 一個小木馬脫殼  請虛擬機下調試 相關文件見附件 未知殼相當簡單 但是典型 有stolen code和overlay   只是練習脫殼 所以沒有分析木馬
  2. 初次實戰 一路F8
  3. 載入:
  4. 00410336 > $  57            PUSH EDI
  5. 00410337   .  8BFC          MOV EDI,ESP
  6. 00410339   .  83EC 26       SUB ESP,26
  7. 0041033C   .  C74424 0E 000>MOV DWORD PTR SS:[ESP+E],0
  8. 00410344   >  C74424 06 FB6>MOV DWORD PTR SS:[ESP+6],DC8A65FB       ;解密key
  9. 0041034C   .  C74424 02 000>MOV DWORD PTR SS:[ESP+2],0
  10. 00410354   .  BE D5034100   MOV ESI,1.004103D5          ;解密起始地址
  11. 00410359   .  897424 12     MOV DWORD PTR SS:[ESP+12],ESI
  12. 0041035D   >  EB 00         JMP SHORT 1.0041035F
  13. 0041035F   >  BE 7A210000   MOV ESI,217A
  14. 00410364   .  03F7          ADD ESI,EDI
  15. 00410366   .  2BF4          SUB ESI,ESP                             ;esi + esp + (esp-26h) = esi + 26h
  16. 00410368   .  397424 0E     CMP DWORD PTR SS:[ESP+E],ESI            ;[esp+e]計數器
  17. 0041036C   .  74 02         JE SHORT 1.00410370
  18. 0041036E   .  EB 0C         JMP SHORT 1.0041037C
  19. 00410370   >  8B7424 12     MOV ESI,DWORD PTR SS:[ESP+12]           ;[esp+e] == esi時 纔開始解密  
  20. 00410374   .  8A6424 06     MOV AH,BYTE PTR SS:[ESP+6]
  21. 00410378   .  2826          SUB BYTE PTR DS:[ESI],AH
  22. 0041037A   .  EB 00         JMP SHORT 1.0041037C
  23. 0041037C   >  834424 12 01  ADD DWORD PTR SS:[ESP+12],1           
  24. 00410381   .  C16C24 06 02  SHR DWORD PTR SS:[ESP+6],2
  25. 00410386   .  C16C24 06 02  SHR DWORD PTR SS:[ESP+6],2
  26. 0041038B   .  C16C24 06 02  SHR DWORD PTR SS:[ESP+6],2
  27. 00410390   .  C16C24 06 02  SHR DWORD PTR SS:[ESP+6],2              ;右移8位  即右移一個字節
  28. 00410395   .  834424 02 01  ADD DWORD PTR SS:[ESP+2],1
  29. 0041039A   .  837C24 02 04  CMP DWORD PTR SS:[ESP+2],4
  30. 0041039F   .  75 10         JNZ SHORT 1.004103B1
  31. 004103A1   .  C74424 06 FB6>MOV DWORD PTR SS:[ESP+6],DC8A65FB
  32. 004103A9   .  C74424 02 000>MOV DWORD PTR SS:[ESP+2],0
  33. 004103B1   >  BE 98064100   MOV ESI,1.00410698                      ;解密終止地址
  34. 004103B6   .  397424 12     CMP DWORD PTR SS:[ESP+12],ESI
  35. 004103BA   .^ 72 A1         JB SHORT 1.0041035D
  36. 004103BC   .  FF4424 0E     INC DWORD PTR SS:[ESP+E]
  37. 004103C0   .  817C24 0E 332>CMP DWORD PTR SS:[ESP+E],2333
  38. 004103C8   .^ 0F86 76FFFFFF JBE 1.00410344
  39. //整個解密過程 簡單但是干擾性極大 [esp+e]爲21A0時解密纔開始  解密過程的key爲DC8A65FB  變換過程 循環右移一個字節
  40. 00410407  |.  33C0          XOR EAX,EAX
  41. 00410409  |.  8B0424        MOV EAX,DWORD PTR SS:[ESP]               ;kernel裏的一個地址送eax
  42. 0041040C  |.  66:33C0       XOR AX,AX
  43. 0041040F  |.  68 FFFF0000   PUSH 0FFFF                               ;函數名HASH值入棧
  44. 00410414  |.  68 B674755D   PUSH 5D7574B6                            ;GetProcAddress
  45. 00410419  |.  68 2207E471   PUSH 71E40722                            ;LoadLibraryA
  46. 0041041E  |.  68 80EFF815   PUSH 15F8EF80                            ;VirtualProtect
  47. 00410423  |.  68 EC5863D6   PUSH D66358EC                            ;ExitProcess
  48. 00410428  |.  8BFC          MOV EDI,ESP                              ;EDI 用來定位  堆棧 
  49. 0041042A  |>  66:8138 4D5A  /CMP WORD PTR DS:[EAX],5A4D              ;PE
  50. 0041042F  |.  75 13         |JNZ SHORT 1.00410444
  51. 00410431  |.  8B50 3C       |MOV EDX,DWORD PTR DS:[EAX+3C]
  52. 00410434  |.  81FA 00100000 |CMP EDX,1000
  53. 0041043A  |.  77 08         |JA SHORT 1.00410444
  54. 0041043C  |.  66:813C10 504>|CMP WORD PTR DS:[EAX+EDX],4550          ;MZ
  55. 00410442  |.  74 07         |JE SHORT 1.0041044B
  56. 00410444  |>  2D 00000100   |SUB EAX,10000                           ;  UNICODE "ALLUSERSPROFILE=C:/Documents and Settings/All Users"
  57. 00410449  |.^ EB DF         /JMP SHORT 1.0041042A
  58. //尋找kernel 基址
  59. 0041044B  |> /50            PUSH EAX                                 ;  kernel32.7C800000
  60. 0041044C  |.  8B7410 78     MOV ESI,DWORD PTR DS:[EAX+EDX+78]        ;  定位到DataDirectory[0].VirtualAddress
  61. 00410450  |.  03F0          ADD ESI,EAX                              ;  定位到導出表
  62. 00410452  |.  83C6 18       ADD ESI,18                               ;IMAGE_EXPORT_DIRECTORY.NumberOfNames
  63. 00410455  |.  93            XCHG EAX,EBX
  64. 00410456  |.  AD            LODS DWORD PTR DS:[ESI]
  65. 00410457  |.  50            PUSH EAX                                 ;IMAGE_EXPORT_DIRECTORY.NumberOfNames入棧
  66. 00410458  |.  AD            LODS DWORD PTR DS:[ESI]
  67. 00410459  |.  50            PUSH EAX                                 ;IMAGE_EXPORT_DIRECTORY.AddressOfFunctions入棧
  68. 0041045A  |.  AD            LODS DWORD PTR DS:[ESI]
  69. 0041045B  |.  50            PUSH EAX                                 ;IMAGE_EXPORT_DIRECTORY.AddressOfNames入棧
  70. 0041045C  |.  03C3          ADD EAX,EBX
  71. 0041045E  |.  50            PUSH EAX             ;IMAGE_EXPORT_DIRECTORY.AddressOfNames+ImageBase入棧
  72. 0041045F  |.  AD            LODS DWORD PTR DS:[ESI]                  
  73. 00410460  |.  50            PUSH EAX             ;IMAGE_EXPORT_DIRECTORY.AddressOfNameOrdinals入棧
  74. 00410461  |.  8BEC          MOV EBP,ESP                              ;EBP指向IMAGE_EXPORT_DIRECTORY.AddressOfNameOrdinals
  75. 00410463  |>  8B4D 10       /MOV ECX,DWORD PTR SS:[EBP+10]           ;IMAGE_EXPORT_DIRECTORY.NumberOfNames
  76. 00410466  |.  33D2          |XOR EDX,EDX
  77. 00410468  |>  8B75 04       |/MOV ESI,DWORD PTR SS:[EBP+4]           ;IMAGE_EXPORT_DIRECTORY.AddressOfNames+ImageBase
  78. 0041046B  |.  8B36          ||MOV ESI,DWORD PTR DS:[ESI]             ;ESI 爲 函數名的起始地址RVA
  79. 0041046D  |.  03F3          ||ADD ESI,EBX                            ;得到函數名地址VA
  80. 0041046F  |.  33C0          ||XOR EAX,EAX                            
  81. 00410471  |.  50            ||PUSH EAX
  82. 00410472  |>  C1C8 07       ||/ROR EAX,7
  83. 00410475  |.  310424        |||XOR DWORD PTR SS:[ESP],EAX
  84. 00410478  |.  AC            |||LODS BYTE PTR DS:[ESI]
  85. 00410479  |.  84C0          |||TEST AL,AL
  86. 0041047B  |.^ 75 F5         ||/JNZ SHORT 1.00410472                  ;函數名HASH           
  87. 0041047D  |.  58            ||POP EAX
  88. 0041047E  |.  57            ||PUSH EDI
  89. 0041047F  |>  813F FFFF0000 ||/CMP DWORD PTR DS:[EDI],0FFFF          ;函數是否 地址都找到  找到就跳
  90. 00410485  |.  74 09         |||JE SHORT 1.00410490
  91. 00410487  |.  3B07          |||CMP EAX,DWORD PTR DS:[EDI]            ;比較函數名HASH值
  92. 00410489  |.  74 0F         |||JE SHORT 1.0041049A
  93. 0041048B  |.  83C7 04       |||ADD EDI,4
  94. 0041048E  |.^ EB EF         ||/JMP SHORT 1.0041047F
  95. 00410490  |>  5F            ||POP EDI
  96. 00410491  |.  8345 04 04    ||ADD DWORD PTR SS:[EBP+4],4             ;移到下一個函數名起始地址
  97. 00410495  |.  42            ||INC EDX
  98. 00410496  |.^ E2 D0         |/LOOPD SHORT 1.00410468
  99. 00410498  |.  EB 2C         |JMP SHORT 1.004104C6
  100. 0041049A  |>  D1E2          |SHL EDX,1
  101. 0041049C  |.  8B4D 00       |MOV ECX,DWORD PTR SS:[EBP]              ;IMAGE_EXPORT_DIRECTORY.AddressOfNameOrdinals
  102. 0041049F  |.  03CB          |ADD ECX,EBX                             ;IMAGE_EXPORT_DIRECTORY.AddressOfNameOrdinals+IMAGEBASE
  103. 004104A1  |.  03CA          |ADD ECX,EDX                             ;得到特定函數 序號地址
  104. 004104A3  |.  8B09          |MOV ECX,DWORD PTR DS:[ECX]              ;得到函數序號
  105. 004104A5  |.  81E1 FFFF0000 |AND ECX,0FFFF                          
  106. 004104AB  |.  8B55 0C       |MOV EDX,DWORD PTR SS:[EBP+C]            ;IMAGE_EXPORT_DIRECTORY.AddressOfFunctions
  107. 004104AE  |.  03D3          |ADD EDX,EBX                             ;IMAGE_EXPORT_DIRECTORY.AddressOfFunctions+IAMGEBASE
  108. 004104B0  |.  C1E1 02       |SHL ECX,2                               
  109. 004104B3  |.  03D1          |ADD EDX,ECX                             
  110. 004104B5  |.  8B12          |MOV EDX,DWORD PTR DS:[EDX]              
  111. 004104B7  |.  03D3          |ADD EDX,EBX                             ;得到函數VA
  112. 004104B9  |.  8917          |MOV DWORD PTR DS:[EDI],EDX              ;存放函數地址
  113. 004104BB  |.  8B4D 08       |MOV ECX,DWORD PTR SS:[EBP+8]
  114. 004104BE  |.  03CB          |ADD ECX,EBX
  115. 004104C0  |.  894D 04       |MOV DWORD PTR SS:[EBP+4],ECX
  116. 004104C3  |.  5F            |POP EDI
  117. 004104C4  |.^ EB 9D         /JMP SHORT 1.00410463
  118. //想起failwest的shellcode。。。。。 
  119. 004104C6  |> /83EF 04       SUB EDI,4
  120. 004104C9  |.  8BE7          MOV ESP,EDI
  121. 004104CB  |.  8B5C24 08     MOV EBX,DWORD PTR SS:[ESP+8]
  122. 004104CF  |.  8BFC          MOV EDI,ESP
  123. 004104D1  |.  83EF 04       SUB EDI,4
  124. 004104D4  |.  57            PUSH EDI
  125. 004104D5  |.  6A 40         PUSH 40                                  ;PAGE_EXECUTE_READWRITE
  126. 004104D7  |.  68 00100000   PUSH 1000
  127. 004104DC  |.  68 00004000   PUSH 1.00400000
  128. 004104E1  |.  FFD3          CALL EBX                                 ;  VirtualProtect修改PE頭屬性爲可讀可寫可執行
  129. 004104E3  |.  BF 00004000   MOV EDI,1.00400000                       ;IMAGEBASE
  130. 004104E8  |.  037F 3C       ADD EDI,DWORD PTR DS:[EDI+3C]            ;IMAGE_NT_HEADER
  131. 004104EB  |.  C787 A0000000>MOV DWORD PTR DS:[EDI+A0],12000          ;重定位表IMAGE_DIRECTORY_ENTRY_BASERELOC.VirtualAddress
  132. 004104F5  |.  C787 A4000000>MOV DWORD PTR DS:[EDI+A4],11E4           ;IMAGE_DIRECTORY_ENTRY_BASERELOC.Size
  133. 004104FF  |.  C787 80000000>MOV DWORD PTR DS:[EDI+80],0              ;IMAGE_DIRECTORY_ENTRY_IMPORT.VirtualAddress清空了導入表偏移
  134. 00410509  |.  C787 84000000>MOV DWORD PTR DS:[EDI+84],0              ;IMAGE_DIRECTORY_ENTRY_IMPORT.Size
  135. 00410513  |.  8BD7          MOV EDX,EDI                              ;IMAGE_NT_HEADER                          
  136. 00410515  |.  83C2 18       ADD EDX,18                               ;IMAGE_OPTIONAL_HEADER32
  137. 00410518  |.  33C9          XOR ECX,ECX
  138. 0041051A  |.  66:8B4F 14    MOV CX,WORD PTR DS:[EDI+14]              ;SizeOfOptionalHeader
  139. 0041051E  |.  03D1          ADD EDX,ECX                              ;定位到節表IMAGE_SECTION_HEADER
  140. 00410520  |.  33C9          XOR ECX,ECX
  141. 00410522  |>  8B72 0C       /MOV ESI,DWORD PTR DS:[EDX+C]            ;IMAGE_SECTION_HEADER.VirtualAddress
  142. 00410525  |.  81C6 00004000 |ADD ESI,1.00400000                      ;IMAGE_SECTION_HEADER.VirtualAddress+IMAGEBASE
  143. 0041052B  |.  60            |PUSHAD
  144. 0041052C  |.  8BFC          |MOV EDI,ESP
  145. 0041052E  |.  83EF 04       |SUB EDI,4
  146. 00410531  |.  57            |PUSH EDI
  147. 00410532  |.  6A 40         |PUSH 40
  148. 00410534  |.  FF72 08       |PUSH DWORD PTR DS:[EDX+8]               ;IMAGE_SECTION_HEADER.VirtualSize
  149. 00410537  |.  56            |PUSH ESI
  150. 00410538  |.  FFD3          |CALL EBX                                ;VirtualProtect
  151. 0041053A  |.  61            |POPAD
  152. 0041053B  |.  83C2 28       |ADD EDX,28
  153. 0041053E  |.  41            |INC ECX
  154. 0041053F  |.  81F9 03000000 |CMP ECX,3              
  155. 00410545  |.^ 72 DB         /JB SHORT 1.00410522                     ;將PE文件前3個節屬性變爲可讀可寫可執行
  156. 00410547  |.  83EA 28       SUB EDX,28                               ;定位到第3個節的節表
  157. 0041054A  |.  8B42 0C       MOV EAX,DWORD PTR DS:[EDX+C]             ;IMAGE_SECTION_HEADER.VirtualAddress 
  158. 0041054D  |.  0342 10       ADD EAX,DWORD PTR DS:[EDX+10]            ;+ IMAGE_SECTION_HEADER.SizeOfRawData
  159. 00410550  |.  05 00004000   ADD EAX,1.00400000                       ;定位到節空隙
  160. 00410555  |.  83C0 64       ADD EAX,64
  161. 00410558  |.  60            PUSHAD
  162. 00410559  |.  8BF8          MOV EDI,EAX
  163. 0041055B  |.  BE D5034100   MOV ESI,1.004103D5                       ;首次解密的起始地址
  164. 00410560  |.  B9 98064100   MOV ECX,1.00410698                       ;首次解密的終止地址
  165. 00410565  |.  2BCE          SUB ECX,ESI
  166. 00410567  |.  F3:A4         REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
  167.                                                                      ;將殼代碼複製到節表間隙中去 想寫插入型病毒的可以參考這裏怎樣定位的
  168. 00410569  |.  61            POPAD
  169. 0041056A  |.  68 FB658ADC   PUSH DC8A65FB                            
  170. 0041056F  |.  FFE0          JMP EAX                                  ;跳
  171. 00413667   .  B9 FB658ADC   MOV ECX,DC8A65FB                         ;注意上面入棧的 再看看這裏  該殼有多種變形殼 但是都是通過 比較一個DWORD 來確定 運行流程
  172. 0041366C   .  3B0C24        CMP ECX,DWORD PTR SS:[ESP]
  173. 0041366F   .  0F84 8B010000 JE 1.00413800                            ;跳到殼的第二部分
  174. 00413675   .  B8 00000000   MOV EAX,0
  175. 00413800   > /5E            POP ESI                                  
  176. 00413801   .  05 98064100   ADD EAX,1.00410698
  177. 00413806   .  2D D5034100   SUB EAX,1.004103D5                       ;重定位殼代碼的 結束地址
  178. 0041380B   .  8BD8          MOV EBX,EAX
  179. 0041380D   .  33C0          XOR EAX,EAX
  180. 0041380F   .  B8 03000000   MOV EAX,3
  181. 00413814   .  48            DEC EAX
  182. 00413815   .  6BC0 28       IMUL EAX,EAX,28
  183. 00413818   .  2BD0          SUB EDX,EAX                              ;定位到第1個節的IMAGE_SECTION_HEADER
  184. 0041381A   .  33C9          XOR ECX,ECX
  185. 0041381C   >  8B72 0C       MOV ESI,DWORD PTR DS:[EDX+C]             ;IMAGE_SECTION_HEADER[0].VirtualAddress
  186. 0041381F   .  81C6 00004000 ADD ESI,1.00400000                       ;+IMAGEBASE
  187. 00413825   .  33C0          XOR EAX,EAX
  188. 00413827   .  8A06          MOV AL,BYTE PTR DS:[ESI]                 ;每個節的開始 都有一個結構 
  189. 00413829   .  03F0          ADD ESI,EAX
  190. 0041382B   .  60            PUSHAD
  191. 0041382C   .  8BFB          MOV EDI,EBX
  192. 0041382E   .  E8 1F000000   CALL 1.00413852                          ;解壓CALL跟進去看看
  193. {
  194.   00413852  /$  60            PUSHAD
  195.   00413853  |.  BB D218CF1F   MOV EBX,1FCF18D2
  196.   00413858  |.  B9 00000000   MOV ECX,0
  197.   0041385D  |.  BA 00000000   MOV EDX,0
  198.   00413862  |>  281E          /SUB BYTE PTR DS:[ESI],BL
  199.   00413864  |.  C1EB 08       |SHR EBX,8
  200.   00413867  |.  41            |INC ECX
  201.   00413868  |.  83F9 04       |CMP ECX,4
  202.   0041386B  |.  75 0A         |JNZ SHORT 1.00413877
  203.   0041386D  |.  BB D218CF1F   |MOV EBX,1FCF18D2
  204.   00413872  |.  B9 00000000   |MOV ECX,0
  205.   00413877  |>  46            |INC ESI
  206.   00413878  |.  42            |INC EDX
  207.   00413879  |.  83FA 08       |CMP EDX,8
  208.   0041387C  |.^ 7C E4         |JL SHORT 1.00413862
  209.   0041387E  |.  7F 05         |JG SHORT 1.00413885                 ;EDX爲8時才 解密
  210.   00413880  |.  8B46 FC       |MOV EAX,DWORD PTR DS:[ESI-4]        ;解密後的[ESI-4]代表 需解壓的代碼 終止地址
  211.   00413883  |.  03C6          |ADD EAX,ESI
  212.   00413885  |>  3BF0          |CMP ESI,EAX
  213.   00413887  |.^ 7C D9         /JL SHORT 1.00413862
  214.   00413889  |.  61            POPAD  
  215. //下面是解壓過程 代碼不貼了
  216. }
  217. 每個節的第1個字節 代表需解密的代碼在節中偏移,解密後的代碼的第2個DWORD值代表需解壓的代碼的大小
  218. 導入表在第3個節中 第3次解壓將導入表破壞  
  219. 00413833   .  8B0E          MOV ECX,DWORD PTR DS:[ESI]
  220. 00413835   .  8BFE          MOV EDI,ESI
  221. 00413837   .  2BF8          SUB EDI,EAX
  222. 00413839   .  8BF3          MOV ESI,EBX
  223. 0041383B   .  F3:A4         REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI];將解壓後的代碼複製回原地
  224. 0041383D   .  61            POPAD
  225. 0041383E   .  83C2 28       ADD EDX,28
  226. 00413841   .  41            INC ECX
  227. 00413842   .  81F9 03000000 CMP ECX,3
  228. 00413848   .^ 72 D2         JB SHORT 1.0041381C                      ;循環解壓3個節
  229. 0041384A   .  B8 2D704000   MOV EAX,1.0040702D
  230. 0041384F   .  FFD0          CALL EAX                                 ;進入OEP
  231. 00413851   .  C3            RETN
  232. 簡便方法:該殼 在最後解壓3個節 並破壞原IAT  所以在原IAT 下硬件寫入斷點 就可停在0041383B  往下再走幾步就到
  233. OEP了
  234. 修復IAT:整個殼 雖然清0了導入表偏移並破壞了導入表結構  但是該導入表是僞導入表 無論是殼 還是木馬本身都跟該導入表中函數無關   dump後  importfix 檢測到導入表但是無導入函數  直接運行後錯誤  所以仔細跟了下 是堆棧引起的 寫了個腳本修復了下  運行後 dump  可以直接運行
  235. 腳本:
  236. var iataddress
  237. var mem
  238. var xxx
  239. var org_esp
  240. var oep
  241. var yyy
  242. gmi eip, IDATATABLE
  243. mov iataddress, $RESULT
  244. bphws iataddress, "w"
  245. run
  246. bphwcall
  247. findop eip, #ffd0#
  248. bp $RESULT
  249. run
  250. bc eip
  251. sti
  252. msg "到達oep,開始修補堆棧,修補後會改變OEP"
  253. mov oep, eip
  254. alloc 1000
  255. mov mem, $RESULT
  256. mov xxx, mem
  257. mov org_esp, esp
  258. @continue:
  259. add esp, 4
  260. cmp [esp], 0000ffff
  261. jnz @continue
  262. @next:
  263. mov [xxx], #68#,1
  264. inc xxx
  265. mov [xxx], [esp]
  266. sub esp,4
  267. add xxx,4
  268. cmp esp, org_esp
  269. jae @next
  270. mov [xxx], #ff25#, 2
  271. add xxx, 2
  272. mov [xxx], iataddress
  273. add xxx, 4
  274. sub xxx, mem
  275. mov [iataddress], oep
  276. add iataddress, 4
  277. mov eip, iataddress
  278. mov yyy, mem
  279. @orz:
  280. cmp xxx, 0
  281. je @exit
  282. mov [iataddress], [yyy], 1
  283. inc iataddress
  284. inc yyy
  285. dec xxx
  286. jmp @orz
  287. @exit:
  288. msg "修補完成,可以dump"
  289. free mem
  290. ret
  291. overlay處理:直接把原文件的overlay貼到 脫殼後的文件末尾就可以了
  292. 注意下:
  293. 1:我的虛擬機裏XP版本過老  木馬運行後  系統崩潰
  294. 可能是XP版本問題,換了個新版本的XP  運行正常  但是因爲新版本的XP  沒有弄測試
  295. 環境 所以不能肯定
  296. 2:在某個系統下調試 就不要換其它系統,修復堆棧裏存放的函數地址  是直接從堆棧中讀取的而不是 自己寫動態獲取過程得到的 所以 肯定不能跨系統版本運行 腳本運行過程中 會有個斷點下在數據段的警告 確定就可以了
  297. 3:木馬有危險,切記虛擬機下調試 稍微看了下 沒有新技術 以後有時間再仔細分析 字符串都是加密的 不停的拷貝自身。。
  298. 附件下載:http://bbs.pediy.com/showthread.php?t=79532
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章