| ²é¿´: 555 | »Ø¸´: 1 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
sdlj8051½ð³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
[תÌù]p-code Ö´ÐУ¨Ò룩
|
||
|
John Chamberlain ÔÚËûµÄÎÄÕ¡°Microsoft's P-Code Implementation¡±ÖÐÊÇÕâÑù½éÉܵģº ×î³õµÄPascal±àÒëÆ÷Éæ¼°Ìض¨µÄ¼ÆËã»ú£¬ËüµÄ¸´ÔÓÐÔ»ùÓÚ±àÒëÆ÷×ÔÉí¡£ÎªÁ˽â¾öÉú³É´úÂëµÄ¿çƽ̨ÎÊÌ⣬±àÒëÆ÷²úÉúÒ»ÖÖα´úÂ루αִÐдúÂ룬ÓëÌØ¶¨¼ÆËã»úµÄÖ¸ÁîÎ޹أ©¡°pseudo-opcode¡±£¬Ëü±»³ÆÎª"Pascal-P"£¬±àÒëÆ÷Äܹ»Êä³öαָÁî¡°p-pcode¡±¡£´óÔ¼10Äêºó£¬MicrosoftΪËü×Ô¼ºÏà¹Ø²úÆ·²ÉÓÃÁËÕâ¸ö¹ßÓõÄÊõÓï"p-code" ºÍ "p-code ÒýÇæ"¡£¶ÔÓÚ¡°VB p-code¡±£¬¿ÉÒÆÖ²ÐÔ¡°portable¡±²»ÊDZ»ÓÅÏÈ¿¼Âǵģ¬Õâ¸öǰ׺¡°p¡±µÄº¬Ò屻תÒåΪѹËõ¡°packed¡±£¬¿ÉÖ´ÐгÌÐò±»Ñ¹Ëõ³É×Ö½ÚÕ¼ÓúÜСµÄÎļþ¡£1995Äêsun¹«Ë¾µÄjavaϯ¾íÁËwebÊÀ½ç£¬Microsoft ×÷Ϊ»ØÓ¦£¬½«ËüµÄ p-code ÒýÇæ×ª»»³É¸üÐԸеÄÐÂÃû³Æ vbÐéÄâ»ú"VB Virtual Machine"£¬ÆäʵÕâ²¢²»Ê®·ÖÇ¡µ±¡£ÎÞÂÛÈçºÎ£¬Java's ²Ù×÷Âëopcode ¶ÔÓ¦µÄÊdzéÏóµÄcpuÖ¸ÁMicrosoftµÄp-codes ÊÇÒ»ÖÖ³éÏóµÄ±à³ÌÓïÑԺͻ·¾³£¬Ëü¸üÊʵ±µÄ³ÆºôÓ¦¸ÃÊÇvbÐéÄâÓïÑÔ "VB Virtual Language". VB ÐéÄâ»ú»ù´¡ ÈçÊÇÎÒÎÅ£¬John Chamberlain ½Ó×Å˵£¬VB6 ÓÐ1351 ÌõαָÁîopcodes£¬Ëüά»¤Ò»¸ö¼Ä´æÆ÷Ö¸ÕëºÍÒ»¸öÌø×ª±í£¬Ö¸ÏòÄÇЩ´ý´¦ÀíµÄºóÐøÎ±´úÂ룬²¢ÇÒ£¬vb²»Í¨¹ýp-code½øÐÐÑ»·²Ù×÷¡£ ¾ÙÀý£ºÖ´ÐÐαָÁîf5£¬½«Ò»¸öLong£¨³¤ÕûÐÍ£¬32 룬4 ¸ö×Ö½Ú£©±äÁ¿´æ´¢. ESI ¼Ä´æÆ÷×ÜÊÇÖ¸ÏòÓйصÄαָÁEAX °üº¬Ìø×ªµØÖ·µÄË÷Òý¡£ Address¡¡¡..(p-code bytes) 001a56d1¡¡¡3c 00 0a f5 £»f5 µ±Ç°Ö´ÐеÄαָÁî 001a56d5¡¡¡08 00 00 00 001a56d9¡¡¡71 78 ff 00 µ±Ç°Î±Ö¸ÁîÖ¸Áî½áÊøºó£¬½«Ìøµ½ÏÂÒ»ÌõαָÁ71£©´¦ Eax=000000f5 (begin) £» αָÁî Eax=00000071 (end) Esi=001a56d5 (begin) ; αָÁîÐòÁÐÖ¸Õë Esi=001a56da (enbd) 0FC01377 mov eax,dword ptr [esi] (1) Òý³öαָÁî²ÎÁ¿ 0FC01379 push eax (2) ½øÐÐαָÁîÏàÓ¦µÄ¹¤×÷ 0FC0137A xor eax,eax (3) תÈëÏÂÒ»¸öαָÁî 0FC0137C mov al,byte ptr [esi+4] 0FC0137F add esi,5 £» ÏÂÒ»¸ö´ý´¦ÀíµÄαָÁîλÖà 0FC01382 jmp dword ptr [eax*4+0FC027CCh] Ö´ÐÐÏà¹ØÎ±Ö¸ÁîµÄ´¦Àí¿ØÖÆ½ø³Ì ×¢£º0FC01382 Óï¾äÖеÄ0FC027CCh Ö¸ÏòÒ»¸öÏòÁ¿±í ´¦ÀíÒýÇæµÄ¹¤×÷£ºÔÚ×Ö½Ú´úÂëÁ÷ÖУ¬·ÅÈëÒ»¸ölongÊý¾ÝÀàÐ͵ij£Á¿8£¨ºÃÏñÕâÑùµÄÐÎʽ"F5 08 00 00 00"µÈ´ý±»vb´¦Àí»úÖ´ÐÐ. ËùÓеÄα´úÂë¶¼ÊÇ»ùÓÚÀàËÆµÄÐÎʽ¡£ ÈçÊÇÎÒÎÅ£¬John Chamberlain ÓÖ¼ÌÐø½âÊÍÉÏÃæµÄÕâ¸öʵÀý£º ÒÔÉÏʵÀýÖУ¬ÏòÁ¿±íÖ¸Ïò0FC027CC£¬Òò´Ë£¬Ò»¸öαָÁ71£©½«Ìøµ½Õâ¸öÏòÁ¿±íµÄµÚ71¸öÈë¿ÚµØÖ·71*4+0FC027CC. ÔÚÕâÀµÚ¶þ²½Ö»ÊǽøÐÐÁËÒ»¸ö¼òµ¥µÄѹջ²Ù×÷£¬µ«ÊÇÆäËûµÄα´úÂë¿ÉÄÜÓкܸ´ÔÓµÄÖ´Ðйý³Ì¡£²»¹ÜÄÇЩ´¦Àí¹ý³ÌÓжิÔÓ£¬Äã²»±Ø½éÈë¾ßÌåµÄÖ´Ðйý³Ì£¬Ö»ÒªÄãÇå³þÿ¸öαָÁî¶ÔÓ¦µÄÏòÁ¿±íÖÐÖ´ÐÐÈë¿Ú¼´¿É¡£ ÀýÈ磺ÔÚdebuggerÖÐÉèÖÃÒ»¸ö¶ÏµãÔÚ0FC01377£¨²ÎÕÕÒÔÉÏʵÀý£©£¬Äã¾Í»áÖжÏÔÚÖ´ÐÐαָÁîf5֮ǰ. Vb6ÐéÄâ»ú½ö½öÖ¸¶¨¼Ä´æÆ÷ESI£¬EAX×÷ΪרÓüĴæÆ÷£¬EAX×ÜÊÇÔÚ±»µ÷ÓÃ֮ǰÇå³ý(xor eax, eax)£¬²¢ÇÒ×°ÈëÓйصÄÌø×ª²ÎÁ¿£¬ÔÚÏàÓ¦µÄαָÁî´¦Àí¹ý³ÌÖУ¬ESI ¼Ä´æÆ÷ÊDZ»±£»¤µÄ. ÔÚÉÏÀýÖУ¬(add esi, 5) ʹµÃesiÖ¸ÏòÏÂÒ»ÌõαָÁ²¢ºöÂÔµ±Ç°Ö´ÐеÄαָÁîµÄ²ÎÊý¡£vbÓ¦ÓóÌÐòµÄÖ´ÐпØÖÆÁ÷ÊÇ»ùÓÚ¶ÔESI¼Ä´æÆ÷µÄÉèÖÃ. Vb6ÖÐÓÐ775 αָÁî´¦Àí×Ó³ÌÐò£¬´ó¸ÅÊÇÒòΪ1351 αָÁîÖÐÓÐһЩ¶ÔÓ¦×Åͬһ¸öαָÁî´¦Àí³ÌÐò¡£ John Chamberlain ÌṩµÄThe opcode database£¨¼û¸½¼þ£©¸ñʽ£º |Opcode|__|VB6ÐéÄâ»úµÄrva|__|VBAµÄrva|__|²ÎÊý³ß´ç|__|×¢ÊÍ| 1F___________09AD_____________0A32__________2_1_2____vbaRecUniToAnsi ²ÎÊý³ß´ç£º 1. ²ÎÊý×ܳߴç(bytes) 2. ²ÎÊý×ܸöÊý 3. µÚ1£¬2£¬3¸ö²ÎÊýµÄ³ß´ç£¨bytes£© ¸ü¶àµÄÐÅÏ¢Çë²ÎÕÕ£º http://www.programmersheaven.com ... cles/john/vbvm.htm. [ Last edited by sdlj8051 on 2006-10-6 at 12:36 ] |
» ²ÂÄãϲ»¶
Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
Ò»Ö¾Ô¸ Î÷±±´óѧ ×Ü·Ö282 Ó¢ÓïÒ»62 Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
µ÷¼Á310
ÒѾÓÐ4È˻ظ´
±±¿Æ281ѧ˶²ÄÁÏÇóµ÷¼Á
ÒѾÓÐ16È˻ظ´
Ò»Ö¾Ô¸ÉϺ£½»´óÉúÎïÓëҽҩר˶324·Ö£¬Çóµ÷¼Á
ÒѾÓÐ6È˻ظ´
Ò»Ö¾Ô¸¹þ¹¤´ó£¬085400£¬320£¬Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
316Çóµ÷¼Á
ÒѾÓÐ9È˻ظ´
085600 ²ÄÁÏÓ뻯¹¤ 329·ÖÇóµ÷¼Á
ÒѾÓÐ8È˻ظ´
0856Çóµ÷¼Á
ÒѾÓÐ6È˻ظ´
299Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
gph-rabbit
½ð³æ (СÓÐÃûÆø)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ½ð±Ò: 6187.4
- Ìû×Ó: 141
- ÔÚÏß: 85.2Сʱ
- ³æºÅ: 283155
- ×¢²á: 2006-10-08
- רҵ: ÐÅÏ¢°²È«
2Â¥2006-12-29 01:16:32













»Ø¸´´ËÂ¥