亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tut24.html

?? win32匯編教程 希望各位多多支持
?? HTML
?? 第 1 頁 / 共 4 頁
字號:
button, the program checks if the hook is already installed. If it is not,
it call InstallHook function in the hook DLL to install it. Note that we
pass the handle of the main dialog as the parameter of the function so
the hook DLL can send the WM_MOUSEHOOK messages to the right window i.e.
our own.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>When the program is loaded,
the hook DLL is loaded too. Actually, DLLs are loaded immediately after
the program is in memory. The DLL entrypoint function is called before
the first instruction in the main program is execute even. So when the
main program executes the DLL(s) is/are initialized. We put the following
code in the DLL entrypoint function of the hook DLL:</font></font>
<p><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; .if
reason==DLL_PROCESS_ATTACH</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
push hInst</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
pop hInstance</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; .endif</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>The code just saves the instance
handle of the hook DLL itself to a global variable named hInstance for
use within the InstallHook function. Since the DLL entrypoint function
is called before other functions in the DLL are called , hInstance is always
valid. We put hInstance in .data section so that this value is kept on
per-process basis. Since when the mouse cursor hovers over a window, the
hook DLL is mapped into the process. Imagine that there is already a DLL
that occupies the intended load address of the hook DLL, the hook DLL would
be remapped to another address. The value of hInstance will be updated
to those of the new load address. When the user presses Unhook button and
then Hook button, SetWindowsHookEx will be called again. However, this
time, it will use the new load address as the instance handle which will
be wrong because in the example process, the hook DLL's load address hasn't
been changed. The hook will be a local one where you can hook only the
mouse events that occur in your own window. Hardly desirable.</font></font>
<p><b><font face="Arial,Helvetica"><font size=-1>InstallHook proc hwnd:DWORD</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; push
hwnd</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; pop
hWnd</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; invoke
SetWindowsHookEx,WH_MOUSE,addr MouseProc,hInstance,NULL</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; mov
hHook,eax</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; ret</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>InstallHook endp</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>The InstallHook function
itself is very simple. It saves the window handle passed as its parameter
to a global variable named hWnd for future use. It then calls SetWindowsHookEx
to install a mouse hook. The return value of SetWindowsHookEx is stored
in a global variable named hHook for use with UnhookWindowsHookEx.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>After SetWindowsHookEx is
called, the mouse hook is functional. Whenever a mouse event occurs in
the system, MouseProc ( your hook procedure) is called.</font></font>
<p><b><font face="Arial,Helvetica"><font size=-1>MouseProc proc nCode:DWORD,wParam:DWORD,lParam:DWORD</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; invoke
CallNextHookEx,hHook,nCode,wParam,lParam</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; mov
edx,lParam</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; assume
edx:PTR MOUSEHOOKSTRUCT</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; invoke
WindowFromPoint,[edx].pt.x,[edx].pt.y</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; invoke
PostMessage,hWnd,WM_MOUSEHOOK,eax,0</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; assume
edx:nothing</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; xor
eax,eax</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; ret</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>MouseProc endp</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>The first thing it does is
to call CallNextHookEx to give the other hooks the chance to process the
mouse event. After that, it calls WindowFromPoint function to retrieve
the handle of the window at the specified screen coordinate. Note that
we use the POINT structure in the MOUSEHOOKSTRUCT structure pointed to
by lParam as the current mouse coordinate. After that we send the window
handle to the main program via PostMessage with WM_MOUSEHOOK message. One
thing you should remember is that: you should not use SendMessage inside
the hook procedure, it can cause message deadlock. PostMessage is recommended.
The MOUSEHOOKSTRUCT structure is defined below:</font></font>
<p><b><font face="Arial,Helvetica"><font size=-1>MOUSEHOOKSTRUCT STRUCT
DWORD</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp; pt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
POINT &lt;></font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp; hwnd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ?</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp; wHitTestCode&nbsp;
DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ?</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp; dwExtraInfo&nbsp;&nbsp;
DWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ?</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>MOUSEHOOKSTRUCT ENDS</font></font></b>
<br>&nbsp;
<ul>
<li>
<font face="Arial,Helvetica"><font size=-1>pt is the current screen coordinate
of the mouse cursor</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>hwnd is the handle of the window
that will receive the mouse message. It's usually the window under the
mouse cursor but not always. If a window calls SetCapture, the mouse input
will be redirected to that window instead. Because of this reason, I don't
use the hwnd member of this structure but choose to call WindowFromPoint
instead.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>wHitTestCode specifies the hit-test
value. The hit-test value gives more information about the current mouse
cursor position. It specifies on what part of window the mouse cursor is.
For complete list, check your win32 api reference under WM_NCHITTEST message.</font></font></li>

<li>
<font face="Arial,Helvetica"><font size=-1>dwExtraInfo contains the extra
information associated with the message. Normally this value is set by
calling mouse_event and retrieved by calling GetMessageExtraInfo.</font></font></li>
</ul>
<font face="Arial,Helvetica"><font size=-1>When the main window receives
WM_MOUSEHOOK message, it uses the window handle in wParam to retrieve the
information about the window.</font></font>
<p><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp; .elseif
uMsg==WM_MOUSEHOOK</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke GetDlgItemText,hDlg,IDC_HANDLE,addr buffer1,128</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke wsprintf,addr buffer,addr template,wParam</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke lstrcmpi,addr buffer,addr buffer1</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.if eax!=0</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke SetDlgItemText,hDlg,IDC_HANDLE,addr buffer</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.endif</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke GetDlgItemText,hDlg,IDC_CLASSNAME,addr buffer1,128</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke GetClassName,wParam,addr buffer,128</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke lstrcmpi,addr buffer,addr buffer1</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.if eax!=0</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke SetDlgItemText,hDlg,IDC_CLASSNAME,addr buffer</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.endif</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke GetDlgItemText,hDlg,IDC_WNDPROC,addr buffer1,128</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke GetClassLong,wParam,GCL_WNDPROC</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke wsprintf,addr buffer,addr template,eax</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke lstrcmpi,addr buffer,addr buffer1</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.if eax!=0</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke SetDlgItemText,hDlg,IDC_WNDPROC,addr buffer</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
.endif</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>To avoid flickers, we check
the text already in the edit controls and the text we will put into them
if they are identical. If they are, we skip them.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>We retrieve the class name
by calling GetClassName, the address of the window procedure by calling
GetClassLong with GCL_WNDPROC and then format them into strings and put
them into the appropriate edit controls.</font></font>
<p><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke UninstallHook</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke SetDlgItemText,hDlg,IDC_HOOK,addr HookText</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
mov HookFlag,FALSE</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke SetDlgItemText,hDlg,IDC_CLASSNAME,NULL</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke SetDlgItemText,hDlg,IDC_HANDLE,NULL</font></font></b>
<br><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
invoke SetDlgItemText,hDlg,IDC_WNDPROC,NULL</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>When the user presses Unhook
button, the program calls UninstallHook function in the hook DLL. UninstallHook
just calls UnhookWindowsHookEx. After that, it changes the text of the
button back to "Hook", HookFlag to FALSE and clears the content of the
edit controls.</font></font>
<br><font face="Arial,Helvetica"><font size=-1>Note the linker switch in
the makefile.</font></font>
<p><b><font face="Arial,Helvetica"><font size=-1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Link /SECTION:.bss,S&nbsp; /DLL /DEF:$(NAME).def /SUBSYSTEM:WINDOWS</font></font></b>
<p><font face="Arial,Helvetica"><font size=-1>It specifies .bss section
as a shared section to make all processes share the same uninitialized
data section of the hook DLL. Without this switch, your hook DLL will not
function correctly.</font></font>
<br>
<hr WIDTH="100%">
<center><b>[<a href="http://win32asm.cjb.net">Iczelion's Win32 Assembly
Homepage</a>]</b></center>

</body>
</html>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久日韩精品一区二区五区| 日精品一区二区三区| 国产一区高清在线| 欧美本精品男人aⅴ天堂| 蜜臀av一区二区在线观看| 精品国产乱子伦一区| 精品制服美女久久| 国产日韩欧美制服另类| 国产成人丝袜美腿| 亚洲欧美在线aaa| 精品视频一区二区三区免费| 午夜亚洲国产au精品一区二区| 日本黄色一区二区| 日韩电影免费在线观看网站| 91精品黄色片免费大全| 午夜精品久久久久久久久| 亚洲日本韩国一区| 7777精品伊人久久久大香线蕉完整版| 乱一区二区av| 伊人开心综合网| 久久久亚洲精品一区二区三区 | 99久久99久久精品免费看蜜桃| 欧美高清在线一区二区| 欧美精品一卡两卡| 成人黄色777网| 开心九九激情九九欧美日韩精美视频电影| 国产性色一区二区| 欧美一卡二卡三卡四卡| 99精品国产热久久91蜜凸| 亚洲成国产人片在线观看| 国产精品午夜在线| 精品国产百合女同互慰| 欧美三级视频在线播放| 成人h版在线观看| 国产一区在线观看视频| 日韩av一区二区三区| 一片黄亚洲嫩模| 最新成人av在线| 中文字幕亚洲精品在线观看| 欧美mv日韩mv国产网站| 欧美精品一二三区| 欧美日韩一区二区三区在线| 色噜噜狠狠色综合欧洲selulu| 国产成人精品一区二区三区四区 | 国产成人精品免费一区二区| 日产欧产美韩系列久久99| 亚洲激情中文1区| 日韩中文字幕1| 一区二区三区日韩精品视频| 国产精品成人一区二区三区夜夜夜| 久久色视频免费观看| 精品国产露脸精彩对白| 久久久久国产一区二区三区四区 | 中文字幕在线观看不卡视频| 久久久www成人免费毛片麻豆 | 亚洲无人区一区| 日韩av电影免费观看高清完整版在线观看| 亚洲一区免费观看| 天堂久久一区二区三区| 青青草国产精品97视觉盛宴| 欧美极品aⅴ影院| 欧美精品v国产精品v日韩精品| 国产精品女同互慰在线看| 一区二区激情小说| 亚洲一区二区三区爽爽爽爽爽 | 国产成人免费视频一区| 成人美女视频在线观看18| 国产成人精品影视| 欧美性大战xxxxx久久久| 欧美高清激情brazzers| 6080国产精品一区二区| 中文字幕亚洲欧美在线不卡| 蜜臀久久99精品久久久久久9| 国产91精品久久久久久久网曝门 | 国产·精品毛片| 欧美色图一区二区三区| 久久综合网色—综合色88| 亚洲二区在线视频| 91亚洲永久精品| 亚洲国产精品激情在线观看| 国产91精品入口| 不卡视频一二三四| 久久综合九色综合97_久久久 | 从欧美一区二区三区| 日韩视频免费观看高清完整版 | 欧美成人精品1314www| 亚洲日本在线看| 91丨九色丨蝌蚪丨老版| 中文字幕在线免费不卡| 国产美女一区二区三区| 欧美日韩五月天| 亚洲自拍偷拍av| 91国产视频在线观看| 中文字幕精品在线不卡| 国精产品一区一区三区mba视频| 欧美麻豆精品久久久久久| 国产精品福利一区| www.欧美色图| 亚洲三级在线看| 欧美亚洲一区二区在线观看| 玉米视频成人免费看| 在线精品国精品国产尤物884a| 亚洲精品高清在线| 欧美哺乳videos| 波多野结衣中文一区| 亚洲国产精品一区二区www在线| 欧美成人一区二区三区| 奇米影视在线99精品| 久久精品免视看| 不卡av免费在线观看| 亚洲成人在线免费| 欧美成人一区二区三区片免费| 国产成人高清视频| 亚洲猫色日本管| 日韩一区二区三区在线| av一二三不卡影片| 视频一区二区中文字幕| 国产色综合一区| 欧美午夜一区二区三区免费大片| 日韩国产一二三区| 亚洲欧洲日本在线| 日韩免费看网站| 色琪琪一区二区三区亚洲区| 九一久久久久久| 亚洲高清视频在线| 国产视频一区在线观看| 欧美大尺度电影在线| 高清在线成人网| 美女性感视频久久| 一区二区在线观看免费视频播放| 亚洲精品一区二区三区福利| 欧美探花视频资源| 99精品视频在线免费观看| 蜜桃视频一区二区三区在线观看| 国产精品黄色在线观看| 国产嫩草影院久久久久| 精品成人私密视频| 91精品国产综合久久精品| 精品视频在线视频| 欧美色视频一区| 欧美又粗又大又爽| 91福利社在线观看| 91久久精品一区二区三区| 高清不卡在线观看| 成人在线综合网| 暴力调教一区二区三区| 国产精品亚洲一区二区三区在线| 毛片不卡一区二区| 久久se精品一区精品二区| 激情偷乱视频一区二区三区| 九九九精品视频| 成人美女视频在线观看| jlzzjlzz国产精品久久| 日本韩国精品在线| 亚洲婷婷综合久久一本伊一区| 国产精品卡一卡二| 亚洲一区二区在线免费看| 性欧美疯狂xxxxbbbb| 激情图区综合网| 91影视在线播放| 91精品国产福利| 国产精品女同一区二区三区| 洋洋成人永久网站入口| 麻豆一区二区在线| 成a人片亚洲日本久久| 欧美日韩国产三级| 欧美国产日韩一二三区| 亚洲宅男天堂在线观看无病毒| 日本亚洲一区二区| 99久久精品情趣| 精品卡一卡二卡三卡四在线| 国产精品久久久久天堂| 麻豆国产91在线播放| 91免费观看视频| 日韩精品资源二区在线| 亚洲在线一区二区三区| 国产河南妇女毛片精品久久久 | 日韩一区二区三区av| 亚洲另类春色校园小说| 久久99精品视频| 欧美日韩小视频| 夜夜嗨av一区二区三区| 成人av综合在线| 国产精品久久午夜| 国产一区二区三区四区五区入口 | 久久精品视频在线看| 久久国产夜色精品鲁鲁99| 欧美精品久久天天躁| 亚洲国产精品麻豆| 91久久国产最好的精华液| 国产精品国产自产拍高清av| 国产精品一区二区无线| 精品成人a区在线观看| 精品影视av免费| 久久久不卡影院| 91亚洲精华国产精华精华液| 亚洲激情五月婷婷| 欧美一区二区三区在线观看视频| 五月天一区二区| 日韩一级二级三级|