ÊÖ»úÕ¾
ÍøÍ¨·ÖÕ¾
µçÐÅÖ÷Õ¾
ÃÜ¡¡Âë:
Óû§Ãû£º
µ±Ç°Î»Öà : Ö÷Ò³>³ÌÐòÉè¼Æ>C/C++>Áбí

ÓÃVC»ñÈ¡ÆäËü³ÌÐòµÄÃüÁîÐвÎÊý

À´Ô´£º»¥ÁªÍø ×÷ÕߣºÎ÷²¿ÊýÂë ʱ¼ä£º2008-04-09
Î÷²¿ÊýÂë-È«¹úÐéÄâÖ÷»ú10Ç¿£¡40ÓàÏîÐéÄâÖ÷»ú¹ÜÀí¹¦ÄÜ,È«¹úÁìÏÈ!Ë«Ïß¶àÏßÐéÄâÖ÷»úÄϱ±·ÃÎʳ©Í¨ÎÞ×è!Ãâ·ÑÔùËÍÆóÒµÓʾÖ,.CNÓòÃû,×ÔÖú½¨Õ¾480ÔªÆð,Ãâ·ÑÊÔÓÃ7Ìì,ÂúÒâÔÙ¸¶¿î! P4Ö÷»ú×âÓÃ799Ôª/ÔÂ.Ô¸¶Ãâѹ½ð!
¡¡¡¡ÎÒÃǶ¼ÖªµÀ£¬ÔÚ³ÌÐòÀï»ñÈ¡ÃüÁîÐвÎÊýºÜ¼òµ¥£¬WinMainº¯Êý»áÒÔ²ÎÊýµÄÐÎʽ´«µÝ¸øÎÒÃÇ£¬»òÕß¿ÉÒÔµ÷ÓÃAPI GetCommandLine »ñÈ¡¡£µ«ÊÇGetCommandLineº¯Êý²»½ÓÊܲÎÊý£¬»ñÈ¡µÄÖ»ÊÇ×Ô¼º³ÌÐòµÄÃüÁîÐвÎÊý¡£ÄÇôÈç¹ûÎÒÃÇÏë»ñÈ¡±ðµÄÓ¦ÓóÌÐòµÄÃüÁîÐвÎÊýÓ¦¸ÃÔõô°ìÄØ£¿

¡¡¡¡ÓеÄͬѧ˵£¬¼ÈÈ»GetCommandLineÖ»ÄÜ»ñÈ¡±¾³ÌÐòµÄÃüÁîÐвÎÊý£¬ÎÒÃÇ¿ÉÒÔÔÚÆäËü½ø³ÌÀï²åÈëÒ»¸öDll£¬ÔÚÄǸö½ø³ÌµÄµØÖ·¿Õ¼äµ÷ÓÃGetCommandLineº¯Êý£¬È»ºó´«»ØÀ´¾Í¿ÉÒÔÁË¡£ÕâÑùºÃÏñÓеã¶ù²»Ì«ÓѺá£ÈÃÎÒÃÇÏëÏ뻹ÓÐûÓбðµÄ°ì·¨¡£

¡¡¡¡ÎÒÃÇÏ룬×Ô¼ºµÄÃüÁîÐвÎÊý¼ÈÈ»ËæÊ±¶¼¿ÉÒÔ»ñÈ¡µ½£¬ÄÇôÔڸýø³ÌÀïÒ»¶¨ÓÐÒ»¸öµØ·½´æ·ÅËü¡£ÄÇôÔÚÄĶùÄØ£¿¿´Ò»ÏÂGetCommandLineº¯ÊýµÄ·´»ã±à´úÂ룬ÎÒÃÇ·¢ÏÖ£¬Ô­À´ÊÀ½çÊÇÈç´ËµÄÃÀºÃ£¡

¡¡¡¡ÒÔÏÂÊÇWinXPϵͳµÄGetCommandLineº¯Êý·´»ã±à´úÂ룺

.text:7C812C8D GetCommandLineA proc near
.text:7C812C8D mov eax, dword_7C8835F4 //dword_7C8835F4 ¾ÍÊÇÃüÁîÐвÎÊý×Ö·û´®µÄµØÖ·
//¸ÃÖ¸Áî»úÆ÷ÂëΪ A1 F4 35 88 7C£¬´ÓµÚ2¸ö×Ö½Ú¿ªÊ¼µÄ4¸ö×Ö½Ú¾ÍÊÇÎÒÃÇÒªµÄµØÖ·
.text:7C812C92 retn
.text:7C812C92 GetCommandLineA endp
¡¡¡¡¼ÈȻ֪µÀÁË·ÅÔÚÄĶùÁË£¬ÎÒÃÇ×Ô¼ºÈ¥ÄþͿÉÒÔÁË¡£ÒòΪGetCommandLineº¯ÊýµÄµØÖ·ÔÚ¸÷¸ö½ø³ÌÄÚ¶¼ÊÇÒ»ÑùµÄ£¬ËùÒÔ¿ÉÒÔÖ±½ÓÓÃÎÒÃǽø³ÌÀïµÄµØÖ·¡£ win2000/xpϵͳºÜ¼òµ¥£¬98ÏÂÉÔ΢Âé·³Ò»µã¶ù£¬ÐèÒª½øÐÐһЩ¼òµ¥µÄ¼ÆËã¡£ ÒÔÏÂÊÇGetCommandLineº¯ÊýÔÚwin98ϵĻã±à´úÂ룺

.text:BFF8C907 GetCommandLineA proc near
.text:BFF8C907 mov eax, dword_BFFCADE4
.text:BFF8C90C mov ecx, [eax]
.text:BFF8C90E mov eax, [ecx 0C0h]
.text:BFF8C914 test eax, eax
.text:BFF8C916 jnz short locret_BFF8C91E
.text:BFF8C918 mov eax, [ecx 40h]
.text:BFF8C91B mov eax, [eax 8] //Ëãµ½Õâ¶ù£¬²ÅÊÇÎÒÃÇÏëÒªµÄµØÖ·
.text:BFF8C91E
.text:BFF8C91E locret_BFF8C91E: ; CODE XREF: GetCommandLineA F.
.text:BFF8C91E retn
¡¡¡¡ÕâÑù£¬ÎÒÃǾͿÉÒÔµ÷ÓÃOpenProcessº¯Êý´ò¿ªÆäËü½ø³Ì£¬È»ºóÓÃReadProcessMemory¶ÁÈ¡ÏàÓ¦µÄÊý¾Ý¼´¿É¡£ ʾÀý´úÂ룺

DWORD g_GetCmdLine(DWORD dwPID,TCHAR* pCmdLine,DWORD dwBufLen)
{
¡¡#define BUFFER_LEN 512 //reading buffer for the commandline

¡¡HANDLE hProc = OpenProcess(PROCESS_VM_READ,FALSE,dwPID);
¡¡if(hProc == NULL)
¡¡{
¡¡¡¡return GetLastError();
¡¡}

¡¡DWORD dwRet = -1;
¡¡DWORD dwAddr = *(DWORD*)((DWORD)GetCommandLine 1);//µÚ2¸ö×Ö½Ú¿ªÊ¼²ÅÊÇÎÒÃÇÒª¶ÁµÄµØÖ·
¡¡TCHAR tcBuf[BUFFER_LEN] = {0};
¡¡DWORD dwRead = 0;

¡¡//ÅÐ¶ÏÆ½Ì¨
¡¡DWORD dwVer = GetVersion();
¡¡try
¡¡{
¡¡¡¡if(dwVer < 0x80000000) // Windows NT/2000/XP
¡¡¡¡{
¡¡¡¡¡¡if(ReadProcessMemory(hProc,(LPVOID)dwAddr,&dwAddr,4,&dwRead))
¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡if(ReadProcessMemory(hProc,(LPVOID)dwAddr,tcBuf,BUFFER_LEN,&dwRead))
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡_tcsncpy(pCmdLine,tcBuf,dwBufLen); //×îºÃ¼ì²éÒ»ÏÂdwReadºÍdwBufLenµÄ´óС£¬Ê¹ÓýÏСµÄÄǸö
¡¡¡¡¡¡¡¡¡¡dwRet = 0;
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡}
¡¡¡¡}
¡¡¡¡else // Windows 95/98/Me and Win32s
¡¡¡¡{
¡¡¡¡¡¡while(true) //ʹÓÃwhileÊÇΪÁ˳ö´íʱ·½±ãÌø³öÑ­»·
¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡if(!ReadProcessMemory(hProc,(LPVOID)dwAddr,&dwAddr,4,&dwRead)) break;
¡¡¡¡¡¡¡¡if(!ReadProcessMemory(hProc,(LPVOID)dwAddr,&dwAddr,4,&dwRead)) break;

¡¡¡¡¡¡¡¡if(!ReadProcessMemory(hProc,(LPVOID)(dwAddr 0xC0),tcBuf,BUFFER_LEN,&dwRead)) break;
¡¡¡¡¡¡¡¡if(*tcBuf == 0)
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡if(!ReadProcessMemory(hProc,(LPVOID)(dwAddr 0x40),&dwAddr,4,&dwRead)) break;
¡¡¡¡¡¡¡¡¡¡if(!ReadProcessMemory(hProc,(LPVOID)(dwAddr 0x8),&dwAddr,4,&dwRead)) break;
¡¡¡¡¡¡¡¡¡¡if(!ReadProcessMemory(hProc,(LPVOID)dwAddr,tcBuf,BUFFER_LEN,&dwRead)) break;
¡¡¡¡¡¡¡¡}

¡¡¡¡¡¡¡¡_tcsncpy(pCmdLine,tcBuf,dwBufLen); //×îºÃ¼ì²éÒ»ÏÂdwReadºÍdwBufLenµÄ´óС£¬Ê¹ÓýÏСµÄÄǸö
¡¡¡¡¡¡¡¡dwRet = 0;
¡¡¡¡¡¡¡¡break;
¡¡¡¡¡¡}
¡¡¡¡}
¡¡}
¡¡catch(...)
¡¡{
¡¡¡¡dwRet = ERROR_INVALID_ACCESS; //exception
¡¡}
¡¡CloseHandle(hProc);
¡¡return dwRet;
}

ÎÄÕÂÕûÀí£ºÎ÷²¿ÊýÂë--רҵÌṩÓòÃû×¢²á¡¢ÐéÄâÖ÷»ú·þÎñ
http://www.west263.com
ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúÒª×ªÔØ±¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!

ÈÈµã¹Ø×¢
IDC×ÊѶ ÐéÄâÖ÷»ú ÓòÃû×¢²á ÍйÜ×âÓà vpsÖ÷»ú ÖÇÄܽ¨Õ¾
ÍøÕ¾ÔËÓª ½¨Õ¾¾­Ñé ²ß»®Ó¯Àû ËÑË÷ÓÅ»¯ ÍøÕ¾ÍÆ¹ã Ãâ·Ñ×ÊÔ´
ÍøÕ¾ÁªÃË ÁªÃËÐÂÎÅ ÁªÃ˽éÉÜ ÁªÃ˵ãÆÀ Íø×¬¼¼ÇÉ
ÐÐÒµ×ÊѶ Òµ½ç¶¯Ì¬ ËÑË÷ÒýÇæ ÍøÂçÓÎÏ· ÃÅ»§¶¯Ì¬ µç×ÓÉÌÎñ ¹ã¸æ´«Ã½
ÍøÂç±à³Ì Asp.Net±à³Ì Asp±à³Ì Php±à³Ì Xml±à³Ì Access Mssql Mysql ÆäËü
·þÎñÆ÷¼¼Êõ Web·þÎñÆ÷ Ftp·þÎñÆ÷ Mail·þÎñÆ÷ Dns·þÎñÆ÷ °²È«·À»¤
Èí¼þ¼¼ÇÉ ÆäËüÈí¼þ Word Excel Powerpoint Ghost Vista QQ¿Õ¼ä QQ FlashGet ѸÀ× Internet Explorer
ÍøÒ³ÖÆ×÷ FrontPages Dreamweaver Javascript css photoshop fireworks Flash
³ÌÐòÉè¼Æ Java¼¼Êõ C/C++ VB delphi
ÍøÂç֪ʶ ÍøÂçЭÒé ÍøÂ簲ȫ ÍøÂç¹ÜÀí ×éÍø·½°¸ Cisco¼¼Êõ
²Ù×÷ϵͳ Win2000 WinXP Win2003 Mac OS Linux FreeBSD
·µ»ØÊ×Ò³ |¹ØÓÚÎÒÃÇ | ÁªÏµÎÒÃÇ | ¸¶¿î·½Ê½ | ´´ÒµÁªÃË | ¼Û¸ñ×ÜÀÀ | ×ÊѶÖÐÐÄ | ÓÑÇéÁ´½Ó | ÍøÕ¾µØÍ¼ | ÕÐÏÍÄÉÊ¿ | RSS