Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
HOOKÈëÃÅ
 
×÷Õߣºwindhawkgyang À´×ÔÓÚ£ºChinaunixÊ×Ò³ ·¢²¼ÓÚ 2015-10-27
  2355  次浏览      27
 

Ò»¡¢¸ÅÊö

ǧºôÍò»½Ê¼³öÀ´£¬ÖÕÓÚ¿ªÊ¼Ñ§Ï°Win32 HOOK»úÖÆÁË¡£ËäȻ˵HOOKÔçÒѲ»ÊÇʲôм¼Êõ£¬µ«ÊǶÔÓÚ×Ô¼º¶øÑÔÈ´ÊǵÚÒ»´Î½Ó´¥¡£Ö®Ç°¸ü¶àµØÖ»ÊÇ´Ó¼ì²âľÂíµÄ¹³×ÓÖиÐÐÔµØÈÏʶHOOK¡£ÓÉÓÚ֮ǰ´ÓÀ´Ã»ÓÐÕæÕý½Ó´¥¹ý£¬ËùÒÔÒ»ÉÏÀ´È±µÄ֪ʶģ¿é±È½Ï¶à¡£×÷ΪµÚһƪ¹ØÓÚHOOKµÄѧϰ±Ê¼Ç£¬ÏȾÍHOOKµÄ»ù±¾ÖªÊ¶×ö¸öС½á£¬È»ºó¸ø³öÒ»¸ö¼òµ¥µÄͨ¹ý¿ØÖÆÌ¨ÊµÏֵļüÅ̹³×ÓÀý×Ó¡£±¾Æª±Ê¼Ç½á¹¹ÈçÏ£º

WindowsÏûÏ¢»úÖÆ

Windows HOOK»úÖÆ£¨È«¾ÖHOOK£©

ºËÐĺ¯Êý

¼òµ¥³ÌÐòʾÀý

ÎÊÌâ

¶þ¡¢WindowsÏûÏ¢»úÖÆ

Windows²Ù×÷ϵͳÊǽ¨Á¢ÔÚʼþÇý¶¯»úÖÆÖ®Éϵģ¬ÏµÍ³¸÷²¿·ÖÖ®¼äµÄ¹µÍ¨Ò²¶¼ÊÇͨ¹ýÏûÏ¢µÄÏ໥´«µÝ¶øÊµÏֵġ£µ«ÔÚͨ³£Çé¿öÏ£¬Ó¦ÓóÌÐòÖ»ÄÜ´¦ÀíÀ´×Ô½ø³ÌÄÚ²¿µÄÏûÏ¢»òÊÇ´ÓÆäËû½ø³Ì·¢¹ýÀ´µÄÏûÏ¢£¨½èÖú½ø³Ì¼äͨÐż¼Êõ£¬Èç¼ôÌù°å£¬¹ÜµÀ£¬Óʲ۵ȣ©£¬Èç¹ûÐèÒª¶ÔÔÚ½ø³ÌÍâ´«µÝµÄÏûÏ¢½øÐÐÀ¹½Ø´¦Àí¾Í±ØÐë²ÉȡһÖÖ³ÆÎªHOOKµÄ¼¼Êõ¡£HOOK×÷ΪWindows²Ù×÷ϵͳÖзdz£ÖØÒªµÄÒ»ÖÖϵͳ½Ó¿Ú£¬ÓÃËü¿ÉÒÔÇáËɽػñ²¢´¦ÀíÔÚÆäËûÓ¦ÓóÌÐòÖ®¼ä´«µÝµÄÏûÏ¢£¬²¢ÓÉ´Ë¿ÉÒÔÍê³ÉһЩÆÕͨӦÓóÌÐòÄÑÒÔʵÏÖµÄÌØÊ⹦ÄÜ¡£Ê×ÏÈÎÒÃǶԵÚÒ»´Î½Ó´¥Windows±à³ÌµÄͬѧÃǼòµ¥½éÉÜÒ»ÏÂWindowsµÄÏûÏ¢»úÖÆ¡£
ÎÒÃÇÖªµÀWindowsϵͳ¸÷¸ö²¿·ÖµÄͨÐÅÊÇͨ¹ý·¢ËÍMessage½øÐеģ¬ÕâÀïµÄÆäʵÊÇÒ»¸öMSG½á¹¹Ì壺

typedef struct tagMSG { 

HWND hwnd;

UINT message;

WPARAM wParam;

LPARAM lParam;

DWORD time;

POINT pt;

} MSG;

¾ßÌåµÄÓ÷¨¸ÐÐËȤµÄͬѧ¿ÉÒÔÈ¥²éÔÄÏÂMSDN£¬ÕâÀﻹÊdžªàÂÒ»¾ä£¬Ñ§Ï°Windows±à³ÌµÄ

ÅóÓÑÃÇ»¹ÊÇÒ»¶¨ÒªÈ¥ÏÂÔØÒ»¸öMSDN£¬ÓÃÆðÀ´ÕæµÄºÜ·½±ã¡£´óÖµĹý³ÌÊǵ±ÏµÍ³I/OÉÏ·¢ÉúÒ»¸öʼþʱ£¬ÏµÍ³²¶»ñ¸Ãʼþ£¬²¢ÏòÖ¸¶¨µÄÓ¦ÓóÌÐòµÄÏûÏ¢¶ÓÁз¢ËÍÒ»¸öÏûÏ¢£¬Ó¦ÓóÌÐò´ÓÏûÏ¢¶ÓÁÐÖÐ˳´ÎÈ¡³öÒ»¸öÏûÏ¢£¬½»ÓÉϵͳµ÷¶ÈÏàÓ¦µÄ´°¿Ú»Øµ÷³ÌÐò½øÐÐÏûÏ¢´¦Àí¡£ÕâÀïÎÒÃǸø³öÒ»¸ö½á¹¹Í¼·½±ã´ó¼ÒÀí½â¡£

ÕâÀï¿ÉÒÔ¿´µ½£¬´ÓOS²¶×½µ½ÏûÏ¢¿ªÊ¼´¦Àí£¬µ½×îºó½»»¹¸øOSµ÷¶È»Øµ÷º¯Êý£¬¾ÍÏñ×ßÁËÒ»¸öÑ­»·£¬ÎÒ×Ô¼ºÀí½âÕâÒ²ÊÇΪʲô½Ð×ö¡°»Øµ÷º¯Êý¡±µÄÔ­ÒòÖ®Ò»¡£½ÓÏÂÀ´ÎÒÃÇÒª½øÐеÄHOOK¾ÍÊÇÔÚÉÏÃæµÄµÚ¶þ²½ºÍµÚÈý²½Ö®¼ä½øÐеĶîÍ⹤×÷¡£

Èý¡¢Windows HOOK»úÖÆ

HOOK£¨¹³×Ó£©µÄ±¾ÖÊÊÇÒ»¶ÎÓÃÒÔ´¦ÀíϵͳÏûÏ¢µÄ³ÌÐò£¬Í¨¹ýϵͳµ÷Ó㬽«Æä¹ÒÈ뵽ϵͳ¡£¹³×ÓµÄÖÖÀàÓкܶ࣬ÿһÖÖ¹³×Ó¸ºÔð½Ø»ñ²¢´¦ÀíÏàÓ¦µÄÏûÏ¢¡£¹³×Ó»úÖÆÔÊÐíÓ¦ÓóÌÐò½Ø»ñ²¢´¦Àí·¢ÍùÖ¸¶¨´°¿ÚµÄÏûÏ¢»òÌØ¶¨Ê¼þ£¬Æä¼àÊӵĴ°¿Ú¼È¿ÉÒÔÊDZ¾½ø³ÌÄÚµÄÒ²¿ÉÒÔÊÇÓÉÆäËû½ø³ÌËù´´½¨µÄ¡£ÔÚÌØ¶¨µÄÏûÏ¢·¢³ö²¢µ½´ïÄ¿µÄ´°¿Ú֮ǰ£¬HOOK³ÌÐòÏÈÐнػñ´ËÏûÏ¢²¢µÃµ½¶ÔÆäµÄ¿ØÖÆÈ¨¡£´ËʱÔÚ¹³×Óº¯ÊýÖоͿÉÒԶԽػñµÄÏûÏ¢½øÐи÷ÖÖÐ޸Ĵ¦Àí£¬ÉõÖÁÇ¿ÐÐÖÕÖ¹¸ÃÏûÏ¢µÄ¼ÌÐø´«µÝ¡£

ÕâÀï×Ô¼ºÒ»¿ªÊ¼Ã»ÓÐŪÃ÷°×µÄµØ·½ÊÇ£¬HOOKµÄ¶àÉÙÊǰ´ÕÕHOOKµÄÖÖÀàÀ´»®·ÖµÄ£¬±ÈÈçWH_MOUSE, WH_KEYBOARDµÈ¡£µ«ÊÇÿһ¸öHOOKʵÖÊÉ϶¼ÓÉϵͳά»¤×ÅÒ»¸öÖ¸ÕëÁÐ±í£¬ÆäÖ¸ÕëÖ¸ÏòHOOKµÄ¸÷¸ö´¦Àíº¯Êý£¬ÎÒÃdzÆÖ®ÎªHOOK×ӳ̡£µ±µ÷ÓÃSetWindowsHookEx()ʱÔÚ¸ÃHOOKÁ´µÄ×ʼ°²×°Ò»¸öеÄHOOK×ӳ̣¬ÓÐʱ²»Ó°ÏìÀí½âʱÎÒÃÇҲ˵³ÉÊǰ²×°Ò»¸öÐÂHOOK£¬×îÔçµÄHOOKÔò·ÅÔÚÁ´±íµÄ×îºó£¨ÓеãÀàËÆÓÚÕ»£©¡£µ±HOOK¼àÊÓµÄÏûÏ¢³öÏÖʱ£¬²Ù×÷ϵͳµ÷ÓÃÁ´±í¿ªÊ¼´¦µÄµÚÒ»¸öHOOK×ӳ̽øÐд¦Àí£¬Ò²¾ÍÊÇ×îºó¼ÓÈëµÄHOOKÓÅÏÈ»ñµÃ¿ØÖÆÈ¨¡£ÕâÀïµÄHOOK´¦Àíº¯Êý±ØÐëÊÇÒ»¸ö»Øµ÷º¯Êý£¬¶øÇÒ²»Äܶ¨ÒåΪÀà³ÉÔ±º¯Êý£¬±ØÐëΪÆÕͨµÄCº¯Êý¡£ÔÚʹÓù³×Óʱ¸ù¾ÝÆä¼àÊÓ·¶Î§µÄ²»Í¬¿ÉÒÔ½«Æä·ÖΪȫ¾Ö¹³×ÓºÍÏ̹߳³×ÓÁ½´óÀ࣬ÆäÖÐÏ̹߳³×ÓÖ¸¶¨Ä³¸öÏß³ÌID£¨¿ÉÒÔÊǵ±Ç°Ị̈߳©£¬Ö»ÄܼàÊÓ¸ÃỊ̈߳»È«¾Ö¹³×Ó¿ÉÒÔ¶Ôͬһ¸ö´°¿ÚϵÄËùÓÐÏ߳̽øÐмàÊÓ¡£ÕâÀïµÄÈ«¾ÖHOOKµÄ±¾ÖÊ»¹ÊÇÓÉ´¥·¢HOOK»úÖÆµÄÏ̵߳÷ÓÃ×ÔÉí½ø³Ì¿Õ¼äÖеĴúÂë½øÐд¦Àí£¬ËùÒÔÎÒÃǵÄHOOK×ӳ̴úÂë±ØÐëÓ³Éä½ø¸ÃÏß³ÌËùÔڵĽø³ÌµÄµØÖ·¿Õ¼ä£¬¼´Í¨¹ýDLLµÄ·½Ê½ÊµÏÖ¡£ÎªÁË·½±ã´ó¼ÒÀí½â£¬ÕâÀïÎÒÃÇÒ²¸ø³öÒ»¸öͼʾ£º

Ê×ÏÈÎÒÃDZàдHOOKÇý¶¯Æ÷£¬½«HOOK.dllÓ³Éä½øÄÚ´æÖУ¬°²×°ºÃHOOKºó£¬½øÐÐHOOK¼àÊÓ£º

ËÄ¡¢ºËÐĺ¯Êý

ʹÓÃWindows HOOKËùÐèÒªµÄºËÐĺ¯Êý²»¶à£¬Ö»ÓÐËĸö£º

SetWindowsHookEx()£º°²×°Ò»¸öHOOK

HOOK ×ӳ̣ºHOOKµÄ´¦Àíº¯Êý£¬ÈçGetMsgProc£¬ KeyboardProcµÈ

CallNextHookEx()£ºµ÷ÓÃHOOKÁ´µÄÏÂÒ»¸öHOOK×Ó³Ì

UnhookWindowsHookEx()£ºÐ¶ÔØÒ»¸öHOOK

HHOOK SetWindowsHookEx(      

int idHook,

HOOKPROC lpfn,

HINSTANCE hMod,

DWORD dwThreadId

);

µÚÒ»¸ö²ÎÊýidHookÓÃÀ´±êʶHOOKÀàÐÍ£¬±ÈÈçÊó±êÐÅÏ¢ÓÃWH_MOUSE£¬¼üÅÌÏûÏ¢ÓÃWH_KEYBOARDµÈ£¬¸ü¶à²ÎÊýºÍ¹¦ÄÜÇë²éÔÄMSDN

µÚ¶þ¸ö²ÎÊýlpfnÖ¸ÏòÒ»¸ö¾ßÌåµÄHOOK×ӳ̣¬ÓÃÓÚʵ¼Ê´¦ÀíÀ¹½ØµÄÏûÏ¢

µÚÈý¸ö²ÎÊýhModÓÃÀ´±êʶHOOK×Ó³ÌËùÔÚµÄÄ£¿é£¬Èç¹ûÊÇÒ»¸öÈ«¾ÖHOOK£¬ÔòÊÇÒ»¸öÔØÈëÄÚ´æµÄDLL¾ä±ú£¨Ê¹ÓÃGetModuleHandleµÃµ½£©£»Èç¹ûÊÇÒ»¸öÄÚ²¿Ïß³ÌHOOK£¬ÔòΪNULL¼´¿É¡£

µÚËĸö²ÎÊýdwThreadÖ¸Ã÷HOOKµÄ·¶Î§£¬Èç¹ûÊÇ0Ôò±íʾ¼àÊÓÔËÐÐÔÚͬһ¸ö´°¿ÚϵÄËùÓÐỊ̈߳¬·ñÔòÖ¸¶¨Ò»¸ö¾ßÌåµÄÏß³ÌID¼´¿É¡£

BOOL UnhookWindowsHookEx(      

HHOOK hhk

);

Ð¶ÔØÒ»¸öHOOK£¬²ÎÊýΪSetWindowsHookEx()µÄ·µ»ØÖµ

LRESULT CallNextHookEx(      

HHOOK hhk,

int nCode,

WPARAM wParam,

LPARAM lParam

);

ÕâÀïµÄnCodeÐèÒªÎÒÃÇÌîд´«Ë͸öÏÂÒ»¸öHOOK×ӳ̵ĴúÂ룬Èç¹ûÊÇHC_ACTION£¬ÔòwParamºÍlParam°üº¬ÏûÏ¢ÐÅÏ¢£»Èç¹ûÊÇHC_NOREMOVEÔòwParamºÍlParam°üº¬ÏûÏ¢ÐÅÏ¢Í⣬ÏûÏ¢²»ÄÜ´ÓÏûÏ¢¶ÓÁÐÖÐÒÆ³ý

LRESULT CALLBACK KeyboardProc(      

int code,

WPARAM wParam,

LPARAM lParam

);

ÕâÀïÖ÷ÒªÊÇnCode²ÎÊý£¬ÐèÒª¸ù¾ÝÕâ¸ö²ÎÊýµÄÖµ¾ö¶¨ÈçºÎ´¦ÀíÏûÏ¢¡£Èç¹ûnCodeµÄֵСÓÚ0£¬Ôò±ØÐë·µ»ØCallNexHookEx()£¬nCode¿ÉÒÔÈ¡HC_ACTIONºÍHC_REMOVEÁ½¸ö²ÎÊýÖµ£¬ÓÉϵͳ¸ºÔðдÈ룬ÎÒÃÇÖ»ÊǽøÐÐÅжϡ£ÏêϸµÄʹÓ÷½·¨Çë²éÔÄMSDN°É¡£ÎÒÃÇÏÂÃæ¸ø³öÒ»¸öHOOK¼üÅÌÊäÈëµÄ¿ØÖÆÌ¨Àý×Ó¡£

Îå¡¢¼òµ¥³ÌÐòʾÀý

Ê×ÏÈÊÇÎÒÃDZàдµÄ²ÉÓÃÒþʽDLLµÄHOOKµÄDLLÎļþ

//²ÉÓÃÒþʽÁ´½ÓÌṩ¹³×Óº¯ÊýSetHook()°²×°Ò»¸öÈ«¾Ö¼üÅ̹³×Ó
#include
#include
#define MYAPI extern "C" _declspec(dllexport) //µ¼³öº¯ÊýÉùÃ÷£¬extern "C"Òª·ÅÔÚ×îÇ°Ãæ
HHOOK hHook = NULL;
LRESULT CALLBACK KeyboardProc(int code, WPARAM wParam, LPARAM lParam)
{
if (code >= 0)
return 1; //ÏûÏ¢²»ÔÙ´«µÝ¸öÏÂÒ»¸öHOOK×ӳ̣¬Ò²²»»áÔÙ·¢Ë͸øÄ¿µÄ´°¿Ú
else
return CallNextHookEx(hHook, HC_ACTION, wParam, lParam);
}
MYAPI int SetHook()
{
hHook = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, GetModuleHandleA("KeyboardHookDLL.dll"), 0);
if (hHook == NULL)
{
printf("SetWindowsHookEx() error :%d\n", GetLastError());
return -1;
}
return 0;
}
MYAPI int StopHook()
{
if (UnhookWindowsHookEx(hHook) == FALSE)
{
printf("UnhookWindowsHookEx() error :%d\n");
return -1;
}
return 0;
}
MicrosoftInternetExplorer402DocumentNotSpecified7.8Normal0

½ÓÏÂÀ´ÊÇ¿ØÖÆÌ¨³ÌÐò£¬¸ºÔð°²×°/Ð¶ÔØHOOK£º

//Ò»¸ö¸ºÔð°²×°¡¢Ð¶ÔؼüÅ̹³×ӵĿØÖÆÌ¨³ÌÐò
#include
#include
//Á´½ÓÖ¸¶¨¿âÎļþ
#pragma comment(lib, "KeyboardHookDLL.lib")
//ÒþʽDLL¿ÉÖ´ÐÐÄ£¿éÖÐÒ²±ØÐëÉùÃ÷DLLµ¼È뺯Êý
extern "C" _declspec(dllimport) int SetHook();
extern "C" _declspec(dllimport) int StopHook();
int main(int argc, char *argv[])
{
char YesNo;
printf("ÕâÊÇÒ»¸ö¹ØÓÚÈ«¾Ö¼üÅ̹³×ӵIJâÊÔ...\n");
printf("°²×°È«¾Ö¼üÅ̹³×Ó...\n");
SetHook();
printf("ÊÇ·ñÐ¶ÔØ¼üÅ̹³×Ó: £¨Y or N)\n");
YesNo = getchar();
if (YesNo == 'Y' || YesNo == 'y')
{
printf("¿ªÊ¼Ð¶Ôع³×Ó...\n\n");
StopHook();
printf("¹³×ÓÒѾ­Ð¶ÔØ...\n");
}
system("pause");
return 0;
}

Ö´ÐвâÊÔ½á¹û£º

ÔÚwordÖÐÊäÈëʱ»áµ¯³ö360¾¯¸æ£¬ËµÃ÷´ËʱÕý½«ÎÒÃǵÄHOOK.dll×¢Èëµ½word½ø³ÌÖУ¬ÔÊÐíºóÔÚwordÖеÄËùÓмüÅ̲Ù×÷¾Í¶¼Ê§Ð§ÁË£¬ÓÐÐËȤµÄͬѧÃÇ¿ÉÒÔ×Ô¼ºÊÔÒ»ÏÂŶ^_^

Áù¡¢ÎÊÌâ

ÔÚÔËÐгÌÐòµÄʱºò·¢ÏÖÁËÒ»¸öÎÊÌ⣬¾ÍÊǵ±ÎÒÃǵĿØÖÆÌ¨³ÌÐòÍ˳öºó£¬HOOK¾Í²»ÄÜʹÓÃÁË£¬µ±È»£¬¿ØÖÆÌ¨²»ÊÇÕý³£Í˳ö£¬Ã»ÓÐÔËÐÐStopHook£¬µ«ÊÇΪʲôHOOK¾ÍÒѾ­Ê§Ð§ÁËÄØ£¿ÄѵÀҪʹHOOKÆð×÷Óã¬ÎÒÃǵÄHOOKÇý¶¯ÒªÒ»Ö±ÔËÐÐÂð£¿

   
2355 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ

ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ