久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

用delphi獲取主板BIOS信息

瀏覽:2日期:2024-07-05 11:53:40

1、讀取主板序列號(hào)

2、AWard Bios密碼讀取

3、讀取BIOS信息

4、獲取BIOS日期信息

=========================================

1、讀取主板序列號(hào)

uses SHA1, Base64;function GetHashedBiosInfo: string;var  SHA1Context: TSHA1Context;  SHA1Digest: TSHA1Digest;begin  // Get the BIOS data  SetString(Result, PChar(Ptr($F0000)), $10000);  // Hash the string  SHA1Init(SHA1Context);  SHA1Update(SHA1Context, PChar(Result), Length(Result));  SHA1Final(SHA1Context, SHA1Digest);  SetString(Result, PChar(@SHA1Digest), sizeof(SHA1Digest));  // Return the hash string encoded in printable characters  Result := B64Encode(Result);end;function GetBiosInfoAsText: string;var  p, q: pchar;begin  q := nil;  p := PChar(Ptr($FE000));  repeat if q <> nil then begin  if not (p^ in [#10, #13, #32..#126, #169, #184]) then begin if (p^ = #0) and (p - q >= 8) then begin  Result := Result + TrimRight(String(q)) + #13#10; end; q := nil;  end; end else  if p^ in [#33..#126, #169, #184] then q := p; inc(p);  until p > PChar(Ptr($FFFFF));  Result := TrimRight(Result);end;procedure TForm1.FormCreate(Sender: TObject);begin  Memo1.Lines.Text := GetBiosInfoAsText;end;========================2、AWard Bios密碼讀取(應(yīng)該是jingtao的文章,但是ID沒(méi)有記錄)

Unit AwardBiosPas;//Write by lovejingtao//http://www.138soft.cominterfaceuses windows,SysUtils;function My_GetBiosPassword:String;implementationfunction CalcPossiblePassword(PasswordValue: WORD): string;varI: BYTE;C: CHAR;S: string[8];beginI := 0;while PasswordValue <> 0 do  begin Inc(I); if $263 > PasswordValue then  begin if $80 > PasswordValue then  S[I] := CHAR(PasswordValue) else if $B0 > PasswordValue then  S[I] := CHAR(PasswordValue and $77) else if $11D > PasswordValue then  S[I] := CHAR($30 or (PasswordValue and $0F)) else if $114 > PasswordValue then  begin S[I] := CHAR($64 or (PasswordValue and $0F)); if '0' > S[I] then  S[I] := CHAR(BYTE(S[I]) + 8);  end else if $1C2 > PasswordValue then  S[I] := CHAR($70 or (PasswordValue and $03)) else if $1E4 > PasswordValue then  S[I] := CHAR($30 or (PasswordValue and $03)) else  begin S[I] := CHAR($70 or (PasswordValue and $0F)); if 'z' < S[I] then  S[I] := CHAR(BYTE(S[I]) - 8);  end;  end else  S[I] := CHAR($30 or (PasswordValue and $3)); PasswordValue := (PasswordValue - BYTE(S[I])) shr 2;  end;S[0] := CHAR(I);PasswordValue := I shr 1;while PasswordValue < I do  begin {this is to do because award starts calculating with the last letter} C := S[BYTE(S[0]) - I + 1]; S[BYTE(S[0]) - I + 1] := S[I]; S[I] := C; Dec(I);  end;CalcPossiblePassword := S;end;function readcmos(off: byte): byte;varvalue: byte;beginasm xor ax, ax mov al, off out 70h, al in al, 71h mov value, alend;readcmos := value;end;function My_GetBiosPassword:String;varsuperpw, userpw: word;S:String;beginif Win32Platform <> VER_PLATFORM_WIN32_NT then //不是NTbeginpchar(@superpw)[0] := char(readcmos($1C));pchar(@superpw)[1] := char(readcmos($1D));pchar(@userpw)[0] := char(readcmos($64));pchar(@userpw)[1] := char(readcmos($65));S:='超級(jí)用戶(hù)密碼為:'+CalcPossiblePassword(superpw)+#13+'用戶(hù)密碼為:'+CalcPossiblePassword(userpw);Result:=S;endelseResult:='用戶(hù)系統(tǒng)為NT,無(wú)法獲取BISO密碼!';end;end.=========================

3、讀取BIOS信息

{程序使用Windows 95/2000平臺(tái),自動(dòng)檢測(cè)系統(tǒng)類(lèi)型,然后進(jìn)行不同調(diào)用}

uses BiosHelp;procedure TForm1.Button1Click(Sender: TObject);varDump: TRomBiosDump;i: Integer;beginReadRomBios(Dump, rrbmAutomatic);for i := 1 to $000FFFFF - $000F0000 - 1 do  Memo1.Lines.Add(IntToHex(Dump[i + $000FFFFF], 2));end;(******************************************************************************** ** BIOS Help - read ROM BIOS on Windows 95/98/SE/ME/NT/2K/XP** ** Copyright (C) 2001, Nico Bendlin (nico@bendlin.de)  ** ** Compiler: Delphi 4.03/5.01/6.00 ** Version: 1.03, 2001-09-02** ********************************************************************************){ postum scriptum: sorry for the bad english, i wrote it in a hurry }unit BiosHelp;{$ALIGN ON}{$MINENUMSIZE 4}interfaceusesWindows;typePRomBiosDump = ^TRomBiosDump;TRomBiosDump = array[$000F0000..$000FFFFF] of Byte;typeTReadRomBiosMethod = (  rrbmAutomatic, { Autodetect OS type and use proper method }  rrbmGeneric,{ Use 16-bit COM program to dump the BIOS }  rrbmMemory, { Read from memory (Win9x) }  rrbmPhysical{ Read from physical memory object (WinNT) }  );function ReadRomBios(var Dump: TRomBiosDump; Method: TReadRomBiosMethod;Timeout: DWORD = INFINITE): Boolean;function GetRomBiosBuffer(const Dump: TRomBiosDump; Address: Pointer;var Buffer; BufferSize: Cardinal): Cardinal;function GetRomBiosString(const Dump: TRomBiosDump; Address: Pointer): string;function GetRomBiosLongLong(const Dump: TRomBiosDump; Address: Pointer): LONGLONG;function GetRomBiosDWord(const Dump: TRomBiosDump; Address: Pointer): DWORD;function GetRomBiosWord(const Dump: TRomBiosDump; Address: Pointer): Word;function GetRomBiosByte(const Dump: TRomBiosDump; Address: Pointer): Byte;implementation{################################################################################ ## GENERIC METHOD  ## ## Create an temporary folder, save an 16bit COM program (RomDump.com) into it, ## execute program redirected to an file (Rom.dmp, RomDump.com simply dumps the ## memory range F000:0000-F000:FFFF to STDOUT), read dump file into the buffer, ## and finally cleanup all temporary files and directories. ## ## (the function RomDumpCode is x86 specific, which i wrote to generate 16-bit ## code with the help of the 23-bit Delphi compiler, never try to execute the ## pseudo-code in your program! it will not work in 32-bit protected mode) ## ################################################################################}{ *INTERNAL* - Pseudo 16-bit code }typePRomDumpCodeInfo = ^TRomDumpCodeInfo;TRomDumpCodeInfo = (rdciStart, rdciEnd, rdciSize);function _RomDumpCode(Info: TRomDumpCodeInfo): Pointer;varCodeStart: Pointer;CodeEnd: Pointer;beginasm JMP @@End { *BEGIN* 16-bit code } { -- never use it in your program! -- } { COM which writes ROM-BIOS to StdOut }@@Start: { Dump F000:0000-F000:FFFE } XOR eDX, eDX // DS = 0xF000  ; Data segment MOV DH, 0F0h MOV DS, eDX XOR eDX, eDX // DX = 0x0000  ; Data offset XOR eCX, eCX // CX = 0xFFFF  ; Data length DEC eCX XOR eBX, eBX // BX = 0x0001  ; STDOUT (file handle) INC eBX MOV AH, 40h  // DosCall(0x40) ; INT21, DOS_WRITE_TO_HANDLE INT 21h JC @@Exit// On error exit ; AL = Error code { Dump F000:FFFF } XOR eDX, eDX // DS = 0xF000  ; Data segment MOV DH, 0F0h MOV DS, eDX XOR eDX, eDX // DX = 0xFFFF  ; Data offset DEC eDX XOR eCX, eCX // CX = 0x0001  ; Data length INC eCX MOV eBX, eCX // BX = 0x0001  ; STDOUT (file handle) MOV AH, 40h  // DosCall(0x40) ; INT21, DOS_WRITE_TO_HANDLE INT 21h JC @@Exit// On error exit ; AL = Error code MOV AL, 0 // no error ; AL = 0@@Exit: MOV AH, 4Ch  // DosCall(0x4C) ; INT21, DOS_TERMINATE_EXE INT 21h@@End: { *END* 16-bit code } MOV CodeStart, OFFSET @@Start MOV CodeEnd, OFFSET @@Endend;case Info of  rdciStart: Result := CodeStart;  rdciEnd: Result := CodeEnd;  rdciSize: Result := Pointer(Cardinal(CodeEnd) - Cardinal(CodeStart));else  Result := nil;end;end;{ *INTERNAL* - Save 16-bit code to file }function _RomDumpCodeToFile(const Filename: string): Boolean;varComFile: THandle;Size: Cardinal;beginResult := False;ComFile := CreateFile(PChar(Filename), GENERIC_WRITE, FILE_SHARE_READ, nil,  CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);if ComFile <> INVALID_HANDLE_VALUE thentry  Result := WriteFile(ComFile, _RomDumpCode(rdciStart)^, Cardinal(_RomDumpCode(rdciSize)), Size, nil) and (Size = Cardinal(_RomDumpCode(rdciSize)));  if not Result then DeleteFile(PChar(Filename));finally  CloseHandle(ComFile);end;end;{ *INTERNAL* - Execute 16-bit code redirected to file }function _RomDumpCodeExecute(const Com, Dmp: string; Timeout: DWORD): Boolean;varComSpec: string;si: TStartupInfo;pi: TProcessInformation;beginResult := False;SetLength(ComSpec, MAX_PATH);SetLength(ComSpec,  GetEnvironmentVariable('ComSpec', PChar(@ComSpec[1]), MAX_PATH));if Length(ComSpec) > 0 thenbegin  FillChar(si, SizeOf(TStartupInfo), 0);  si.cb := SizeOf(TStartupInfo);  si.dwFlags := STARTF_USESHOWWINDOW;  si.wShowWindow := SW_HIDE;  if CreateProcess(nil, PChar(ComSpec + ' /C ' + Com + ' > ' + Dmp), nil, nil, False, CREATE_NEW_CONSOLE or CREATE_NEW_PROCESS_GROUP, nil, nil, si, pi) then  try Result := WaitForSingleObject(pi.hProcess, Timeout) <> WAIT_TIMEOUT;  finally CloseHandle(pi.hProcess); CloseHandle(pi.hThread);  end;end;end;function DirectoryExists(const Dir: string): Boolean;varAttr: DWORD;beginAttr := GetFileAttributes(PChar(Dir));Result := (Attr <> $FFFFFFFF) and  (Attr and FILE_ATTRIBUTE_DIRECTORY = FILE_ATTRIBUTE_DIRECTORY);end;{ Get BIOS dump the generic way }function ReadRomBios16(var Buffer: TRomBiosDump; Timeout: DWORD): Boolean;constTempSub = '~RomDmp';ComName = 'RomDump.com';DmpName = 'Rom.dmp';varTempPath: string;TempDir: string;TempIdx: Integer;TempIdxStr: string;ComFile: string;DmpFile: string;DmpHandle: THandle;Written: DWORD;beginResult := False;SetLength(TempPath, MAX_PATH);SetLength(TempPath, GetTempPath(MAX_PATH, PChar(@TempPath[1])));if Length(TempPath) > 0 thenbegin  if (TempPath[Length(TempPath)] <> '') then TempPath := TempPath + '';  TempIdx := 0;  repeat Inc(TempIdx); Str(TempIdx, TempIdxStr); TempDir := TempPath + TempSub + TempIdxStr;  until not DirectoryExists(TempDir);  if CreateDirectory(PChar(TempDir), nil) then  try TempDir := TempDir + ''; ComFile := TempDir + ComName; DmpFile := TempDir + DmpName; if _RomDumpCodeToFile(ComFile) then try  if _RomDumpCodeExecute(ComFile, DmpFile, Timeout) then  begin DmpHandle := CreateFile(PChar(DmpFile), GENERIC_READ,  FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0); if DmpHandle <> INVALID_HANDLE_VALUE then try  FillChar(Buffer, SizeOf(TRomBiosDump), 0);  Result := ReadFile(DmpHandle, Buffer, SizeOf(TRomBiosDump), Written, nil) and (Written = SizeOf(TRomBiosDump)); finally  CloseHandle(DmpHandle); end;  end; finally  DeleteFile(PChar(DmpFile));  DeleteFile(PChar(ComFile)); end;  finally RemoveDirectory(PChar(TempDir));  end;end;end;{################################################################################ ##  DIRECT METHOD (Win9x) ## ## Due to the fact that Windows 95/98/ME maps the BIOS into every Win32 process ## for read access it is very simple to fill the buffer from memory.## ################################################################################}function ReadRomBios9x(var Buffer: TRomBiosDump): Boolean;beginResult := False;try  FillChar(Buffer, SizeOf(TRomBiosDump), 0);  Move(Pointer(Low(TRomBiosDump))^, Buffer, SizeOf(TRomBiosDump));  Result := True;except  // ignore exceptionsendend;{################################################################################ ##  PHYSICAL MEMORY METHOD (WinNT) ## ## On Windows NT the ROM BIOS is only available through the named kernel object ## 'DevicePhysicalMemory'. Because it is impossible to open kernel objects in ## user mode with standard Win32 API functions we make use of NT's nativeAPI in ## NtDll.dll ("NT-Layer") namely ZwOpenSection. ## ## (note: mostly there are two versions of every function ZwXxx and NtXxx. The ## only difference in kernel mode is that the NtXxx version works in conside- ## ration to security while ZwXxx not. But in user mode both work like NtXxx.) ## ## At first the section is opened with ZwOpenSection. Normally we would proceed ## ZwMapViewOfSection, ZwUnmapViewOfSection, and NtClose. But the functions are ## more complex and there is no needing for it. With the handle (because we are ## in the "very simple" user mode =) we now use MapViewOfFile, UnmapViewOfFile, ## and CloseHandle to map an memory window (the ROM BIOS) into our process. ## ## Due to the fact that ZwOpenSection returns NT error-codes in case of failure ## we have to translate it to an Win32 error-code (RtlNtStatusToDosError). ## All NT specific functions are dynamically loaded -- because the applications ## should start on Win9x systems =) ## ################################################################################}{ For more information see Windows 2000/XP DDK }{ It works on Windows NT 4.0 too, use NtDll.dll }typeNTSTATUS = Integer;constSTATUS_SUCCESS = NTSTATUS(0);STATUS_INVALID_HANDLE = NTSTATUS($C0000008);STATUS_ACCESS_DENIED = NTSTATUS($C0000022);typePUnicodeString = ^TUnicodeString;TUnicodeString = packed record  Length: Word;  MaximumLength: Word;  Buffer: PWideChar;end;constOBJ_INHERIT = $00000002;OBJ_PERMANENT = $00000010;OBJ_EXCLUSIVE = $00000020;OBJ_CASE_INSENSITIVE = $00000040;OBJ_OPENIF = $00000080;OBJ_OPENLINK = $00000100;OBJ_KERNEL_HANDLE = $00000200;OBJ_VALID_ATTRIBUTES = $000003F2;typePObjectAttributes = ^TObjectAttributes;TObjectAttributes = record  Length: ULONG;  RootDirectory: THandle;  ObjectName: PUnicodeString;  Attributes: ULONG;  SecurityDescriptor: PSecurityDescriptor;  SecurityQualityOfService: PSecurityQualityOfService;end;constObjectPhysicalMemoryDeviceName = 'DevicePhysicalMemory';ObjectPhysicalMemoryName: TUnicodeString = (  Length: Length(ObjectPhysicalMemoryDeviceName) * 2;  MaximumLength: Length(ObjectPhysicalMemoryDeviceName) * 2 + 2;  Buffer: ObjectPhysicalMemoryDeviceName;  );ObjectPhysicalMemoryAccessMask: ACCESS_MASK = SECTION_MAP_READ;ObjectPhysicalMemoryAttributes: TObjectAttributes = (  Length: SizeOf(TObjectAttributes);  RootDirectory: 0;  ObjectName: @ObjectPhysicalMemoryName;  Attributes: OBJ_CASE_INSENSITIVE;  SecurityDescriptor: nil;  SecurityQualityOfService: nil;  );typeTFNZwOpenSection = function(out SectionHandle: THandle;  DesiredAccess: ACCESS_MASK; ObjectAttributes: PObjectAttributes): NTSTATUS;stdcall;TFNRtlNtStatusToDosError = function(Status: NTSTATUS): DWORD; stdcall;constntdll = 'ntdll.dll';varZwOpenSection: TFNZwOpenSection;RtlNtStatusToDosError: TFNRtlNtStatusToDosError;function ReadRomBiosNt(var Buffer: TRomBiosDump; Timeout: DWORD): Boolean;varNtLayer: HMODULE;Status: NTSTATUS;Section: THandle;View: Pointer;beginResult := False;NtLayer := GetModuleHandle(ntdll);if NtLayer = 0 then  SetLastError(ERROR_CALL_NOT_IMPLEMENTED)elsebegin  if not Assigned(ZwOpenSection) then ZwOpenSection := GetProcAddress(NtLayer, 'ZwOpenSection');  if not Assigned(RtlNtStatusToDosError) then RtlNtStatusToDosError := GetProcAddress(NtLayer, 'RtlNtStatusToDosError');  if not (Assigned(ZwOpenSection) and Assigned(RtlNtStatusToDosError)) then SetLastError(ERROR_CALL_NOT_IMPLEMENTED)  else  begin Status := ZwOpenSection(Section, ObjectPhysicalMemoryAccessMask,  @ObjectPhysicalMemoryAttributes); case Status of  STATUS_SUCCESS: try  View := MapViewOfFile(Section, ObjectPhysicalMemoryAccessMask, 0, Low(TRomBiosDump), SizeOf(TRomBiosDump));  if Assigned(View) then  try FillChar(Buffer, SizeOf(TRomBiosDump), 0); Move(View^, Buffer, SizeOf(TRomBiosDump)); Result := True;  finally UnmapViewOfFile(View);  end; finally  CloseHandle(Section); end;  STATUS_ACCESS_DENIED: Result := ReadRomBios16(Buffer, Timeout); else  SetLastError(RtlNtStatusToDosError(Status)) end;  end;end;end;{################################################################################ ##  ReadRomBios## ################################################################################}function ReadRomBios(var Dump: TRomBiosDump; Method: TReadRomBiosMethod;Timeout: DWORD = INFINITE): Boolean;beginResult := False;case Method of  rrbmAutomatic: if (Integer(GetVersion) < 0) then try  Result := ReadRomBios9x(Dump); except  Result := ReadRomBios16(Dump, Timeout); end else  Result := ReadRomBiosNt(Dump, Timeout);  rrbmGeneric: Result := ReadRomBios16(Dump, Timeout);  rrbmMemory: Result := ReadRomBios9x(Dump);  rrbmPhysical: Result := ReadRomBiosNt(Dump, Timeout);else  SetLastError(ERROR_INVALID_PARAMETER);end;end;{################################################################################ ## Utilities to simplify the access to data as generic standard types  ## ################################################################################}function GetRomBiosBuffer(const Dump: TRomBiosDump; Address: Pointer;var Buffer; BufferSize: Cardinal): Cardinal;beginResult := 0;if (Cardinal(Address) >= Low(TRomBiosDump)) and  (Cardinal(Address) <= High(TRomBiosDump)) thenbegin  Result := BufferSize;  if (Cardinal(Address) + BufferSize > High(TRomBiosDump)) then Result := High(TRomBiosDump) - Cardinal(Address) + 1;  Move(Dump[Cardinal(Address)], Buffer, Result);end;end;function GetRomBiosString(const Dump: TRomBiosDump; Address: Pointer): string;beginResult := '';if (Cardinal(Address) >= Low(TRomBiosDump)) and  (Cardinal(Address) <= High(TRomBiosDump)) then  Result := string(PChar(@Dump[Cardinal(Address)]));end;function GetRomBiosLongLong(const Dump: TRomBiosDump; Address: Pointer): LONGLONG;typePLongLong = ^LONGLONG;beginResult := 0;if (Cardinal(Address) >= Low(TRomBiosDump)) and  (Cardinal(Address) <= High(TRomBiosDump) - SizeOf(LONGLONG) + 1) then  Result := PLongLong(@Dump[Cardinal(Address)])^;end;function GetRomBiosDWord(const Dump: TRomBiosDump; Address: Pointer): DWORD;beginResult := 0;if (Cardinal(Address) >= Low(TRomBiosDump)) and  (Cardinal(Address) <= High(TRomBiosDump) - SizeOf(DWORD) + 1) then  Result := PDWORD(@Dump[Cardinal(Address)])^;end;function GetRomBiosWord(const Dump: TRomBiosDump; Address: Pointer): Word;beginResult := 0;if (Cardinal(Address) >= Low(TRomBiosDump)) and  (Cardinal(Address) <= High(TRomBiosDump) - SizeOf(Word) + 1) then  Result := PWord(@Dump[Cardinal(Address)])^;end;function GetRomBiosByte(const Dump: TRomBiosDump; Address: Pointer): Byte;beginResult := 0;if (Cardinal(Address) >= Low(TRomBiosDump)) and  (Cardinal(Address) <= High(TRomBiosDump) - SizeOf(Byte) + 1) then  Result := PByte(@Dump[Cardinal(Address)])^;end;end.==========================================

4、獲取BIOS日期信息

{--------------------------------------------------------------------------}{獲取BIOS的日期信息,估計(jì)可能在2000下適用,但是可能需要獲取權(quán)限}function GetBiosDate1: String;varBuffer: Array[0..8] Of Char;N: DWORD;beginReadProcessMemory(GetCurrentProcess,  Ptr($FFFF5),  @Buffer,  8,  N);Buffer[8] := #0;result := StrPas(Buffer)end;function GetBiosDate2: String;beginresult := string(pchar(ptr($FFFF5)));end;

標(biāo)簽: IOS
相關(guān)文章:
主站蜘蛛池模板: 91亚洲国产成人久久精品网站 | 欧美日韩在线第一页 | 国产日韩精品视频 | 久久99精品久久久久久按摩秒播 | 国产午夜视频在线观看 | 欧美性视频网站 | 国产高清精品一区二区三区 | 91佛爷在线观看 | 在线播放一区二区三区 | 毛片一级 | 亚洲综合在线一区 | 欧美精品在线免费观看 | 亚洲美女一区二区三区 | 精品国产一区二区三区久久久 | 亚洲高清免费 | 日韩三级中文字幕 | 综合久久综合久久 | 毛片com | 毛片一区二区三区 | 亚洲福利一区 | 欧美日韩精品在线 | 不卡久久| 在线国v免费看 | 国产一级电影网 | 欧洲亚洲视频 | 情五月 | 华人黄网站大全 | 中文字幕一区二区三区乱码图片 | 免费v片在线观看 | 亚洲福利一区 | 欧美 中文字幕 | 午夜精品久久久久久久久久久久 | 精品一区二区在线播放 | 久久综合九色综合欧美狠狠 | 日韩在线看片 | 亚洲成人精品久久 | 日本成人高清视频 | 国产免费av网站 | 91免费观看 | 黄色片免费在线观看视频 | 欧美一级大片 | 中国妞xxxhd露脸偷拍视频 | 天天综合网网欲色 | 午夜影院18| 天天干天天av | 国产精品成人一区二区三区夜夜夜 | 日本久久久久久 | 免费观看一级特黄欧美大片 | 青草福利| 久久久久国产一区二区三区 | 国产黄视频在线 | 欧美日韩一区二区在线 | 久久99这里只有精品 | 久久精品综合 | 欧美成人一区二免费视频软件 | 婷婷综合激情 | 成人在线小视频 | 国产一区在线视频 | 国产精品久久久久久久久久 | 大桥未久亚洲精品久久久强制中出 | 欧美综合国产 | 国产精品中文字幕在线观看 | 国产精品久久电影观看 | 国产精品日韩 | 日韩一级视频 | 欧美 亚洲 另类 激情 另类 | 97免费在线观看视频 | 日韩一区精品 | 97视频人人澡人人爽 | 九九热在线免费视频 | 91成人免费看| 亚洲视频在线播放 | 日韩一级在线免费观看 | 国产一区二区三区免费 | 欧美日韩一区二区中文字幕 | 国产成人精品一区二区视频免费 | 国产精品视频一二三区 | 亚洲免费看片 | 黄在线免费观看 | av大片网 | 国产第一页在线播放 | 欧美一级精品片在线看 | 亚洲a人| 91久久精品国产91久久 | 国产美女一区二区 | 成人中文视频 | 国产综合区 | 日韩一区二区不卡 | 国产精品影视 | 日本a在线 | 男女免费在线观看 | 欧美中文在线 | 久久国产精品视频 | 精品久久久久久亚洲综合网 | 一区二区三区四区在线视频 | 国产精品久久 | 亚洲视频在线视频 | 在线视频亚洲 | av色资源 | av久草| 天天干天天谢 | 日韩国产一区二区三区 | 天天操综合网 | 欧美xxxx黑人又粗又长 | 99国产精品久久久久久久 | 久久精品亚洲 | 国产精品成人av | 99精品国产高清一区二区麻豆 | 亚洲精品一区二区三区在线观看 | 动漫羞免费网站中文字幕 | 久久成人毛片 | 日本阿v视频高清在线中文 中文二区 | 国产精品成av人在线视午夜片 | 婷婷久久综合 | 国产在视频一区二区三区吞精 | 亚洲精品9999 | 色网在线观看 | a视频在线 | 成人网电影 | 三级视频在线观看 | 国产午夜视频在线观看 | 日日干夜夜干 | 日本久久精品视频 | 亚洲精品免费视频 | 国产区在线观看 | 午夜黄色影院 | 免费看一区二区三区 | 四季久久免费一区二区三区四区 | 亚洲色图第八页 | 国产精品一区二区在线观看 | 精品国产一区二区 | 日韩久久精品一区二区 | 亚洲三区在线观看 | 中国妞videos高潮 | 欧美一级精品 | 99在线免费视频 | 午夜视频在线观看网站 | 成人免费看黄色 | 国产精品亚洲综合 | 最新国产视频 | 国产一区二区视频在线观看 | 午夜影院黄色 | 综合色久 | 在线干| 国外成人在线视频网站 | 欧美精品国产精品 | 黄色国产一级视频 | 一区二区三区日韩在线 | 欧美日本一区 | 成人a在线视频免费观看 | 精品国产一区二区三区免费 | 久久久久久91香蕉国产 | 黄色网址大全在线观看 | 欧美精品99 | 亚洲日本乱码在线观看 | 国产激情免费 | 国产精品69毛片高清亚洲 | 成人欧美一区二区三区在线观看 | 日本色网址 | 黄色二区 | 欧美综合一区二区三区 | 精品国产91亚洲一区二区三区www | 日韩毛片免费看 | 日韩a电影| 国产综合区 | 性色av一区二区三区 | 欧美日韩三级 | 欧美亚洲一 | 亚洲视频在线观看视频 | 久久精品成人一区二区三区蜜臀 | 国产在线综合视频 | 男女视频在线观看 | 成人二区| 欧美三级电影在线观看 | 亚洲 欧美日韩 国产 中文 | bxbx成人精品一区二区三区 | 免费黄色在线看 | 欧美一区二区免费 | 日韩在线免费 | av三级在线免费观看 | 老司机午夜免费精品视频 | 羞羞视频网站 | 国产欧美综合一区二区三区 | 亚洲成人免费视频 | 国产成人精品在线观看 | 成人网18免费网站 | 看免费的毛片 | 久久都是精品 | 欧美成人h版在线观看 | 国产精品久久久久久久久久久杏吧 | www.国产在线 | 亚洲九九 | 久热av中文字幕 | 色免费视频 | 亚洲精品乱码久久久久久麻豆不卡 | 精品一区二区av | 欧美2区 | 亚洲精品成人av | 国产免费黄色 | 欧美a区| 一区二区中文字幕 | 国产视频99| 久久中文视频 | 国产精品久久二区 | 日日操天天操 | 欧美精品在线观看免费 | 久久亚洲国产视频 | 在线观看免费黄色 | 色综合网站 | 国产免费一区二区 | 日干夜操 | 色玖玖| 国产精品影院在线观看 | 欧美jizzhd精品欧美巨大免费 | 亚洲永久免费观看 | 亚洲一区二区在线看 | 91激情视频 | 中文字幕亚洲精品 | 成人精品一区二区三区中文字幕 | 国产乱码精品一区二区三区av | 一级在线观看 | 亚洲人成网亚洲欧洲无码 | 欧美日韩激情在线 | 亚洲成人精品一区 | 亚洲综合在线播放 | 久久中文字幕视频 | 在线成人免费 | 国产玖玖 | 精品在线一区二区 | 狠狠影院 | 毛片免费视频 | 亚洲综合在线网 | 91最新| 国产精品久久久久久亚洲调教 | 亚洲精品视频播放 | 午夜精品久久久久久久白皮肤 | 亚洲精品久久 | 日本不卡在线 | 啪啪tv网站免费入口 | 中文字幕亚洲欧美日韩在线不卡 | 日本三级视频 | 日本黄色毛片 | 欧美日韩视频 | 日韩一区二区在线观看 | 久久久久久久一区 | 日韩亚洲一区二区 | 高清视频一区二区三区 | 日本三级中国三级99人妇网站 | 亚洲免费精品网站 | 日韩在线播放一区 | 91.成人天堂一区 | 91精品国产成人 | 国产成人在线免费观看 | 青青草一区| www.99热这里只有精品 | 奇米av | 亚洲成人高清在线 | 999精品视频 | 亚洲午夜精品视频 | 99久久精品国产一区二区三区 | 91在线看片 | 亚洲色图p | 精品毛片 | 久久久久久亚洲 | 久久久91精品国产一区二区三区 | 亚洲天堂成人在线 | 国产激情 | www.亚洲成人 | 色综合99| 色吧久久 | 亚洲成人av | 国产99久久精品 | 影音先锋亚洲精品 | 天天干天操 | 国产精品女教师av久久 | 欧美一区 | 日韩av视屏 | 久久人操 | 欧美日韩一区二区在线 | 日韩手机电影 | 国产精品69毛片高清亚洲 | 欧美精品国产精品 | 特黄av| 在线免费中文字幕 | 国产日产欧美a级毛片 | 日韩视频在线视频 | 久久99精品久久久久久琪琪 | 午夜爱爱毛片xxxx视频免费看 | 欧美视频网站 | 国产三级日本三级美三级 | 亚洲精品欧美精品 | 国产91久久精品一区二区 | 97色在线视频 | 久久99成人| a视频在线观看 | 美女黄视频网站 | 一级片在线播放 | 久久久精品高清 | 成人亚洲| 日韩综合 | 一级黄色大片免费观看 | 午夜婷婷丁香 | 中文字幕成人在线 | 懂色av一区二区三区在线播放 | 中文字幕免费看 | 国产精品毛片 | 成人欧美一区二区三区在线播放 | 狠狠操麻豆| 秋霞电影院午夜伦 | 午夜精品久久久久99蜜 | 狠狠综合久久 | 国产一区二区在线免费观看 | 亚洲欧美在线综合 | 国产另类ts人妖一区二区 | 97视频人人澡人人爽 | 国产大片aaa | 国产女人爽到高潮免费视频 | 国产精品1区2区3区 午夜视频网站 | 亚洲每日更新 | 国产精选一区二区三区 | www.麻豆视频 | 亚洲毛片网站 | 91亚洲国产成人久久精品网站 | 97精品一区二区三区 | 亚洲韩国精品 | 超碰人人干 | 国产精品久久久久久吹潮 | a久久久 | 欧美在线一区二区三区 | av一二三区 | 欧美精品久久久久久久久久丰满 | 特黄级国产片 | 久久成人18免费网站 | 国产成人精品一区二区 | 91激情视频 | 天天操夜夜拍 | 亚洲免费在线播放 | 国产一区久久久 | 欧美在线二区 | 亚洲情综合五月天 | 精品欧美乱码久久久久久 | 日韩超级大片免费看国产国产播放器 | 国产精品一区在线观看 | 自拍偷拍亚洲欧洲 | 久久大| 91精品久久久久久久久入口 | 精品视频免费在线 | 国产精品久久久久久久久免费桃花 | 男人亚洲天堂网 | 波多野结衣一二三四区 | 亚洲情视频 | 国产中文字幕一区 | 国产在线精品一区 | 久久久久国产精品 | 极情综合网| 精品国产髙清在线看国产毛片 | 欧美精品免费在线观看 | 国产乱码精品一区二区三区五月婷 | 欧美高清dvd| 超碰高清 | 欧美一区二区三区电影 | 欧美一级毛片久久99精品蜜桃 | 日韩精品一| 国产成人在线免费观看 | 91久久综合亚洲鲁鲁五月天 | 欧美日本一区二区三区 | 亚洲欧美日韩在线 | 国产亚洲欧美一区 | 久久国产精品一区二区 | 国产综合视频在线观看 | 日韩视频精品在线 | 成人av在线播放 | 天天天天天天操 | 日本色网址 | 久久久精品国产 | 亚洲一区二区中文字幕 | 999在线观看精品免费不卡网站 | 国产高清亚洲 | 国产精品久久久久久久久久久久 | 亚洲欧美国产精品久久 | av性色| 怡红院成人影院 | 99色综合| 亚洲免费观看 | 天天综合网91 | 亚洲日韩中文字幕一区 | 国内自拍视频在线观看 | 国产精品污www一区二区三区 | 亚洲日本欧美 | www久| 亚洲视频免费在线 | 你懂的免费在线观看 | 国产在线不卡一区 | 中出片 | 欧产日产国产精品一二 | 99久久久久久 | 久久1区| 亚洲视频观看 | 国产特黄一级 | 亚洲精品在线看 | 成人在线播放 | 国产中文在线 | 日韩精品视频在线观看一区二区 | 亚洲视频一区二区三区 | 国产亚洲精品美女久久久久久久久久 | 欧美午夜一区二区福利视频 | 久久综合成人精品亚洲另类欧美 | 色婷婷基地 | 日本亚洲一区 | 亚洲tv国产 | 一级片观看 | 中文在线视频 | 国产精品久久久久久福利一牛影视 | 亚洲欧美一区二区精品中文字幕 | 精品久久电影 | 91久久夜色精品国产网站 | 成人国产精品一级毛片视频 | 国产成人av网站 | 日韩一区在线播放 | 欧美一区二区三区四区不卡 | 国产一区视频网站 | 91九色porny首页最多播放 | 成人激情视频 | 91精品国产欧美一区二区成人 | 性免费网站| 国产精品久久久久久久久久 | www.久久久| 精品国产一区二区在线 | 欧美在线视频网站 | 日韩一区二区三区在线观看 | 日韩中文字幕电影 | 亚洲综合色视频在线观看 | 久久黄网 | 日韩成人影院 | 天堂资源网 | 呦一呦二在线精品视频 | 中文字幕_第2页_高清免费在线 | 999视频 | 日韩中文在线 | 久久国产精品99久久久久久老狼 | 亚洲视频在线观看免费 | 欧美性一区二区 | 超碰人人爱 | av第一页| 日韩免费一区 | 国产精品成人品 | 亚洲视频在线观看一区二区三区 | 久久久久久国产精品美女 | 午夜欧美 | 日韩aaa视频 | 伊人久久一区二区三区 | 中文字幕亚洲欧美 | 亚洲免费视频在线观看 | 日韩aaa视频| 亚洲精品久久久久久久久久久 | 欧美日韩在线精品 | 黄色天堂网 | 精品国产一区探花在线观看 | 夜操| 天操天天干 | 99re国产| 亚洲成人精品 | 欧美亚洲二区 | 国产91免费在线 | 国产婷婷久久 | 国产精品久久精品 | 极品久久 | 黄色一级视 | 久久久久99| 日韩a级免费视频 | 国产在线日韩 | 久久久亚洲一区 | 国产欧美综合一区二区三区 | 成人小视频在线观看 | 精品久久久久久久久久久 | 古装三级在线播放 | 一级片视频在线观看 | 精品国产青草久久久久福利 | 久久久国产一区二区三区四区小说 | 最新午夜 | 欧美视频免费 | 久久香蕉国产视频 | www久久精品 | 成人情趣视频 | 99精品电影 | 亚洲视频在线免费观看 | 日韩视频免费 | 亚洲aⅴ网站| 国产 在线 | 日韩 | 伊人网页| 成人av免费观看 | 欧美成人免费 | 在线观看一区二区三区四区 | 欧美亚洲一级 | 日本一二三区在线 | 国产精品久久久久久福利一牛影视 | 国产精品久久久久一区二区三区 | 欧美在线观看视频 | 91成人免费看片 | 小草av| 一区二区在线视频免费观看 | 亚洲一区二区免费看 | 国产精品国产精品国产专区不片 | 日韩精品一区二区三区在线播放 | 成人在线免费视频 | 久久久久亚洲精品国产 | 视频一区二区三 | 欧美二区视频 | 亚洲人成在线播放 | www312aⅴ欧美在线看 | 在线欧美视频 | 日韩精品一区二区三区在线 | 日本激情视频在线播放 | 在线观看成人小视频 | 91精品久久久久久久久久入口 | 成人免费影院 | 精品亚洲自拍 | 91免费视频观看 | 久久久夜夜夜 | 99精品视频在线 | 精久久| 国内精品国产成人国产三级粉色 | 亚洲精品一区二区三区在线 | 成人激情视频 | 久久99精品久久久久久青青日本 | 欧美久久精品 | 久久久久久久影院 | 欧美三级视频 | 成人一区二区三区在线 | 久久99精品久久久久久琪琪 | 亚洲精片 | 在线观看免费视频日韩 | 国产美女精品一区二区三区 | 亚洲久久在线 | 国产精品一区亚洲二区日本三区 | 国产一区二区三区精品久久久 | 亚洲激情一区二区 | 久草在线 | 亚洲第一页在线 | 一级免费毛片 | 欧美激情免费 | 中文在线视频 | 精品久久久久久国产 | 一级毛片免费在线 | 超碰操 | 欧美成人激情视频 | 日韩精品一区二区三区视频播放 | 一级电影院| 免费大片在线观看网站 | 日韩精品免费在线观看 | 欧美日韩在线电影 | 日韩精品免费在线视频 | 亚洲网站久久 | 日韩精品 电影一区 亚洲 | 日韩高清一区二区 | 免费黄色电影在线观看 | 天堂一区| 日本久久精品视频 | 午夜免费剧场 | 欧美激情在线精品一区二区三区 | 无码少妇一区二区三区 | 国产乱码精品一区二区三区中文 | 亚洲国产精品久久久久秋霞蜜臀 | 国产精品二区一区二区aⅴ污介绍 | a一级片在线观看 | 免费视频爱爱太爽了 | 免费看的毛片 | 亚洲 欧美 日韩 在线 | 久久国产高清 | 天天宗合网 | 日本成人福利视频 | 日本a v网站 | 日韩精品一区二区三区中文字幕 | 日本美女影院 | 国产精品久久久久久婷婷天堂 | 99re6在线视频精品免费 | 色综合久久久久 | 亚洲天天 | 日本黄网站在线观看 | 亚洲一区二区三区高清 | 4h影视| 国产精品二区一区二区aⅴ污介绍 | 日本一区二区三区中文字幕 | 成人免费网站www网站高清 | 欲色av | 一级黄色片日本 | 欧美综合一区二区 | 日韩精品久久久久久 | 噜噜噜天天躁狠狠躁夜夜精品 | 亚洲欧美日韩国产综合 | 欧美视频网站 | 北条麻妃一区二区免费播放 | 国产精品久久久久久久久久 | 欧美精品欧美精品系列 | 最新中文字幕久久 | 日韩国产欧美精品 | 国产精品久久久久久久久久久久久久 | 久久精品国产99国产精品 | 免费在线a | 国产在线视频一区二区 | 噜噜噜噜噜在线视频 | 国产一区二区欧美 | 中国大陆高清aⅴ毛片 | 亚洲在线视频 | 极品久久 | www.亚洲一区 | 北条麻妃99精品青青久久 | 久久亚洲视频 | 国产欧美日韩精品一区 | 天天操天天干天天爽 | 成人精品一区二区三区 | 91亚洲免费 | 日韩精品 电影一区 亚洲 | 久久青草av | 欧美久久久久久 |