Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

Çó½ÌCÕâ¶ÎÓïÑÔ´úÂë×÷ÓÃ

DWORD dwMagic;
DWORD i;
BYTE dwCode;
DWORD dwAddr;

dwStartMap = SH->VirtualAddress + (DWORD)MapOfFile;//¶ÎÏÖÔÚÊ×µØÖ·
dwEndMap  = SH->Misc.VirtualSize + dwStartMap;//¶ÎÏÖÔÚÄ©µØÖ·
i = 0;
for (dwMagic=1; dwMagic <0xFF; dwMagic++)
{
if (i == dwEndMap)
    break ;
for (i=dwStartMap; i <dwEndMap; i++)
    {
dwCode = *(LPBYTE)i;
if (dwCode == 0xE8 || dwCode == 0xE9)//call»òjmp
{
    dwAddr = i + 5 + *(LPDWORD)(i+1);//ÌøתµÄÄ¿µÄµØÖ·
    if (dwAddr>dwStartMap && dwAddr <dwEndMap)
continue ; //¶ÎÄÚתÒÆ
    dwCode = *(LPBYTE)(i+1);//¶Î¼äתÒÆ£¬*(LPBYTE)(i+1)ÊÇÆ«ÒÆÁ¿µÄµÍ×Ö½Ú°É£¬±£´æµ½dwCodeÓÐʲôÓã¿Ê²Ã´Âß¼­£¿
    if (dwCode == dwMagic)
break ;  //ΪʲôÕâÑù×ö£¬Æ«ÒÆÁ¿µÄµÍ×Ö½ÚΪѭ»·µÄdwMagicµÄ¸ÅÂʺÜС°¡£¬¶øÇұȽÏÀàÐÍÒ²²»Ò»ÖÂ
}
      }
}//Õâ¸öÁ½²ãforÍêÁË£¬Ã»ÓÐ×öÈκβÙ×÷£¬Î¨ÓÐdwAddr±£´æÁË×îºó¸öcall»òjmpµÄÌøתµØÖ·£¬dwCodeÇ¡ºÃÊÇdwMagicµÄÖµ-¿ÉÄÜÐÔºÜС
DWORD dwMagic;
DWORD i;
BYTE dwCode;
DWORD dwAddr;
dwStartMap = SH->VirtualAddress + (DWORD)MapOfFile;//¶ÎÏÖÔÚÊ×µØÖ·
dwEndMap  = SH->Misc.VirtualSize + dwStartMap;//¶ÎÏÖÔÚÄ©µØÖ·
i = 0;
for (dwMagic=1; dwMagic <0xFF; dwMagic++)
{
if (i == dwEndMap)
break ;


Ïà¹ØÎÊ´ð£º

ѧϰÌÖÂÛ C/C++ QQȺ - C/C++ / ·Ç¼¼ÊõÇø

QQȺ 29152388
ÓÑÇéUP

°ï¶¥

up

°ïup

up Ö§³Ö£¡

up jf

...ÄѵÀÓзÖ..?

up up up
Ï£ÍûÓеüӷ֣¬¹þ¹þ¡£

Ö§³Ö£¬ÎÒ¼ÓÁË£¬Ï£ÍûÂ¥Ö÷ÄܼÓÎÒ£¬¹²Í¬Ñ§Ï°¹þ

¼ÓÁË¡£

¶¥ÉÏ£¬Ã¿ÌìÊÕ»ñÒ»µã£¬Ö§³Ö ......

C/C++µÄÒ»¸ö¼òµ¥ÎÊÌ⣬Çë½Ì¡£¡£

void Main(void)
{
    while(1)
    {
    char aa; 
    Uart_Printf("\nEnter the 'Y' or 'y' to test:");
& ......

¹ØÓÚÁÐÖ÷¸ß˹ÏûÔª·¨µÄC³ÌÐòʵÏÖµÄÎÊÌâ

ÏÂÃæÊÇÎÒдµÄ¹ØÓÚ¸ß˹ÁÐÖ÷ÏûÔª·¨µÄC³ÌÐòʵÏÖ·½·¨¡£µ«ÊÇÇó½â½á¹ûʼÖÕ²»ÕýÈ·°¡£¡¼ì²éºÜ¾ÃÁË£¬»¹ÊǼì²é²»³öÀ´£¬Âé·³ÄÄλ´ó¸ç¸øÖ¸µãÏ°ɣ¡ÏÈO(¡É_¡É)OллÁË£¡
³ÌÐò´úÂ룺

C/C++ code:
#include <stdio.h ......

cÖ¸ÕëÒç³öÎÊÌâ

¸Õ¸ÕÄǸöÔõô±»½áÌùÁË°¡£¬ÄÇÎÒÀ´¿ª¸ö°É¡£

C/C++ code:

char a='s';
char str[8]="Hello123";
printf("%c", a); //»¹ÊÇS£¬ÎªÊ²Ã´£¿
printf("\n%08X %0 ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ