ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡
ºÏ×âС˵Íø ·µ»Ø±¾ÊéĿ¼ ¼ÓÈëÊéÇ© ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ¡ºÊղص½ÎÒµÄä¯ÀÀÆ÷¡»

windows»·¾³ÏÂ32λ»ã±àÓïÑÔ³ÌÐòÉè¼Æ-µÚ28²¿·Ö

¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿! Èç¹û±¾ÊéûÓÐÔĶÁÍ꣬ÏëÏ´μÌÐø½Ó×ÅÔĶÁ£¬¿ÉʹÓÃÉÏ·½ "Êղص½ÎÒµÄä¯ÀÀÆ÷" ¹¦ÄÜ ºÍ "¼ÓÈëÊéÇ©" ¹¦ÄÜ£¡



¶ÔÓÚ¶àÑ¡Áбí¿ò£¬ÐèÒªÓÃLB_GETSELITEMSÏûÏ¢»ñÈ¡È«²¿Ñ¡ÖÐÏîÄ¿£¬Õâ¸öÏûÏ¢·µ»ØµÄÊÇÒ»¸öÁÐ±í£¬ËùÓÐÑ¡ÖÐÏîÄ¿µÄË÷Òý°´Ë³ÐòÅÅÁзµ»Øµ½»º³åÇøÖУ¬ËùÒÔÔÚÀý×ÓÖд¦Àí¡°²é¿´¡±°´Å¥ÏûÏ¢£¨IDOK£©µÄʱºò£¬³ÌÐòÏÈ·¢ËÍLB_GETSELCOUNTÏûÏ¢µÃµ½Ñ¡ÖеÄÏîÄ¿Êý£¬ÒÔ±ãÔÚÏÂÃæÓÃÒ»¸öÑ­»·»ñÈ¡ËùÓеÄÏîÄ¿£¬µÃµ½ÏîÄ¿Êýºó£¬ÔÙÓÃLB_GETSELITEMS½«Ñ¡ÖÐÏîÄ¿µÄË÷ÒýÈ¡µ½@szBufferÖУ¬½ÓÏÂÀ´½øÈëÒ»¸öÑ­»·£¬Ñ­»·µÄ´ÎÊý¾ÍÊÇLB_GETSELCOUNTµÃµ½µÄÊýÖµ£¬ÔÚÑ­»·ÖУ¬³ÌÐò´Ó@szBufferÖн«Ë÷ÒýÖµÖð¸öÈ¡³ö²¢ÓÃLB_GETTEXTÏûÏ¢»ñȡÿһÏîµÄ×Ö·û´®£¬×îºóÓÃÒ»¸öMessageBoxÏÔʾ³öÀ´¡£



¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡


µÚ5Õ¡¡Ê¹ÓÃ×ÊÔ´


5¡£5¡¡×Ö·û´®×ÊÔ´/5¡£6¡¡°æ±¾ÐÅÏ¢×ÊÔ´£¨1£©

¡¡¡¡¡¡¡¡
³ÌÐòÖÐÓõ½µÄ×Ö·û´®³£³£¶¨ÒåÔÚ¡¡nst¶ÎÖУ¬µ«WindowsÒ²ÌṩÁËÁíÍâÒ»ÖÖʹÓÃ×Ö·û´®³£Á¿µÄ·½·¨£¬ÄǾÍÊÇÔÚ×ÊÔ´Öж¨Òå¡£ËäÈ»ÔÚ×ÊÔ´Öж¨Òå×Ö·û´®Ê¹ÓÃÆðÀ´±ÈÖ±½ÓÔÚ¡¡nst¶ÎÖж¨ÒåÒª¸´ÔÓÒ»µã£¬µ«Ëü´øÀ´µÄºÃ´¦ÊDZãÓÚ¿ª·¢²»Í¬ÓïÑԵİ汾£¬±ÈÈ磬ҪÍƳöÆäËûÓïÖֵİ汾ֻÐèÒªÐÞ¸Ä×ÊÔ´ÖеÄ×Ö·û´®±í¾Í¿ÉÒÔÁË£¬¼´Ê¹ÓïÑÔת»»µÄ¹¤×÷ÊÇÓɵÚÈýÕßͨ¹ýÐ޸ĿÉÖ´ÐÐÎļþÀ´×öµÄ£¨Èç±à³Ì°®ºÃÕß³£³£×öµÄºº»¯¹¤×÷£©£¬ÐÞ¸Ä×ÊÔ´Ò²Ô¶±ÈÐ޸ĴúÂëÀ´µÃ¿ì½ÝºÍ°²È«¡£

ÔÚ×ÊÔ´½Å±¾Öж¨Òå×Ö·û´®µÄÓï·¨ÊÇ£º

STRINGTABLE¡¡£§DISCARDABLE£§

BEGIN

¡¡¡¡¡¡¡¡×Ö·û´®ID1¡¡¡¨×Ö·û´®1¡¨

¡¡¡¡¡¡¡¡×Ö·û´®ID2¡¡¡¨×Ö·û´®2¡¨

¡¡¡¡¡¡¡¡¡£¡¡¡£¡¡¡£

END

È«²¿×Ö·û´®×é³ÉÒ»¸ö×Ö·û´®±í£¬ºÍÆäËû×ÊÔ´¶¨Ò岻ͬ£¬ÓÉÓÚÕû¸ö×ÊÔ´ÎļþÖÐÖ»Äܶ¨ÒåÒ»¸ö×Ö·û´®±í£¬ËùÒÔ×Ö·û´®±íûÓÐ×ÊÔ´ID£¬µ«ÊDZíÖеIJ»Í¬×Ö·û´®·Ö±ðÓÐÒ»¸ö×Ö·û´®ID¡£

ÔÚ³ÌÐòÖÐʹÓÃ×Ö·û´®×ÊÔ´Ò²ºÜ¼òµ¥£¬ÓÃLoadString°Ñ×Ö·û´®×°Èëµ½»º³åÇøÖÐÈ¥¾Í¿ÉÒÔÓÃÁË£º

invoke¡¡¡¡LoadString£¬hInstance£¬×Ö·û´®ID£¬addr¡¡»º³åÇø£¬sizeof¡¡»º³åÇø

ΪÁË·ÀÖ¹Òç³ö£¬×îºóÒ»¸ö²ÎÊýÖ¸¶¨»º³åÇøµÄ³¤¶È¡£

Èç¹ûÒªÔÚµ¥¸ö¿ÉÖ´ÐÐÎļþÖÐʵÏÖ¶àÓïÖÖ£¬ÄÇô¿ÉÒÔÔÚ×Ö·û´®±íÖж¨Ò岻ͬÓïÑÔµÄ×Ö·û´®¡£Í¬Ò»ÓïÖÖµÄ×Ö·û´®°´¹æÂÉÅÅÁУ¬ÈçÏÂÁÐÖÐÎĵÄÒÔ1000¿ªÍ·£¬Ó¢ÎĵÄÒÔ2000¿ªÍ·£º

stringtable

£û

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1001¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨ÎļþδÕÒµ½£¡¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡1002¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨ÎÞ·¨´ò¿ªÎļþ£¡¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡£¡£

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2001¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨File¡¡not¡¡found£¡¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡2002¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¨Can¡¡not¡¡open¡¡file£¡¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡£¡£¡£

£ý

ÔÚ³ÌÐòÖÐʹÓõÄʱºò£¬ÏÈÈ·¶¨Ò»ÖÖÓïÑÔ²¢Ô¤ÏÈÉèÖÃÔÚdwLanguage±äÁ¿ÖУ¬Ê¹ÓÃÖÐÎÄʱ½«dwLanguageÉèÖÃΪ1000£¬Ê¹ÓÃÓ¢ÎÄʱÉèÖÃΪ2000£¬ÔÙдһ¸ö¶ÁÈ¡²»Í¬°æ±¾×Ö·û´®µÄ×Ó³ÌÐò_GetString£¬ÕâÑùµ÷ÓÃ_GetString×Ó³ÌÐòºó¾Í²»Óÿ¼ÂÇ°æ±¾ÎÊÌâÁË£º

_GetString¡¡¡¡¡¡proc¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡_dwID£»_lpBuffer£»_dwSize

¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡pushad

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡mov¡¡¡¡¡¡¡¡¡¡eax£»_dwID

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡add¡¡¡¡¡¡¡¡¡¡eax£»dwLanguage

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡LoadString£»hInstance£»eax£»_lpBuffer£»_dwSize

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡popad

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ret

¡¡

_GetString¡¡¡¡¡¡endp

5¡£6¡¡¡¡°æ±¾ÐÅÏ¢×ÊÔ´

ÓÐʱӦÓóÌÐòÐèҪȷ±£×Ô¼ºÔËÐÐʱʹÓÃijһÌض¨°æ±¾µÄDLL£¬ÒÔ±ãÈ·±£¿ÉÒÔʹÓÃijЩº¯Êý¡£¼ì²â°æ±¾ÊÇͨ¹ýAPIº¯Êý²éѯ¶¨ÒåÓÚ×ÊÔ´Öеİ汾ÐÅÏ¢À´Íê³ÉµÄ£¬Èç¹û×ÊÔ´ÖÐûÓж¨Òå°æ±¾£¬ÄÇô¾ÍÎÞ·¨ÖªµÀÒ»¸öÎļþµÄ°æ±¾¾¿¾¹ÊǶàÉÙ¡£

°æ±¾ÐÅÏ¢ÊÇÒÔVERSIONINFOÀàÐ͵Ä×ÊÔ´±£´æÔÚÓ¦ÓóÌÐòÖеģ¬ÀïÃæ¿ÉÒÔ¶¨ÒåµÄÐÅÏ¢°üÀ¨ÎļþµÄ°æ±¾ºÅ¡¢´´½¨µ¥Î»ºÍÓïÖֵȡ£°æ±¾ÐÅÏ¢µÄ¶¨ÒåÊÇ¿ÉÑ¡µÄ£¬Ò»¸ö³ÌÐò¿ÉÒÔ²»¶¨Òå°æ±¾ÐÅÏ¢×ÊÔ´£¬Èç¹û¶¨ÒåÁ˵Ļ°£¬Ò²²»Ò»¶¨Òª¶¨ÒåÈ«²¿ÐÅÏ¢ÏîÄ¿¡£

Èç¹ûÒ»¸öÎļþ¶¨ÒåÓа汾ÐÅÏ¢×ÊÔ´£¬ÄÇôÔÚÎļþµÄÊôÐÔÒ³£¨ÔÚÎļþͼ±êÉÏ°´Êó±êÓÒ¼ü£¬ÔÚµ¯³öµÄ²Ëµ¥ÉÏÑ¡Ôñ£©ÉϾͻáÓÐÒ»¸ö¡°°æ±¾¡±Ò³Ã棬Èçͼ5¡£10Ëùʾ¡£


ͼ5¡£10¡¡¡¡ÎļþÊôÐÔÖеİ汾ÐÅÏ¢

5¡£6¡£1¡¡¡¡°æ±¾ÐÅÏ¢×ÊÔ´µÄ¶¨Òå

ÔÚËù¸½¹âÅ̵ÄChapter05VersionInfoĿ¼ÖÐÓÐÒ»¸öÀý×Ó£¬ÔÚ¸ÃĿ¼µÄVersion¡£rcÎļþÖж¨ÒåÁËÒ»¸ö°æ±¾ÐÅÏ¢£¬¶ÁÕß¿ÉÒÔ¿´±àÒëºóµÄVersionInfo¡£exeÖеġ°°æ±¾¡±ÊôÐÔÒ³£¬¶Ô±ÈÒ»ÏÂ×ÊÔ´¶¨ÒåÖеÄÄÚÈݾ¿¾¹³öÏÖÔÚÊôÐÔÒ³µÄÄÄЩµØ·½£¬¶¨ÒåµÄ´úÂëÈçÏ£º

1¡¡VERSIONINFO

FILEVERSION¡¡1£»2£»3£»4

PRODUCTVERSION¡¡2£»3£»4£»5

FILEOS¡¡VOS_WINDOWS32

FILETYPE¡¡VFT_APP

FILESUBTYPE¡¡VFT2_UNKNOWN

BEGIN

¡¡¡¡¡¡¡¡BLOCK¡¡¡¨VarFileInfo¡¨

¡¡¡¡¡¡¡¡BEGIN

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨Translation¡¨£»¡¡Ox804£»¡¡Ox4b0

¡¡¡¡¡¡¡¡END

¡¡¡¡¡¡¡¡BLOCK¡¡¡¨StringFileInfo¡¨

¡¡¡¡¡¡¡¡BEGIN

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡BLOCK¡¡¡¨080404b0¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡BEGIN

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨ments¡¨£»¡¡¡¨Here¡¡is¡¡ments0¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨panyName¡¨£»¡¡¡¨Here¡¡is¡¡panyName0¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨FileDescription¡¨£»¡¡¡¨Here¡¡is¡¡FileDescription0¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨FileVersion¡¨£»¡¡¡¨1£»¡¡0£»¡¡0£»¡¡10¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨InternalName¡¨£»¡¡¡¨Here¡¡is¡¡InternalName0¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨LegalCopyright¡¨£»¡¡¡¨Here¡¡is¡¡LegalCopyright0¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨LegalTrademarks¡¨£»¡¡¡¨Here¡¡is¡¡LegalTrademarks0¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨OriginalFilename¡¨£»¡¡¡¨Here¡¡is¡¡OriginalFilename0¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨PrivateBuild¡¨£»¡¡¡¨Here¡¡is¡¡PrivateBuild0¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨ProductName¡¨£»¡¡¡¨Here¡¡is¡¡ProductName0¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨ProductVersion¡¨£»¡¡¡¨1£»¡¡0£»¡¡0£»¡¡10¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨SpecialBuild¡¨£»¡¡¡¨Here¡¡is¡¡SpecialBuild0¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡END

¡¡¡¡¡¡¡¡END

END

ÏÖÔÚÀ´¿´ÕâЩ¶¨ÒåÓï¾äµÄº¬Òå¡£Ê×ÏÈ£¬°æ±¾ÐÅÏ¢¶¨ÒåµÄÓï¾ä¸ñʽÊÇ£º

°æ±¾ÐÅÏ¢×ÊÔ´ID¡¡¡¡¡¡¡¡VERSIONINFO

¹Ì¶¨ÊôÐÔ

BEGIN

¡¡¡¡¡¡¡¡¿éÉùÃ÷¶¨Òå

¡¡¡¡¡¡¡¡¡­¡­

END



¡¡
À´Ô´£ºµç×Ó¹¤Òµ³ö°æÉç¡¡×÷ÕߣºÂÞÔƱò¡¡ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
ÉÏÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡»ØÊéÄ¿¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÏÂÒ»Ò³¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡


µÚ5Õ¡¡Ê¹ÓÃ×ÊÔ´


5¡£6¡¡°æ±¾ÐÅÏ¢×ÊÔ´£¨2£©

¡¡¡¡¡¡¡¡
°æ±¾ÐÅÏ¢×ÊÔ´IDµÄÈ¡Öµ±ØÐëΪ1£¬Èç¹û²»Îª1ÔòÊôÐÔÒ³Éϵġ°°æ±¾¡±ÐÅÏ¢ÊÇÎÞ·¨ÏÔʾ³öÀ´µÄ¡££¨±ÊÕßÒ²²»Ã÷°×Ϊʲô±ØÐëΪ1»¹Òª¶¨ÒåÕâ¸öID£¬ÏñstringtableÒ»ÑùûÓÐID²»¾ÍÍêÊÂÁË£¿£©

¿ÉÒÔ¶¨ÒåµÄ¹Ì¶¨ÊôÐÔÓУº

¡ñ¡¡¡¡¡¡FILEVERSION¡ª¡ª¶¨ÒåÎļþ°æ±¾ºÅ£¬¿ÉÒÔ¶¨Òå4¸ö16λ°æ±¾ºÅxx¡£xx¡£xx¡£xx¡£

¡ñ¡¡¡¡¡¡PRODUCTVERSION¡ª¡ª¶¨Òå²úÆ·°æ±¾ºÅ£¬¿ÉÒÔ¶¨Òå4¸ö16λ°æ±¾ºÅxx¡£xx¡£xx¡£xx¡£

¡ñ¡¡¡¡¡¡FILEFLAGSMASK¡ª¡ªÖ¸¶¨FILEFLAGSÊôÐÔÖÐÄÄЩλÓÐЧ¡£

¡ñ¡¡¡¡¡¡FILEFLAGS¡ªÎļþ±êÖ¾£¬ÊÇһЩ±ê־λµÄ×éºÏ£ºVS_FF_PATCHED£¬VS_FF_DEBUG£¬VS_FF_PRIVATEBUILD£¬VS_FF_INFOINFERRED£¬VS_FF_PRERELEASEºÍVS_FF_SPECI¡­¡¡ALBUILD¡£

¡ñ¡¡¡¡¡¡FILEOS¡ª¶¨ÒåÊÊÓõIJÙ×÷ϵͳ£¬¿ÉÒÔ¶¨ÒåΪVOS_UNKNOWN£¬VOS_DOS£¬VOS_NT£¬VOS_WINDOWS16£¬VOS_WINDOWS32£¬VOS_DOS_WINDOWS16£¬VOS_DOS_WINDOWS32¡¡»òVOS_NT_WINDOWS32¡£

¡ñ¡¡¡¡¡¡FILETYPE¡ª¶¨ÒåÎļþÀàÐÍ£¬¿ÉÒÔÊÇVFT_UNKNOWN£¬VFT_APP£¬VFT_DLL£¬VFT_¡¡DRV£¬VFT_FONT£¬VFT_VXD»òVFT_STATIC_LIB¡£

¡ñ¡¡¡¡¡¡FILESUBTYPE¡ª¡ª¶¨ÒåÎļþµÄ×ÓÀàÐÍ¡£µ±ÎļþÀàÐÍÊÇVFT_DRV£¨Çý¶¯³ÌÐò£©µÄʱºò£¬ÕâÀï¿ÉÒÔÊÇVFT2_UNKNOWN£¬VFT2_DRV_M£¬VFT2_DRV_PRINTER£¬VFT2_DRV_¡¡KEYBOARD£¬VFT2_DRV_LANGUAGE£¬VFT2_DRV_DISPLAY£¬VFT2_DRV_MOUSE£¬VFT2_DRV_NETWORK£¬VFT2_DRV_SYSTEM£¬VFT2_DRV_INSTALLABLE»òVFT2_¡¡DRV_SOUND£»µ±ÎļþÀàÐÍÊÇVFT_FONT£¨×ÖÌ壩µÄʱºò£¬ÕâÀï¿ÉÒÔÊÇVFT2_UNKNOWN£¬VFT2_FONT_RASTER£¬VFT2_FONT_VECTOR»òVFT2_FONT_TRUETYPE¡£

Ôڹ̶¨ÊôÐÔ¶¨ÒåÍê³ÉÒÔºó£¬ÐèÒª¶¨ÒåһЩ¿éÉùÃ÷£¬¿éÉùÃ÷ÓÐÁ½ÖÖ£º±äÁ¿Ð͵ÄÐÅÏ¢¿éºÍ×Ö·û´®ÀàÐ͵ÄÐÅÏ¢¿é£¬±äÁ¿ÀàÐ͵ÄÐÅÏ¢¿é¶¨ÒåÈçÏ£º

BLOCK¡¡¡¨VarFileInfo¡¨

BEGIN

¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨Translation¡¨£»

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ÓïÑÔID£»×Ö·û¼¯ID

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡­¡­

END

ÓïÑÔIDµÄ³£ÓÃÖµÓÐOx0404£¨·±ÌåÖÐÎÄ£©¡¢Ox0409£¨ÃÀ¹úÓ¢ÓºÍOx0804£¨¼òÌåÖÐÎÄ£©£¬×Ö·û¼¯IDµÄ³£ÓÃÖµÓÐ0£¨7λASCII£©¡¢950£¨Ì¨ÍåGB5£©ºÍ1200£¨Unicode£©¡£Ò»°ãʹÓÃOx804£»¡¡Ox4b0À´¶¨Ò壬Ҳ¾ÍÊǼòÌåÖÐÎĺÍUnicode£¨Ox4b0£½1200£©¡£ÆäËû»¹ÓкܶàÈ¡Öµ£¬¶ÁÕß¿ÉÒԲ鿴Rc¡£exeµÄ°ïÖúÎļþ¡£

±äÁ¿ÀàÐÍÐÅÏ¢¿éÓÃÀ´±íʾVERSIONINFO×ÊÔ´Öж¨ÒåÓÐÄÄЩÓïÑÔºÍ×Ö·û¼¯µÄ×Ö·û´®ÀàÐÍÐÅÏ¢¿é¡£ÈçÉÏÀýÖÐÓÐÒ»¾äVALUE¡¡¡¨Translation¡¨£¬Ox804£¬Ox4b0±íʾ¶ÔÓ¦ÓÐÒ»¸öÃûΪ¡°080404b0¡±µÄ×Ö·û´®ÀàÐ͵ÄÐÅÏ¢¿é¡£

×Ö·û´®ÐÅÏ¢¿éµÄ¶¨ÒåÓï¾äΪ£º

BLOCK¡¡¡¨StringFileInfo¡¨

BEGIN

¡¡¡¡¡¡¡¡¡¡BLOCK¡¡¡¨ÓïÑÔ¼¯¡¨

¡¡¡¡¡¡¡¡BEGIN

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨×Ö·û´®Ãû³Æ¡¨£»¡¡¡¨×Ö·û´®¡¨

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡­¡­

¡¡¡¡¡¡¡¡END

END

ÓïÑÔ¼¯¾ÍÊDZäÁ¿ÀàÐÍÖж¨ÒåµÄ£¬ÆäÃû³ÆÒ»¶¨ÒªÊǽ«ÓïÑÔIDºÍ×Ö·û¼¯ID×éºÏ³ÉÒ»¸ö8λµÄ16½øÖƵĸñʽ£¬ÒÔÉÏÀýÎļþÀ´ËµÃ÷£¬µ±±äÁ¿ÀàÐ͵ÄÐÅÏ¢¿éÖÖ¶¨ÒåOx804£»Ox4b0ʱ£¬ÓïÑÔ¼¯Ãû³Æ¾ÍÊÇ¡°080404b0¡±£¬ÔÚÓïÑÔ¼¯¿éµÄ¶¨ÒåÖУ¬»¹¿ÉÒÔ¶¨Òå¶àÌõ×Ö·û´®Ð͵İ汾ÐÅÏ¢£¬ÕâЩ°æ±¾ÐÅÏ¢µÄ×Ö·û´®ÃûÓÐ12ÖÖ£¬Èç±í5¡£9Ëùʾ¡£

±í5¡£9¡¡¡¡°æ±¾ÐÅÏ¢×Ö·û´®ÀàÐÍ

×Ö·û´®Ãû³Æ
¡¡ÊôÐÔҳλÖÃ
¡¡Ëµ¡¡¡¡¡¡¡¡Ã÷
¡¡
ments
¡¡±¸×¢
¡¡ÓйسÌÐòµÄ¸½¼Ó˵Ã÷ÐÅÏ¢
¡¡
panyName
¡¡¹«Ë¾
¡¡¿ª·¢²úÆ·µÄ¹«Ë¾
¡¡
FileDescription
¡¡ÃèÊö
¡¡ÓйØÎļþµÄ¼òµ¥ÃèÊö
¡¡
FileVersion
¡¡Îļþ°æ±¾
¡¡Èç1¡£50¡¢5¡£0¡£RC2µÈ×Ö·û´®Ð͵İ汾ÐÅÏ¢
¡¡
InternalName¡¡
¡¡ÄÚ²¿Ãû³Æ
¡¡¡¡
¡¡
LegalCopyright
¡¡°æȨ
¡¡ÎļþµÄËùÓаæȨÐÅÏ¢
¡¡
LegalTrademarks
¡¡ºÏ·¨É̱ê
¡¡ÎļþµÄËùÓÐ×¢²áÉ̱êÐÅÏ¢
¡¡
OriginalFilename
¡¡Ô´ÎļþÃû
¡¡Ô­Ê¼ÎļþÃû£¬´ÓÕâÀï¿ÉÒÔµÃÖªÎļþÊÇ·ñ±»¸ÄÃû
¡¡
PrivateBuild
¡¡¸öÈËÓÃÄÚ²¿°æ±¾ËµÃ÷
¡¡×÷Õß˽ÈËÐÅÏ¢
¡¡
ProductName
¡¡²úÆ·Ãû³Æ
¡¡ÎļþËùÊôµÄ²úÆ·Ãû³Æ
¡¡
ProductVersion
¡¡²úÆ·°æ±¾
¡¡ÎļþËùÊôµÄ²úÆ·µÄ°æ±¾ºÅ
¡¡
SpecialBuild
¡¡ÌØÊâÄÚ²¿°æ±¾ËµÃ÷
¡¡ÌØÊâ˵Ã÷
¡¡

¶¨Òå°æ±¾ÐÅÏ¢×Ö·û´®µÄʱºòҪעÒ⣬ËùÓеÄ×Ö·û´®±ØÐëÊÇÒÔNULL½áβµÄ´®£¬ËùÒÔÒªÔÚ×Ö·û´®Î²¼ÓÉÏ0£¬ÈçÀý×Ó³ÌÐòËùʾ£º

¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨ments¡¨£»¡¡¡¨Here¡¡is¡¡ments0¡¨

¡¡¡¡¡¡¡¡¡¡VALUE¡¡¡¨panyName¡¨£»¡¡¡¨Here¡¡is¡¡panyName0¡¨

¡£¡£¡£

5¡£6¡£2¡¡¡¡ÔÚ³ÌÐòÖмì²â°æ±¾ÐÅÏ¢

Win32¡¡APIÖÐÓÐ3¸ö°æ±¾ÐÅÏ¢º¯Êý£ºGetFileVersionSize£¬GetFileVersionInfo¡¡ºÍ¡¡VerQueryValue£¬ËüÃÇפÁôÔÚVERSION¡£DLLÎļþÖУ¬Èç¹ûÔÚÔ´³ÌÐòÖÐʹÓÃËüÃÇ£¬×¢ÒâÒª¼ÓÉÏinclude¡¡Version¡£incÒÔ¼°includelib¡¡Version¡£libÓï¾ä¡£

ÓÃÕâ3¸öº¯Êý»ñÈ¡°æ±¾ÐÅÏ¢µÄ·½·¨ÊÇ£º

Ê×Ïȵ÷ÓÃGetFileVersionInfoSizeº¯Êý¼ì²âÎļþÖÐÓÐûÓа汾ÐÅÏ¢×ÊÔ´£º

¡¡¡¡¡¡¡¡¡¡invoke¡¡¡¡GetFileVersionInfoSize£»addr¡¡szFile£»NULL

ÆäÖÐszFileÊÇÒª¼ì²âµÄPEÎļþÃû×Ö·û´®£¬¸Ãº¯ÊýµÄ·µ»ØÖµÊÇ°æ±¾ÐÅÏ¢×ÊÔ´µÄ³¤¶È£¬Èç¹û·µ»Ø0£¬Ôò±íʾÎļþ²»ÊÇPEÎļþ»òûÓж¨Òå°æ±¾ÐÅÏ¢×ÊÔ´¡£

Èç¹û¼ì²âµ½ÎļþÖÐÓа汾ÐÅÏ¢×ÊÔ´£¬ÄÇô¿ÉÒÔ½«°æ±¾ÐÅÏ¢×ÊÔ´¶ÁÈ¡µ½Ò»¸ö»º³åÇøÖУ¬»º³åÇøµÄ³¤¶È±ØÐë×ã¹»ÈÝÄÉÉÏÒ»²½·µ»ØµÄ×ÊÔ´³¤¶È£¬·½·¨ÊÇ£º

invoke¡¡¡¡¡¡GetFileVersionInfo£»addr¡¡szFile£»NULL£»sizeof¡¡dbVerInfo£»addr¡¡dbVerInfo

ÆäÖÐdbVerInfoΪһ¸ö×ã¹»´óµÄ»º³åÇø¡£¸Ãº¯Êý»á°ÑÕû¸ö°æ±¾ÐÅÏ¢×ÊÔ´¿½±´µ½Õâ¸ö»º³åÇøÖС£

¿½±´µ½»º³åÇøÖÖµÄÐÅÏ¢ÓÐËü×Ô¼ºµÄ¸ñʽ£¬±ØÐëÓÃVerQueryValueÈ¥¡°½âÂ롱£¬½âÂë¹Ì¶¨ÊôÐԵķ½·¨ÊÇ£º

invoke¡¡¡¡¡¡VerQueryValue£»addr¡¡dbVerInfo£»addr¡¡szRoot£»addr¡¡lpBuffer£»addr¡¡dwLen

µÚÒ»¸ö²ÎÊýÖ¸ÏòÇ°Ò»²½·µ»ØµÄ°æ±¾ÐÅÏ¢×ÊÔ´Êý¾Ý£¬µÚ¶þ¸ö²ÎÊýÖ¸ÏòÒ»¸ö×Ö·û´®£º¡°¡±£¬µÚÈýºÍµÚËĸö²ÎÊýÖ¸ÏòdwÀàÐ͵ıäÁ¿lpBufferºÍdwLen£¬·µ»Øµ½lpBufferÖеÄÊÇÖ¸ÏòÒ»¸öVS_FIXEDFILEINFO½á¹¹µÄÖ¸Õ룬Õâ¸ö½á¹¹ÖÐÓж¨ÒåµÄ¹Ì¶¨ÊôÐÔÄÚÈÝ¡£

Èç¹ûÒª»ñÈ¡×Ö·û´®ÀàÐÍÐÅÏ¢¿éÖеİ汾ÐÅÏ¢£¬ÄǾͱȽϸ´ÔÓÒ»µãÁË£¬±ØÐëÊ×ÏÈÖªµÀÓïÑÔ¼¯µÄÃû³Æ£¬ËùÒÔÏÈÒª»ñÈ¡°æ±¾ÐÅÏ¢×ÊÔ´ÖбäÁ¿ÀàÐÍÐÅÏ¢¿éµÄÄÚÈÝ£¬·½·¨ÊÇ£º

invoke¡¡¡¡¡¡VerQueryValue£»addr¡¡dbVerInfo£»addr¡¡szVarInfo£»addr¡¡lpBuffer£»addr¡¡dwLen

mov¡¡¡¡¡¡¡¡¡¡¡¡eax£»lpBuffer

mov¡¡¡¡¡¡¡¡¡¡¡¡eax£»£§eax£§

ror¡¡¡¡¡¡¡¡¡¡¡¡eax£»16

szVarInfoÊÇÒ»¸ö×Ö·û´®£º¡°VarFileInfoTranslation¡±£¬Õâʱº¯ÊýÔÚlpBufferÖзµ»ØÓïÑÔ¼¯±äÁ¿Ö¸ÕëµÄÖ¸Õ룬ËùÒÔÒªÏÈmov¡¡eax£»lpBuffer£¬ÔÙÓÃeax×÷Ö¸ÕëÓÃmov¡¡eax£»£§eax£§µÃµ½ÓïÑÔ¼¯±äÁ¿¡£ÓïÑÔ¼¯±äÁ¿µÄ¸ß16λÊÇ×Ö·û¼¯ID£¬µÍ16λÊÇÓïÑÔID£¬¿ÉÒÔʹÓÃror¡¡eax£»16À´µ÷»»¸ßµÍ룬ÒÔÎÒÃǵÄÀý×ÓΪÀý£¬ÏÖÔÚeaxÖеÄÖµ¾ÍÊÇ080404b0hÁË£¡

½ÓÏÂÀ´¾Í¿ÉÒÔ»ñÈ¡×Ö·û´®°æ±¾ÐÅÏ¢ÁË£¬ÏȽ«ÓïÑÔ¼¯µÄֵͨ¹ýwsprintfº¯Êýת»»³É¡°080404b0¡±µÄÐÎʽ£¬È»ºóÆ´×°³É¡°StringFileInfo080404b0×Ö·û´®Ãû³Æ¡±ÐÎʽµÄ×Ö·û´®£»ÖмäµÄ¡°×Ö·û´®Ãû³Æ¡±¿ÉÒÔÊDZí5¡£9ÖеÄ12ÖÖÃû³ÆÖ®Ò»£¬×îºóµ÷ÓÃÏÂÃæµÄÓï¾ä£¨¼Ù¶¨Æ´×°ºÃµÄ×Ö·û´®µØַΪszString£©£º

invoke¡¡¡¡¡¡VerQueryValue£»addr¡¡dbVerInfo£»addr¡¡szString£»addr¡¡lpBuffer£»addr¡¡dwLen

Ö´ÐкólpBufferÖлáµÃµ½Ò»¸öÖ¸Õ룬ָÏò°æ±¾ÐÅÏ¢×Ö·û´®¶¨ÒåµÄÄÚÈÝ£¬Õâ¾ÍÊÇÎÒÃÇ×îºóÐèÒªµÄ¶«Î÷£¡Öظ´Õâ¸ö²½Öè¿ÉÒԵõ½ËùÓÐ12ÖÖ×Ö·û´®°æ±¾ÐÅÏ¢¡£

¶ÁÕß¿ÉÒÔÔ
·µ»ØĿ¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨0£©
¿ì½Ý²Ù×÷: °´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³ °´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ °´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿!
ÎÂÜ°Ìáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæдԭ´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøŶ£¡