錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務,錦州廣廈維修電腦,公司IT外包服務
topFlag1 設為首頁
topFlag3 收藏本站
 
maojin003 首 頁 公司介紹 服務項目 服務報價 維修流程 IT外包服務 服務器維護 技術文章 常見故障
錦州市廣廈電腦維修|上門維修電腦|上門做系統|0416-3905144熱誠服務技術文章
D-RecoveryForExfat破解過程,注冊算法追蹤

作者: 肥牛  日期:2017-05-31 06:56:31   來源: 本站整理

破解軟件:D-RecoveryForExfat
破解工具:OD(調試用),DELPHI7(寫測試用例)
===================================華麗的分割線====================================
D-RecoveryForExfat這個軟件,運行起來以后,首先會彈出注冊窗口請你注冊,不注冊的話,關于頁面會顯示未注冊的提示。
 
 

注冊碼如果輸入不正確的話,會有提示對話框。
 
有這個提示對話框,相對而言使用OD會更方便一些。

首先還是檢查一下是否有殼。
 

顯示是C++的程序,沒有殼,那就應該好辦了。使用OD加載,查找字符串:
 
很輕易地就定位到字符串了,雙擊打開代碼部分:
 
好,OD已經加載了我們要破解的程序了,我的破解步驟也將慢慢展開。
因為這個軟件耗費了我兩天的假期時間,都是心血啊。
第一部分  猜測

字符串對應的就是提示注冊錯誤的部分,走到這里應該已經判斷完注冊碼了,我們往上看。
 
從這里的代碼可以分析出來,注冊碼的長度必須是0x1C,也就是28個字節長度。
我們在00404D32處,按下F2下斷點,然后Ctrl+F2重新運行軟件。在注冊碼框里,輸入28個字節的字符,輸入“1234567890ABCDEFGHIJKLM

NOPQR”。點擊注冊按鈕后,OD截獲中斷
注意一下右下角的堆棧區,有兩個字符串比較醒目
BV2310db828-90c10a0BVXOHRADDSIK      ---暫時記做CodeA

LMTgGa8779yDQvIH                                  ---暫時記做CodeB
F8單步跟蹤,有兩段循環代碼,你就會發現,程序把我們剛才輸入的那一長串注冊碼處理成了兩部分,“24680BDFHJLN”和“13579ACEGIKM”。

沒錯,奇數位和偶數位分開。
再繼續F8單步跟蹤,走到00404DE2的時候,不要再走了。
 
這里是個CALL,后面跟一個test eax, eax,再后面就是注冊失敗的提示。根據經驗判斷,這個CALL是去校驗注冊碼的。
我們先不著急跟進去,看一下現場,EAX里是“13579ACEGIKMOPQR”,看出來了沒有,就是剛才我們輸入的注冊碼的1、3、5……23位,

再加上注冊碼的后四位。然后堆棧里還有一個同樣長度的字符串,就是剛才那個CodeB。這個CALL是不是就是比較這兩個字符串的呢?
試一下,CTRL+F2重新運行,把我們剛才輸入的注冊碼1234567890ABCDEFGHIJKLMNOPQR,對應的位置換成LMTgGa8779yDQvIH,

也就是L2M4T6g8G0aB8D7F7H9JyLDNQvIH,再注冊一遍。呃,注冊成功了……注冊成功了……竟然注冊成功了?
我靠,這么簡單,你逗我玩啊?
我還沒見到BOSS呢,我還沒拿到裝備呢,就這么結束了?好不甘心啊。可是,等等,那個LMTgGa8779yDQvIH是怎么來的?得研究明白才行啊!
第二部分 跟蹤


從剛才輸入的注冊碼就可以看出來,實際上24680BDFHJLN那些偶數位其實根本沒用上。隨便輸點兒什么都行。那接下來我們就要去研究LMTgGa8779yDQvIH是怎么來的了。
這里就跟大家說句抱歉了,因為我也是初學,OD用的不太熟,所以我只能在出現這個碼的地址上下硬件斷點,這樣一點兒一點兒,終于找到了下面的這段代碼:

[Asm] 純文本查看 復制代碼
001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
004048FA  |> \8D47 1C       lea eax,dword ptr ds:[edi+0x1C]
004048FD  |.  25 7F000080   and eax,0x8000007F
00404902  |.  79 05         jns short D-Recove.00404909
00404904  |.  48            dec eax
00404905  |.  83C8 80       or eax,-0x80
00404908  |.  40            inc eax
00404909  |>  8D4F 1D       lea ecx,dword ptr ds:[edi+0x1D]
0040490C  |.  81E1 7F000080 and ecx,0x8000007F
00404912  |.  884424 30     mov byte ptr ss:[esp+0x30],al
00404916  |.  79 05         jns short D-Recove.0040491D
00404918  |.  49            dec ecx
00404919  |.  83C9 80       or ecx,-0x80
0040491C  |.  41            inc ecx
0040491D  |>  8D47 24       lea eax,dword ptr ds:[edi+0x24]
00404920  |.  25 7F000080   and eax,0x8000007F
00404925  |.  884C24 31     mov byte ptr ss:[esp+0x31],cl
00404929  |.  79 05         jns short D-Recove.00404930
0040492B  |.  48            dec eax
0040492C  |.  83C8 80       or eax,-0x80
0040492F  |.  40            inc eax
00404930  |>  8D4F 37       lea ecx,dword ptr ds:[edi+0x37]
00404933  |.  81E1 7F000080 and ecx,0x8000007F
00404939  |.  884424 32     mov byte ptr ss:[esp+0x32],al
0040493D  |.  79 05         jns short D-Recove.00404944
0040493F  |.  49            dec ecx
00404940  |.  83C9 80       or ecx,-0x80
00404943  |.  41            inc ecx
00404944  |>  83C7 5C       add edi,0x5C
00404947  |.  8BC7          mov eax,edi
00404949  |.  25 7F000080   and eax,0x8000007F
0040494E  |.  884C24 33     mov byte ptr ss:[esp+0x33],cl
00404952  |.  79 05         jns short D-Recove.00404959
00404954  |.  48            dec eax
00404955  |.  83C8 80       or eax,-0x80
00404958  |.  40            inc eax
00404959  |>  8D8B 9A000000 lea ecx,dword ptr ds:[ebx+0x9A]
0040495F  |.  81E1 7F000080 and ecx,0x8000007F
00404965  |.  884424 34     mov byte ptr ss:[esp+0x34],al
00404969  |.  79 05         jns short D-Recove.00404970
0040496B  |.  49            dec ecx
0040496C  |.  83C9 80       or ecx,-0x80
0040496F  |.  41            inc ecx
00404970  |>  8D83 F5000000 lea eax,dword ptr ds:[ebx+0xF5]
00404976  |.  25 7F000080   and eax,0x8000007F
0040497B  |.  884C24 35     mov byte ptr ss:[esp+0x35],cl
0040497F  |.  79 05         jns short D-Recove.00404986
00404981  |.  48            dec eax
00404982  |.  83C8 80       or eax,-0x80
00404985  |.  40            inc eax
00404986  |>  8D8B 74010000 lea ecx,dword ptr ds:[ebx+0x174]
0040498C  |.  81E1 7F000080 and ecx,0x8000007F
00404992  |.  884424 36     mov byte ptr ss:[esp+0x36],al
00404996  |.  79 05         jns short D-Recove.0040499D
00404998  |.  49            dec ecx
00404999  |.  83C9 80       or ecx,-0x80
0040499C  |.  41            inc ecx
0040499D  |>  8D83 1D020000 lea eax,dword ptr ds:[ebx+0x21D]
004049A3  |.  25 7F000080   and eax,0x8000007F
004049A8  |.  884C24 37     mov byte ptr ss:[esp+0x37],cl
004049AC  |.  79 05         jns short D-Recove.004049B3
004049AE  |.  48            dec eax
004049AF  |.  83C8 80       or eax,-0x80
004049B2  |.  40            inc eax
004049B3  |>  81C3 F6020000 add ebx,0x2F6
004049B9  |.  81E3 7F000080 and ebx,0x8000007F
004049BF  |.  884424 38     mov byte ptr ss:[esp+0x38],al
004049C3  |.  79 05         jns short D-Recove.004049CA
004049C5  |.  4B            dec ebx
004049C6  |.  83CB 80       or ebx,-0x80
004049C9  |.  43            inc ebx
004049CA  |>  8D8A 06040000 lea ecx,dword ptr ds:[edx+0x406]
004049D0  |.  81E1 7F000080 and ecx,0x8000007F
004049D6  |.  885C24 39     mov byte ptr ss:[esp+0x39],bl
004049DA  |.  79 05         jns short D-Recove.004049E1
004049DC  |.  49            dec ecx
004049DD  |.  83C9 80       or ecx,-0x80
004049E0  |.  41            inc ecx
004049E1  |>  8D82 51050000 lea eax,dword ptr ds:[edx+0x551]
004049E7  |.  25 7F000080   and eax,0x8000007F
004049EC  |.  884C24 3A     mov byte ptr ss:[esp+0x3A],cl
004049F0  |.  79 05         jns short D-Recove.004049F7
004049F2  |.  48            dec eax
004049F3  |.  83C8 80       or eax,-0x80
004049F6  |.  40            inc eax
004049F7  |>  8D8A DE060000 lea ecx,dword ptr ds:[edx+0x6DE]
004049FD  |.  81E1 7F000080 and ecx,0x8000007F
00404A03  |.  884424 3B     mov byte ptr ss:[esp+0x3B],al
00404A07  |.  79 05         jns short D-Recove.00404A0E
00404A09  |.  49            dec ecx
00404A0A  |.  83C9 80       or ecx,-0x80
00404A0D  |.  41            inc ecx
00404A0E  |>  8D82 B3080000 lea eax,dword ptr ds:[edx+0x8B3]
00404A14  |.  25 7F000080   and eax,0x8000007F
00404A19  |.  884C24 3C     mov byte ptr ss:[esp+0x3C],cl
00404A1D  |.  79 05         jns short D-Recove.00404A24
00404A1F  |.  48            dec eax
00404A20  |.  83C8 80       or eax,-0x80
00404A23  |.  40            inc eax
00404A24  |>  8D8A D60A0000 lea ecx,dword ptr ds:[edx+0xAD6]
00404A2A  |.  81E1 7F000080 and ecx,0x8000007F
00404A30  |.  884424 3D     mov byte ptr ss:[esp+0x3D],al
00404A34  |.  79 05         jns short D-Recove.00404A3B
00404A36  |.  49            dec ecx
00404A37  |.  83C9 80       or ecx,-0x80
00404A3A  |.  41            inc ecx
00404A3B  |>  81C2 4D0D0000 add edx,0xD4D
00404A41  |.  81E2 7F000080 and edx,0x8000007F
00404A47  |.  884C24 3E     mov byte ptr ss:[esp+0x3E],cl
00404A4B  |.  79 05         jns short D-Recove.00404A52
00404A4D  |.  4A            dec edx
00404A4E  |.  83CA 80       or edx,-0x80
00404A51  |.  42            inc edx
00404A52  |>  885424 3F     mov byte ptr ss:[esp+0x3F],dl
00404A56  |.  33D2          xor edx,edx
00404A58  |.  33C9          xor ecx,ecx
00404A5A  |.  8D9B 00000000 lea ebx,dword ptr ds:[ebx]
00404A60  |>  8A4414 30     /mov al,byte ptr ss:[esp+edx+0x30]
00404A64  |.  3C 30         |cmp al,0x30
00404A66  |.  7C 04         |jl short D-Recove.00404A6C
00404A68  |.  3C 39         |cmp al,0x39
00404A6A  |.  7E 29         |jle short D-Recove.00404A95
00404A6C  |>  3C 41         |cmp al,0x41
00404A6E  |.  7C 04         |jl short D-Recove.00404A74
00404A70  |.  3C 5A         |cmp al,0x5A
00404A72  |.  7E 21         |jle short D-Recove.00404A95
00404A74  |>  3C 61         |cmp al,0x61
00404A76  |.  7C 04         |jl short D-Recove.00404A7C
00404A78  |.  3C 7A         |cmp al,0x7A
00404A7A  |.  7E 19         |jle short D-Recove.00404A95
00404A7C  |>  0FBEC0        |movsx eax,al
00404A7F  |.  8D4408 1F     |lea eax,dword ptr ds:[eax+ecx+0x1F]
00404A83  |.  25 7F000080   |and eax,0x8000007F
00404A88  |.  79 05         |jns short D-Recove.00404A8F
00404A8A  |.  48            |dec eax
00404A8B  |.  83C8 80       |or eax,-0x80
00404A8E  |.  40            |inc eax
00404A8F  |>  884414 30     |mov byte ptr ss:[esp+edx+0x30],al
00404A93  |.^ EB CB         |jmp short D-Recove.00404A60
00404A95  |>  83C1 07       |add ecx,0x7
00404A98  |.  83C2 01       |add edx,0x1
00404A9B  |.  83F9 70       |cmp ecx,0x70
00404A9E  |.^ 7C C0         \jl short D-Recove.00404A60
00404AA0  |.  8D4C24 30     lea ecx,dword ptr ss:[esp+0x30]

這段代碼的意思就是從EDI里取值,做了一番處理后形成了碼的前5位,又從EBX取值處理后形成碼的中間5位,最后從EDX里取值得出碼的最后6位。
OK,到現在,CodeB碼是怎么生成的已經知道了,但新問題又來了——EDI、EBX、EDX又是怎么得來的呢?
從這段代碼往前翻,就看到了這樣的代碼:
 
為了便于大家分析,我把代碼也貼出來:
[Asm] 純文本查看 復制代碼
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
00404839  |.  8DA424 000000>lea esp,dword ptr ss:[esp]
00404840  |>  8B4C24 18     /mov ecx,dword ptr ss:[esp+0x18]
00404844  |.  8D6E FF       |lea ebp,dword ptr ds:[esi-0x1]
00404847  |.  55            |push ebp
00404848  |.  FF15 D8134400 |call dword ptr ds:[<&MFC80.#865>]   ;  按順序取一個字符,放在AL中
0040484E  |.  0FBEC8        |movsx ecx,al                        ;  放到ECX中
00404851  |.  83C1 01       |add ecx,0x1                         ;  加1
00404854  |.  894C24 14     |mov dword ptr ss:[esp+0x14],ecx     ;  保存到intTemp14中
00404858  |.  DB4424 14     |fild dword ptr ss:[esp+0x14]        ;  轉長整型壓棧,此時ST0里是轉換后的整數
0040485C  |.  DB4424 1C     |fild dword ptr ss:[esp+0x1C]        ;  順序號也壓棧,這時ST0是順序號,ST1是那個整數
00404860  |.  DD5424 1C     |fst qword ptr ss:[esp+0x1C]         ;  把順序號再保存,但是以雙字保存
00404864  |.  DEC9          |fmulp st(1),st                      ;  ASCII碼+1 乘以位數
00404866  |.  E8 E5520300   |call D-Recove.00439B50              ;  取存儲器中的值,保存到EAX中
0040486B  |.  8B4C24 18     |mov ecx,dword ptr ss:[esp+0x18]
0040486F  |.  55            |push ebp
00404870  |.  894424 18     |mov dword ptr ss:[esp+0x18],eax
00404874  |.  FF15 D8134400 |call dword ptr ds:[<&MFC80.#865>]   ;  按順序取一個字符,放在AL中
0040487A  |.  0FBEC0        |movsx eax,al                        ;  放到EAX中
0040487D  |.  0FAF4424 14   |imul eax,dword ptr ss:[esp+0x14]    ;  乘以上面計算出的得數
00404882  |.  0FAFC6        |imul eax,esi                        ;  再乘以序號
00404885  |.  0FAFC6        |imul eax,esi                        ;  再乘以序號
00404888  |.  03C7          |add eax,edi                         ;  加上上一輪的和,初始為0
0040488A  |.  99            |cdq                                 ;  去符號
0040488B  |.  B9 A0860100   |mov ecx,0x186A0
00404890  |.  F7F9          |idiv ecx                            ;  除以0x186A0,十進制100000,余數放到EDX中
00404892  |.  8B4C24 18     |mov ecx,dword ptr ss:[esp+0x18]
00404896  |.  55            |push ebp
00404897  |.  8BFA          |mov edi,edx
00404899 >|.  FF15 D8134400 |call dword ptr ds:[<&MFC80.#865>]   ;  mfc80.#2451
0040489F  |.  0FBED0        |movsx edx,al
004048A2  |.  895424 14     |mov dword ptr ss:[esp+0x14],edx
004048A6  |.  B8 02000000   |mov eax,0x2
004048AB  |.  DB4424 14     |fild dword ptr ss:[esp+0x14]
004048AF  |.  D9E8          |fld1
004048B1  |>  A8 01         |/test al,0x1
004048B3  |.  74 02         ||je short D-Recove.004048B7
004048B5  |.  D8C9          ||fmul st,st(1)
004048B7  |>  D1E8          ||shr eax,1
004048B9  |.  74 06         ||je short D-Recove.004048C1
004048BB  |.  D9C1          ||fld st(1)
004048BD  |.  DECA          ||fmulp st(2),st
004048BF  |.^ EB F0         |\jmp short D-Recove.004048B1
004048C1  |>  DDD9          |fstp st(1)
004048C3  |.  DC4C24 1C     |fmul qword ptr ss:[esp+0x1C]        ;  ASCII碼*ASCII碼*位數
004048C7  |.  E8 84520300   |call D-Recove.00439B50              ;  取存儲器中的值
004048CC  |.  8BC8          |mov ecx,eax
004048CE  |.  8BC6          |mov eax,esi
004048D0  |.  0FAFC3        |imul eax,ebx
004048D3  |.  03C1          |add eax,ecx
004048D5  |.  99            |cdq
004048D6  |.  B9 A0860100   |mov ecx,0x186A0
004048DB  |.  F7F9          |idiv ecx
004048DD  |.  83C6 01       |add esi,0x1
004048E0  |.  897424 1C     |mov dword ptr ss:[esp+0x1C],esi
004048E4  |.  8BDA          |mov ebx,edx
004048E6  |.  8D043B        |lea eax,dword ptr ds:[ebx+edi]
004048E9  |.  99            |cdq
004048EA  |.  F7F9          |idiv ecx
004048EC  |.  3B7424 24     |cmp esi,dword ptr ss:[esp+0x24]
004048F0  |.^ 0F8E 4AFFFFFF \jle D-Recove.00404840


注意看左下角我標出來的那個字符串,也就是前面提到的CodeA。也就是說,程序用這個CodeA經過運算處理后,得到的

EDI、EBX、EDX這三個值。至于運算過程,這里寫的也很清楚了,我都已經注釋上了,很容易看懂的。
可是那個字符串BV2310db828-90c10a0BVXOHRADDSIK又是什么呢?
對這個地址使用硬件斷點也無效了,經常是在系統代碼里出不來。這可怎么辦才好?
就在我鼓搗了一整天準備放棄的時候,突然想到,我剛才在字符串查找中看到了這樣的字符串“\\.\PhysicalDrive%d”。這好像應該是DeviceIoControl函數用來取硬盤參數的。很多程序的注冊碼都是通過它來生成的。而且,它獲取到的信息字符串,字符是兩兩對調的。
好吧,去看一下我的電腦硬盤參數是什么。
 
我這個是虛擬機,所以磁盤名是VBOX HARDDISK,如果兩兩對調的話,就是BVXOH RADDSIK,哦,多么令人激動啊。那前面那個字符串就應該是我的磁盤型號了。
怎么驗證呢?只好自己編程了。還是用習慣的DELPHI7。
 
果然如此,現在所有的問題都解決了,可以寫注冊機了。
過程我就不寫了,說幾個難點吧:
1、取硬盤設備信息。使用DeviceIoControl函數可以取出來,但是在WIN10 64位系統上運行時,需要管理員權限。這顯然是不合適的,你不能說做一個注冊機還需要人家提升管理員權限。要不說DELPHI程序員省事呢,網上有現成的VCL控件MiTeC。用這個就可以輕易的獲得磁盤設備的信息。
2、磁盤字符串的組合。因為取出來的字符串是兩兩對調的,如果存在多個磁盤的情況下,字符串怎么組合才能與原軟件的組成一樣,這是個很費腦筋的事情;
3、從磁盤字符串計算EDI、EBX、EDX。匯編里的代碼轉成DELPHI語言倒是不難,主要是有些匯編指令不熟悉,不知道只做什么用的。比如movsx eax, al,換成DELPHI應該怎么寫?
4、從EDI、EBX、EDX生成CodeB時。難點還是在匯編指令上,不停地處理標記位,而且DELPHI沒有這些標記位,怎么寫才能符合原來算法的意思,搞得我頭暈。

還好,最終注冊機寫出來了。順利在虛擬機上已經實體電腦上注冊成功。
 
 

后記:
破解這個軟件,花費了我兩天的時間,這三天的假期別的都沒做,滿腦子都是這個事情。

昨天晚上睡覺前還在為獲取硬盤設備信息的事情發愁,迷迷糊糊做夢都是這個事,只睡了

三個鐘頭就爬起來繼續研究。
另外,這個軟件注冊成功后寫注冊表,也寫Windows\Win.ini文件,注冊表里的內容刪了,

軟件提示注冊無效,但是又沒有注冊窗體,等于廢掉了。把Win.ini文件里最后RegCode=那行刪掉就可以重新注冊了。



熱門文章
  • 機械革命S1 PRO-02 開機不顯示 黑...
  • 聯想ThinkPad NM-C641上電掉電點不...
  • 三星一體激光打印機SCX-4521F維修...
  • 通過串口命令查看EMMC擦寫次數和判...
  • IIS 8 開啟 GZIP壓縮來減少網絡請求...
  • 索尼kd-49x7500e背光一半暗且閃爍 ...
  • 樓宇對講門禁讀卡異常維修,讀卡芯...
  • 新款海信電視機始終停留在開機界面...
  • 常見打印機清零步驟
  • 安裝驅動時提示不包含數字簽名的解...
  • 共享打印機需要密碼的解決方法
  • 圖解Windows 7系統快速共享打印機的...
  • 錦州廣廈電腦上門維修

    報修電話:13840665804  QQ:174984393 (聯系人:毛先生)   
    E-Mail:174984393@qq.com
    維修中心地址:錦州廣廈電腦城
    ICP備案/許可證號:遼ICP備2023002984號-1
    上門服務區域: 遼寧錦州市區
    主要業務: 修電腦,電腦修理,電腦維護,上門維修電腦,黑屏藍屏死機故障排除,無線上網設置,IT服務外包,局域網組建,ADSL共享上網,路由器設置,數據恢復,密碼破解,光盤刻錄制作等服務

    技術支持:微軟等
    主站蜘蛛池模板: 无码av人妻一区二区三区四区 | 一本天堂ⅴ无码亚洲道久久| 下载天堂国产AV成人无码精品网站| 亚洲精品无码久久久久牙蜜区| 国产精品无码av天天爽| 亚洲熟妇无码AV在线播放| 人妻丰满AV无码久久不卡| 成年轻人电影www无码| 国产AV无码专区亚洲A∨毛片| 久久亚洲AV成人无码国产最大| 一本色道无码不卡在线观看| 日韩放荡少妇无码视频| 亚洲中久无码永久在线观看同| 永久免费AV无码网站在线观看| 无套中出丰满人妻无码| 永久无码精品三区在线4| 69堂人成无码免费视频果冻传媒| 亚洲av中文无码| 日韩av片无码一区二区不卡电影 | 亚洲AV无码乱码国产麻豆| 久久精品无码中文字幕| 无码精品A∨在线观看中文| 日韩a级无码免费视频| 久久久久久久久无码精品亚洲日韩| 无码性午夜视频在线观看| 波多野结衣AV无码| 成人无码Av片在线观看| 久久久精品天堂无码中文字幕 | 永久免费av无码不卡在线观看| 国产拍拍拍无码视频免费| 国产AV无码专区亚洲AV漫画| 无码精品久久一区二区三区| 国产精品无码亚洲一区二区三区| 无码国产精品一区二区免费| 久久男人Av资源网站无码软件| 东京热av人妻无码专区| 亚洲精品无码专区久久久 | 国产热の有码热の无码视频| 亚洲AV蜜桃永久无码精品| 亚洲人成无码网WWW| 国产精品无码专区在线观看|