²é¿´: 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 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

gph-rabbit

½ð³æ (СÓÐÃûÆø)

ѧϰ¡£
2Â¥2006-12-29 01:16:32
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ sdlj8051 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 309Çóµ÷¼Á +3 gajsj 2026-03-25 4/200 2026-03-25 22:01 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] Çóµ÷¼Á323²ÄÁÏÓ뻯¹¤ +4 1124361 2026-03-24 4/200 2026-03-25 11:19 by shulmg
[¿¼ÑÐ] 299Çóµ÷¼Á +7 shxchem 2026-03-20 9/450 2026-03-25 10:41 by lbsjt
[¿¼ÑÐ] ²ÄÁÏѧÇóµ÷¼Á +6 Stella_Yao 2026-03-20 6/300 2026-03-25 00:37 by baoball
[¿¼ÑÐ] 292Çóµ÷¼Á +4 ¶ì¶ì¶ì¶î¶î¶î¶î¶ 2026-03-24 4/200 2026-03-24 16:41 by peike
[¿¼ÑÐ] 300Çóµ÷¼Á£¬²ÄÁÏ¿ÆÑ§Ó¢Ò»Êý¶þ +5 leaflight 2026-03-24 5/250 2026-03-24 16:25 by laoshidan
[¿¼ÑÐ] 307Çóµ÷¼Á +5 ³¬¼¶ÒÁ°º´óÍõ 2026-03-24 5/250 2026-03-24 15:46 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] 085404µç×ÓÐÅÏ¢284·ÖÇóµ÷¼Á +4 13659058978 2026-03-24 4/200 2026-03-24 12:15 by syl20081243
[¿¼ÑÐ] 384Çóµ÷¼Á +3 ×Óϵ²© 2026-03-22 6/300 2026-03-23 21:45 by ×Óϵ²©
[¿¼ÑÐ] Ò»Ö¾Ô¸ÎäÀí²ÄÁϹ¤³Ì348Çóµ÷¼Á +6 £þ^£þ©bº¹ 2026-03-19 9/450 2026-03-23 19:53 by pswait
[¿¼ÑÐ] 291Çóµ÷¼Á +5 ‹üÈA 2026-03-22 5/250 2026-03-23 09:20 by haoshis
[¿¼ÑÐ] 276Çóµ÷¼Á +3 YNRYG 2026-03-21 4/200 2026-03-23 08:31 by ×íÔÚ·çÀï
[¿¼ÑÐ] ʯºÓ×Ó´óѧ£¨211¡¢Ë«Ò»Á÷£©Ë¶²©Ñо¿Éú³¤ÆÚÕÐÉú¹«¸æ +3 Àî×ÓÄ¿ 2026-03-22 3/150 2026-03-22 21:01 by ÔõôÊÍ»³
[¿¼ÑÐ] 319Çóµ÷¼Á +4 СÁ¦Æøçæçæ 2026-03-20 4/200 2026-03-22 15:53 by ColorlessPI
[¿¼ÑÐ] ¿¼Ñе÷¼Á +3 ºôºô£¿~+123456 2026-03-21 3/150 2026-03-21 20:04 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 0805²ÄÁÏ320Çóµ÷¼Á +3 ÉÎïÓï 2026-03-20 3/150 2026-03-21 15:46 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] Çóµ÷¼Á +3 °×QF 2026-03-21 3/150 2026-03-21 13:12 by zhukairuo
[¿¼ÑÐ] Ò»Ö¾Ô¸Äϲý´óѧ£¬327·Ö£¬²ÄÁÏÓ뻯¹¤085600 +9 Ncdx123456 2026-03-19 9/450 2026-03-20 23:41 by lovewei0727
[¿¼ÑÐ] Ò»Ö¾Ô¸ ÄϾ©º½¿Õº½Ìì´óѧ´óѧ £¬080500²ÄÁÏ¿ÆÑ§Ó빤³Ìѧ˶ +5 @taotao 2026-03-20 5/250 2026-03-20 20:16 by JourneyLucky
[¿¼ÑÐ] 086500 325 Çóµ÷¼Á +3 Áì´øÐ¡ÐÜ 2026-03-19 3/150 2026-03-20 18:38 by ¾¡Ë´Ò¢1
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û