
æåŸã®éšåã§çŽæããããã«ããã€ã©ã«ãšã³ãžã³ã®æ€èšãç¶ããŠããŸãã ä»åã¯ãå®è¡å¯èœã³ãŒãã®ããªã¢ãŒãã£ãºã ã«ã€ããŠèª¬æããŸãã ã³ã³ãã¥ãŒã¿ãŠã€ã«ã¹ã®å€æ æ§ãšã¯ãæ°ããææãã¡ã€ã«ããšã«æ°ããåå«ãŠã€ã«ã¹ã³ãŒããå«ãŸããããšãæå³ããŸãã çŽç²ã«çè«çã«ã¯ãã¢ã³ããŠã€ã«ã¹ã«ãšã£ãŠããã¯æ¬åœã®æªå€¢ãæå³ããã§ãããã æ°ããäžä»£ããšã«ã³ãŒãã100ïŒ å€æŽãããçã«ã©ã³ãã ãªæ¹æ³ã§ãŠã€ã«ã¹ãæ€åºãããå Žåãã·ã°ããã£åæã§ã¯æ€åºã§ããŸããã§ããã
ããããã©ããã«ãã®ãããªã³ãŒããå®éã«æžããã¹ãŒããŒããã°ã©ããŒãããã®ã§ãããã«ã€ããŠäœãç¥ããªãã®ã§ãã ç§ã¯ãããæ¬åœã«ä¿¡ããŠããŸãããã³ã³ãã¥ãŒã¿ãŒã·ã¹ãã ã®ä»äºã®æ°åŠçãªæ£åœåã«é¢äžããæ°åŠè ã¯ããã®ãããªç¹å®ã®å€åã¢ã«ãŽãªãºã ãååšããªãããšã蚌æã§ããããã§ãããã®çµæã¯å¥ã®ç¹å®ã®ã¢ã«ãŽãªãºã ã䜿çšããŠå®å šã«æ€åºã§ããŸããã§ããã ããããç§ãã¡ã¯åçŽãªäººã ã§ãããèªåèªèº«ãå€æŽããã³ãŒãã®ã¢ã€ãã¢ã«èå³ãããããã¢ã«ãŽãªãºã 察ã¢ã«ãŽãªãºã ãã«ç §ãããŠãå®è¡å¯èœã³ãŒããé ãæ¹æ³ãšããã°ã©ããŒã®æ€åºæ¹æ³ã®å察ã¯éåžžã«èå³æ·±ãã¯ãã§ãã
æåã®èšäºãæãåºããŠå°ãè£è¶³ããŸã
ç§ã¯æåã®èšäºããç§ãã¡ã®ããŒããŒãæãåºããŸãïŒãŠã€ã«ã¹ã¡ãŒã«ãŒãšã¢ã³ããŠã€ã«ã¹äŒç€Ÿã®ããã°ã©ããŒããããŠåœŒãã®ã«ã«ããã£ãã¯ååïŒè¹å€ä¿è·ã®éçºè ãšã¯ã©ãã«ãŒã圌ãã«åãä»ããŸãã åè ã¯å®è¡å¯èœã³ãŒããšããã«é¢ããæ å ±ãé ãããšããåŸè ã¯ç¹æ§ã³ãŒããšãã®å éšã¢ã«ãŽãªãºã ã«ã¢ã¯ã»ã¹ããããšããŸãã ãŠã€ã«ã¹ã®åéã§ã¯ãèªåæ¹æ³ïŒãŠã€ã«ã¹ãšã³ãžã³ããã³ã¢ã³ããŠã€ã«ã¹æ€åºåšïŒãæ®åããŠããŸããä¿è·ã®æåæ¹æ³ã®åéã§ã¯ïŒãã³ãžä»ãä¿è·ã®èšå®ã¯æåã§å¶åŸ¡ãããŸããè£å©ãœãããŠã§ã¢ãè±å¯ã§ããã«ããããããããœãããŠã§ã¢ãç Žå£ããããã»ã¹ãæäœæ¥ã§ãïŒãæåã®èšäºã®çµæã«ããã°ãå®è¡å¯èœãã¡ã€ã«ã«æ£ããææã§ãããŠã€ã«ã¹ïŒã€ãŸããããèªäœã§åäœãããã¡ã€ã«èªäœã®ã³ãŒããæ£ããå®è¡ã§ãããŠã€ã«ã¹ïŒãšããŠã€ã«ã¹ããã¡ã€ã«äžã®å³å¯ã«å®çŸ©ãããå Žæã«ããããšãç¥ã£ãŠããã¢ã³ããŠã€ã«ã¹æ€åºåšããããŸããç¹åŸŽç¹ããããçšåºŠã®è·é¢ïŒãšã³ããªãã€ã³ããããã»ã¯ã·ã§ã³ã®å é ãããããããŒã®æ«å°ŸãŸã§ïŒã«ããã®ãŠã€ã«ã¹ãç¹åŸŽä»ããäžå®ã®ãã€ãã»ããããããŸãã ãŸãããã®èšäºãããŠã€ã«ã¹ã®æªãç¹ãã«é¢ããè°è«ã«å ¥ããªãããã«ããã€ããŒããŠã€ã«ã¹ãäœãããªãããšã«åæããŸãããã ãã®ãããåé¡ã®ã³ãŒãã®ã¢ã¯ã·ã§ã³ã®æ§è³ªã«é¢ãããã¹ãŠã®è°è«ãé€å€ããæ€åºãšé衚瀺ã®æ¹æ³ã«çŠç¹ãåœãŠãããšãã§ããŸãã
æåã®èšäºãæãåºããè£è¶³ãç¶ããŸãã ãŠã€ã«ã¹ãšã¢ã³ããŠã€ã«ã¹ã«å¯Ÿæããã¹ããŒã ã¯ãåæ¥ããã°ã©ã ããããã³ã°ãããšãã芳ç¹ããé¡æšããŠèããããšãã§ããŸãã ææã®ä»£ããã«ãå®éã®ããã°ã©ã ã¯ããã§åäœããå®è¡å¯èœãã¡ã€ã«ã®ä¿è·ãããã³ã°ããããŸãã ããã°ã©ã èªäœã®ã³ãŒããããã¿ãã¬ããããã®å埩ã«å¿ èŠãªæ å ±ãæ¬äœã«é ããŸãããŠã€ã«ã¹ãšåãããªãããŒãªæ¹æ³ã§ããã®äœæ¥ã®ã¢ã«ãŽãªãºã ãé ããŸããæåã«ã»ãã¥ãªãã£ã³ãŒããå®è¡ããã·ãªã¢ã«çªå·ãŸãã¯è©Šçšæéããã®åŸãã¡ã€ã³ããã°ã©ã ããä¿®æ£ãããå¶åŸ¡ã移ããŸãã 次ã«ãã¯ã©ãã«ãŒã¯ã¢ã³ããŠã€ã«ã¹ã®åœ¹å²ãæãããå éšä¿è·ã³ãŒãã«ã¢ã¯ã»ã¹ããŠã¢ã«ãŽãªãºã ãèŠã€ããããšããŸãã 圌ã¯ãã³ãŒãã®ç¹åŸŽçãªéšåãèŠã€ããŠïŒä¿åããŠïŒãå¹³åãšåãããšãããŠããããšãããããŸããã å¯äžã®éãã¯ãã¯ã©ãã«ãŒããã¹ãŠã®å ã®ã³ãŒããåãåºããŠãããããå®è¡å¯èœãªãã¡ã€ã«ãäœæããããšã§ãããaverã¯ãã®äžããç¹åŸŽçãªéšåãèŠã€ããŠçœ²åãäœæããŸãã
ãã®ä¿è·ã解é€ããæãäžè¬çãªæ¹æ³ã¯ãã¡ã¢ãªå ã®ããã°ã©ã ã€ã¡ãŒãžããã£ã¹ã¯ã«ãã³ãããããšã§ãã ã¯ã©ãã«ãŒã¯ãä¿è·ãæ©èœãã解èªãããã¡ã€ã³ããã°ã©ã ãã修埩ãããããã®ã¡ã€ã³ããã°ã©ã ã®ã³ãŒãã®äœæ¥ã€ã¡ãŒãžãã¡ã¢ãªå ã«ããç¬éãæ¢ããŠããŸãã å®éã圌ã¯ãä¿è·ãããããã°ã©ã ã®ãå€ãããšã³ããªãã€ã³ãã§ãããããããOEPïŒãªãªãžãã«ãšã³ããªãã€ã³ãïŒã§ããã°ã©ã ãåæ¢ããæ©äŒãæ¢ããŠããŸãã ãã®æç¹ã§ãã¡ã¢ãªå ã®ã€ã¡ãŒãžããã£ã¹ã¯ã«ä¿åã§ããŸãã ãã¡ãããããã¯åäœããŸããããOEPãæãããã«å®è¡å¯èœãã¡ã€ã«ã®ãšã³ããªãã€ã³ãããåæ§æãããããšã§ä¿®åŸ©ã§ããŸãããã®æç¹ã§ããã°ã©ã ãåäœããŠããå Žåããã®ãããªã€ã¡ãŒãžã¯ä¿è·ãã¹ãããããã ãã§æ©èœããŸãïŒããã«å€ãã®æäœããããŸãïŒå€éšé¢æ°ã®åŒã³åºãã®åŸ©å ãããã°ã©ã ãå®å šã«åŸ©å·åãããŠããªãå Žåã®è€æ°ã®ãã³ããããã³äžè¬ã«ãããã¯å€æ°ã®èšäºã®ãããã¯ã§ãããäž»ãªååã¯ããã§ãïŒã å¥ã®äžè¬çãªæ¹æ³ã¯ãã·ãªã¢ã«çªå·ãçæããã³ãŒããèŠã€ããŠãå¯èœã§ããã°ãããåã¿ãæå¹ãªã·ãªã¢ã«çªå·ïŒkeygenïŒãçæããå°ããªå®è¡å¯èœãã¡ã€ã«ãäœæããããšã§ãã 以äžã§èª¬æããããã«ãåæ§ã®ã¢ã¯ã·ã§ã³ã³ãŒã¹ã¯ããŠã€ã«ã¹å¯Ÿçãã£ãã¯ã¿ã®ããšã§ãã
ç§ã¯ãŸããçç©åŠçã·ã¹ãã ãšã®é¡äŒŒæ§ãåŒãåºãã®ã奜ãã§ããããã»ã©ããªãã«è² æ ããããªãããã«ããŸãã 人工ç¥èœãšäººçãããã«èŠããã§ãã
éã¢ã»ã³ãã©ãŒãšãããã¬ãŒ
å®è¡å¯èœã³ãŒãã®ä¿è·ç¯å²ãæ€èšããã«ã¯ã圌ãã®ä»äºã®åºæ¬ååãç解ããããšãéèŠã§ãã ãã®èšäºãèªãã ããããããããã«ã€ããŠäœãç¥ã£ãŠããã§ããããããšã«ãã-å°ã蚱容ãããããã®ã»ã¯ã·ã§ã³ãã¹ãããããŠãã ãããéã¢ã»ã³ãã©ã¯ãå®è¡å¯èœãã¡ã€ã«ãŸãã¯ã³ãŒãä»ãæœè±¡ãããã¡ã®ãããããããã³éåžžã«éèŠãªããšãšããŠãéã¢ã»ã³ãã«ãéå§ããæåã®ã¢ãã¬ã¹ãåãå ¥ããŸãã å®è¡å¯èœãã¡ã€ã«ã®å Žåãããã¯ããšãã°ãšã³ããªãã€ã³ãã§ãã éã¢ã»ã³ãã©ã¯ãæåã®åœä»€ãžã®ãã€ã³ã¿ã眮ããŠãåœä»€ãäœã§ãããããã€ãåäœã®é·ãããžã£ã³ãåœä»€ãã©ããã䜿çšããã¬ãžã¹ã¿ãåç §ããã¡ã¢ãªå ã®ã¢ãã¬ã¹ãªã©ã決å®ããŸãã åœä»€ããžã£ã³ãåœä»€ã§ã¯ãªãå Žåãéã¢ã»ã³ãã©ã¯ãã€ã³ã¿ãåœä»€ã®é·ããŸã§åæ¹ã«ç§»åããããšã«ããã次ã®åœä»€ã«é²ã¿ãŸãã ç¡æ¡ä»¶ã®JMPãŸãã¯CALLã®å Žåãéã¢ã»ã³ãã©ã¯æ¬¡ã®åœä»€ãã€ã³ã¿ããžã£ã³ãã¢ãã¬ã¹ãæãå Žæã«ç§»åããŸãã ãããæ¡ä»¶åå²ïŒJZãJNAãªã©ïŒã§ããå Žåãéã¢ã»ã³ãã©ãŒã¯æ¬¡ã®ã¢ãã¬ã¹ãäžåºŠã«2ã€ã®ã¢ãã¬ã¹ã«ããŒã¯ããŸãã次ã®åœä»€ã®ã¢ãã¬ã¹ãšé·ç§»ãå¯èœãªã¢ãã¬ã¹ã§ãã ãã€ãã®çµã¿åãããèªèãããªãå Žåããã®ãã©ã³ãã®éã¢ã»ã³ããªããã»ã¹ã¯åæ¢ããŸãã ãŸããéã¢ã»ã³ãã©ãŒã¯ãã©ã®åœä»€ããããåç §ãããã«é¢ããæ å ±ãæ ŒçŽããããšã«æ³šæããå¿ èŠããããŸãïŒïŒïŒãããã«ãããé¢æ°åŒã³åºããå®çŸ©ã§ããæãéèŠãªã®ã¯ã誰ãããããåŒã³åºããã§ãã
éã¢ã»ã³ãã©ã¯ããã€ãã·ãŒã±ã³ã¹ããåœä»€ã®åãã€ãã«é¢ããæ å ±ãæ ŒçŽããå€éæ¥ç¶æ§é ã®ã·ãŒã±ã³ã¹ã«å€æããŸããç¹å®ã®ãã€ãããªãã³ãŒãïŒãªãã³ãŒãïŒã®äžéšã§ãããã©ãããããŒã¿ãã¢ãã¬ã¹ãã©ãããé·ç§»ããããªã©ã åæ§é ã«ã¯ã次ã®æ§é ã®1ã€ãŸãã¯2ã€ãžã®åç §ãå«ããããšãã§ããåæã«ä»»æã®æ°ã®ä»ã®æ§é ã«ãã£ãŠåç §ããããªããžã§ã¯ãïŒããšãã°ãäœåºŠãåŒã³åºãããæåã®é¢æ°åœä»€ïŒã«ããããšãã§ããŸãã ãŸããã¹ããŒããªéã¢ã»ã³ãã©ãŒã¯ãã¹ã¿ãã¯ãã€ã³ã¿ãŒããã©ã£ããã次ã®ããã«å解ããããã«ãã®ãããªæ§é ãèªèããŠæ£ããããŒã¯ããããšãã§ããŸããmov eaxã0x20056789; eaxãåŒã³åºããŸãã ããã«ãäžé£ã®åœä»€ã§ç¹åŸŽçãªæ©èœãèªèããæåã§å解ããããã®éå§ç¹ãèšå®ããåã ã®åœä»€ã«ã³ã¡ã³ãããå解ã®çµæããã£ã¹ã¯ã«ä¿åããŸãã åŒã³åºãã®ã°ã©ããäœæããŠæ§é ãããŒã¯ããæäœã¯éåžžã«é«äŸ¡ã§ããã1ã€ã®ãã¡ã€ã«ãæ°æ¥éæ··ä¹±ãããããšãã§ããŸãã ããããåã«æ€èšããããã«ããã¡ã€ã«å ã®ãã£ã¹ã¯ã§é·ç§»ãæå·åããããããã¡ãŒã«ã€ãªããå Žåãããããã®å Žåãéã¢ã»ã³ãã©ãŒã¯åœä»€ããæ··ä¹±ãçæããããåæ¢ããŸãã ãã®å Žåããã®æå·åããããããã¡ãã©ã³ã¿ã€ã ã§çŽæ¥ååŸããå¿ èŠããããŸããã¡ã¢ãªå ã§ãªãŒãã³ã«ãªã£ãŠããå Žåããããã¬ãå¿ èŠã§ãã
ãããã¬ã®äž»ãªã¿ã¹ã¯ã¯ãããã°ã©ã ãæãèå³æ·±ãå Žæã§åæ¢ããããšã§ãã ãããè¡ãã«ã¯ããã€ãã®æ¹æ³ããããŸãã ããã»ã¹ã¡ã¢ãªãéãããšãã§ããããããã®åœä»€ã®ä»£ããã«int 3ãå ¥åããŸã-ãã®å Žåããã®åœä»€ãå®è¡ããããã»ããµã¯äŸå€ãã¹ããŒãããããã¬ã¯ãããåŠçãããŠã£ã³ããŠãéããå ã®åœä»€ã埩å ãããã®ã¡ã¢ãªé åã®å 容ã衚瀺ããŸã ããã»ããµã§ãã¬ãŒã¹ãã©ã°ãæå¹ã«ãããšãããã»ããµã¯ååœä»€ã§ãã®äŸå€ãã¹ããŒããŸãã æåŸã«ãããã»ããµã«ã¯ãããã°ã¬ãžã¹ã¿ããããããã«ããã€ãã®ã¢ãã¬ã¹ãå ¥ããããšãã§ãããã®ã¢ãã¬ã¹ã§ã¡ã¢ãªã«ã¢ã¯ã»ã¹ããããã»ããµã¯åæ¢ããŸãã ãã®ãããããšãã°ãæå·åããããããã¡ãŒã®éå§ã¢ãã¬ã¹ã«ã¢ã¯ã»ã¹ããããã«ãã¬ãŒã¯ãã€ã³ããèšå®ããããšã«ããã解èªè ãæåã«è§£èªãéå§ããŠãããã¡ãŒã®æåã®ãã€ããèªã¿åãã2åç®ã«å¶åŸ¡ãæž¡ããŸãã ãã®æç¹ã§ããããã¡ã®å 容ããã£ã¹ã¯ã«æžã蟌ã¿ãéã¢ã»ã³ãã©ããã£ã¹ã¯ã«èšå®ããŠããã®ãã¹ãŠã®ç§å¯ãèŠã€ããããšãã§ããŸãã é«åºŠãªé²åŸ¡ã§ã¯ãããã°ã©ã ã®å®å šãªåäœã³ãŒããã¡ã¢ãªã«ãããããªç¬éã¯ãããŸãããã³ãŒãã®äžéšã¯å¿ èŠã«å¿ããŠæççã«åŸ©å·åãããŸãã ãããã®å ŽåããªããŒãµãŒã¯ãã³ããæççã«åéããå¿ èŠããããŸãã
ã³ãŒãæ¢çŽ¢ä¿è·
å®è¡å¯èœã³ãŒããç 究ããä¿è·ãããšãããããã¯ã¯ã12件ã®èšäºã«å€ããããããã®åé¡ã®æ çµã¿ã®äžã§ãããã€ãã®ç¹ã«ã€ããŠã®ã¿èª¬æããŸãã 調æ»ããã®éçã³ãŒãä¿è·ã¯ãå®è¡å¯èœã³ãŒããé£èªåããã³ãŒãã®éèŠãªã»ã¯ã·ã§ã³ã§ãããã¡ãŒãæå·åãããã®åŸå®è¡æã«åŸ©å·åããããŸããŸãªæ¹æ³ã§ãã ã³ãŒãã®é£èªåã¯ãã³ãŒããé£èªåããç¹å¥ãªã³ã³ãã€ã©ãŒã䜿çšããŠå®è£ ã§ããæå·åã¯ã以äžã§èª¬æããããªã¢ãŒãã£ãã¯ãšã³ãžã³ïŒã³ãŒãã®èŠ³ç¹ããã®åçšä¿è·ãå«ãïŒã䜿çšããŠå®è¡ã§ããŸããåçä¿è·ãšã¯ãããã°ã©ã ãå®è¡äžã«ãããã°ãããŠãããã©ãããå€æãããã®ç¹ã§äœããã®ã¢ã¯ã·ã§ã³ãå®è¡ã§ããããšãæå³ããŸãã ããšãã°ãç¬èªã®ã³ãŒãã§ãããã¡ãŒãèªã¿åã£ãå Žåãããã°ã©ã ã¯ãã®ãã§ãã¯ãµã ãåç §ã³ãŒããšæ¯èŒã§ããŸãããŸãããããã¬ãŒãint 3ãã³ãŒãã«æ¿å ¥ããå ŽåïŒäžèšãåç §ïŒãä»ã®æ¹æ³ã§ã³ãŒãããããã°ãŸãã¯å€æŽãããŠããããšãç解ã§ããŸãã ããããããããããããã°ãããŠãããã®ãç解ããããã®æãä¿¡é Œæ§ãé«ã移æ€æ§ã®é«ãæ¹æ³ã¯ãã³ãŒãã®ç¹åŸŽçãªã»ã¯ã·ã§ã³ã®å®è¡æéã枬å®ããããšã§ãã æå³ã¯ç°¡åã§ãããããã¡å ã®åœä»€éã®æéïŒç§ããªãŠã ãŸãã¯ããã»ããµãµã€ã¯ã«ïŒã枬å®ãããç¹å®ã®ãããå€ãè¶ ããå Žåãããã°ã©ã ã¯éäžã§åæ¢ããŸããã ä¿è·ã¯ããããã°ãããŠããããšãèªèããŠãããšãã°ãå éšã§ãã®éãåæ¢ããå¯èœæ§ã®ãããã©ã³ããç¡èŠããæãã«ã¯åäœããŸãããããŠã€ã«ã¹ã¯ã·ã¹ãã ããèªèº«ãåé€ããŸãã ãã®ãããªç¶æ³ã«å¯ŸåŠããããã«ããªããŒãµãŒã¯ç°¡åã«åçŸã§ããå¶åŸ¡ãããç°å¢ã§åäœããŸããããšãã°ãBIOSãã©ã¡ãŒã¿ãŒãŸã§ããã¹ãŠãåçŸã§ããä»®æ³ãã·ã³ãªã©ã§ãã ãããã£ãŠããŠã€ã«ã¹ãŸãã¯ä¿è·ã³ãŒãã調æ»ããå Žåãããã°ã©ã ã¯èª¿æ»ã®äºå®ãéåžžã«ããæ€åºããæªãããšãããããšãã§ããããšãèŠããŠããå¿ èŠããããŸãã
ããªã¢ãŒãã£ãã¯ãšã³ãžã³ãŸãã¯ãã³ãŒããå°ããããšã³ãžã³ã匷ãã
ãŠã€ã«ã¹ãšã³ãžã³ã«æ»ããŸãã DOSã®éçºã®ããæç¹ã§ãåœæã®ã¡ã¬é¢é£ã®ããã«ãŒã倧éã«åºçŸããåŸãããã°ã©ããŒã¯ãã¡ã€ã«ã«å ããŠãããã±ãŒãžåããããã¹ãŠã®ãã®ãããã¯ãå§ããŸããã ã.exeããã¡ã€ã«ã¯å€ãã®ã¹ããŒã¹ãå æãããã®ãããªãã¡ã€ã«ã®ããªãã®éšåã¯ããã€ãã°ã«ãŒãã®é »åºŠã®å®å®ããååžãåããå®è¡å¯èœã³ãŒãã§ãããããããæ£ããã¢ã«ãŽãªãºã ã«ãã£ãŠååã«å§çž®ãããŠããŸãã ãããã£ãŠãããªã¢ãŒãã£ãã¯ãšã³ãžã³ãžã®æåã®ã¹ãããã¯ããã«ãŒã§ãããããã«ãŒã®åçã¯éåžžã«ç°¡åã§ãã
- å®è¡å¯èœã³ãŒãïŒããšãã°ãã³ãŒãã»ã¯ã·ã§ã³ïŒãå«ããããã¡ãŒã䜿çšããŸãã
- ãããããã¯ããŸãã
- ã¢ã³ããã«ãŒã®äœçœ®çã«ç¬ç«ããã³ãŒããååŸããããã¯ãããã³ãŒãã§ãããã¡ãŒã®å
é ãšæ«å°Ÿã®æ£ããã¢ãã¬ã¹ã§è£å®ããŸãã
- ã¢ã³ããã«ãŒã®æåŸã«OEPïŒã¢ã³ããã¯ãããã³ãŒãã®æåã®åœä»€ïŒãžã®é·ç§»ãè¿œå ããŸãã
- ã¢ã³ããã«ãŒãšãããã¡ãå§çž®ã³ãŒããšãšãã«å®è¡å¯èœãã¡ã€ã«ã«é 眮ããŸãïŒã»ã¯ã·ã§ã³ãEPã®ãµã€ãºãä¿®æ£ããŸãïŒã
çµæã®ãã¡ã€ã«ã¯ãå ã®ãã¡ã€ã«ããããµã€ãºãã¯ããã«å°ãããªããŸãã 100MBã®å®¹éãæã€æãã¯ãŒã«ãªæ°ããããŒããã©ã€ããç»å ŽããåŸãããã¯ããã»ã©éèŠã§ã¯ãªããªããŸããããããã±ãŒãžã³ã°ã¯ââviremakerãšä¿è·éçºè ã«å€ãã®æ°ããæ©äŒããããããŸããã
- ãŠã€ã«ã¹ã®ãµã€ãºïŒæãã¯ãŒã«ãª100Mbã®ããŒããã©ã€ãã«ããããããïŒã¯äŸç¶ãšããŠéèŠã§ãã ãã€ããŒãã³ãŒãã倧èã§å€æ©èœã§ããå Žåãç¹ã«ãã¡ã€ã«ã®æåŸã«æ°ããã»ã¯ã·ã§ã³ãè¿œå ãããããäœããå·§åŠã«äœ¿çšãããŠããå ŽåããŠã€ã«ã¹å šäœããã¡ã€ã«ã«è©°ã蟌ãããšãããå°é£ã«ãªããŸãã ããã±ãŒãžã³ã°ã䜿çšãããšã倧ãããŠè€éãªãŠã€ã«ã¹ã³ãŒãã®ã»ãŒå šäœããå ã®ãµã€ãºãããæ°åå°ãããããã¡ã«ããã¯ã§ããŸãã
- ããã¯ãããã³ãŒããå«ããããã¡ã¯ãå®è¡ãã©ã°ã®ããã»ã¯ã·ã§ã³ã«é
眮ããå¿
èŠã¯ãããŸããã é«åºŠãªææè
ã«ãšã£ãŠãããã¯éåžžã«éèŠãªèŠçŽ ã§ãããŠã€ã«ã¹ã®æ¬äœã¯ã©ãã«ã§ãå®å
šã«é
眮ã§ããããã§ãã 解ååŸã解åããã°ã©ã ã¯ãã³ãŒãã解åãããã¡ã¢ãªé åã§å®è¡ãèš±å¯ãããŠããããšã確èªããå¿
èŠããããŸãã ãã®ãããã¡ã¢ãªã¢ã¯ã»ã¹å±æ§ïŒãã¹ãŠã®çš®é¡ã®VirtualProtectãVirtualProtectExãVirtualOueryãVirtualQuervExïŒãæäœããWindows APIãåžžã«ãã¥ãŒãªã¹ãã®æ³šæãåŒããŸãã
- ããŠããã¶ãŒãã®å ŽåãæãéèŠãªããš-ããã¯ãã代ããã«ããŸãã¯ãã®åŸã«ãã³ãŒããå«ããããã¡ãæå·åããããŒãã¢ã³ããã«ãŒã«å
¥ããããšãã§ããŸãã ããã§ãã¢ã³ããã«ãŒã§ã¯ãªããèšè¿°åã«ãªããŸãã æ°ããææïŒãŸãã¯å®è¡å¯èœãã¡ã€ã«ã«å¯Ÿããä¿è·ã®ãã³ã°ïŒãçºçãããã³ã«ãã³ãŒããå«ããããã¡ãŒãæ°ããããŒã§æå·åã§ããã³ãŒããå«ããããã¡ãŒã¯å®å
šã«æ°ããã³ã³ãã³ãã«ãªããŸãïŒãã¡ãããåªããæå·åã¢ã«ãŽãªãºã ã䜿çšïŒãããã±ãŒãžåãããŠããŸãããæå·åããã»ã¹ã«ããã±ãŒãžåãå«ããããšãã§ãããšæããŸãã
ããŠãå®éã«ã¯ãããã¯æåã®ããªã¢ãŒãã£ãã¯ãšã³ãžã³ã§ãã ããããã®ææã¢ã«ãŽãªãºã ãããã«è©³ãã説æããŸãã
- æ°ããæå·åããŒãçæããŸãã
- ãã¯ãªãã¿ãŒã³ãŒããååŸããŸãïŒå Žæãšæ¹æ³-åŸã§èª¬æããŸãããæãç°¡åãªã±ãŒã¹ã§ã¯ãå®æããã³ãŒããäœããååŸããŸãïŒã
- æ°ããæå·åããŒãïŒåŸ©å·åã³ãŒãã§ïŒæ¿å ¥ããŸãã
- 被害è ãã¡ã€ã«ããã³ã³ãããŒã«è»¢éãæ³šå ¥ãããŠã€ã«ã¹ã³ãŒãã«æ»ããŸãïŒã³ãŒãã¯ãŸã æå·åãããŠããŸããïŒã
- æ°ããããŒã®ã³ãŒãã§å€§ããªãããã¡ãæå·åããŸãã
- è€éãªããšã§ã¯ãããŸããããæå·åããããããã¡ã被害è
ãã¡ã€ã«ã«é
眮ããŸãïŒä»¥åã®ãããã¡ãšã¯å€§å¹
ã«ç°ãªããããå€ããé ãããšã¯ã§ããŸããïŒã
- 埩å·åããã°ã©ã ã®æåŸã«ãæå·åããããããã¡ã®å é ã«é·ç§»ãè¿œå ããŸãã
- unningãªããšã«ïŒå¯èœãªéãïŒã被害è ãã¡ã€ã«ã«åŸ©å·åããã°ã©ã ãé 眮ããŸãã
äœãèµ·ãã£ãã®ãèŠãŠã¿ãŸãããïŒãŠã€ã«ã¹ïŒæå·åããããããã¡ïŒã®ã»ãšãã©ã¯ãã¡ã€ã«ããšã«å®å šã«å€åããå°ããªåŸ©å·åããã°ã©ã ã®ã¿ãå€æŽãããªããŸãŸã§ãã ãã®åŸ©å·åããã°ã©ã ã«ã¯ãå®éã«ã¯è€æ°ã®ã¢ãã¬ã¹ïŒãã¡ã€ã«ããšã«ç°ãªãïŒã埩å·åããŒïŒå€æŽãå«ãïŒãããã³åŸ©å·åã³ãŒãèªäœãå«ãŸããŠããŸãã ãŠã€ã«ã¹å¯Ÿçã¯ä»ãäžçæžåœåããªããã°ãªããããã®ãŠã€ã«ã¹ã«ç¹åŸŽçãªãã¿ãŒã³ã¯æå·åããããããã¡å ã«é ãããŠãããä»ã§ã¯çœ²åã®ã³ãŒãã®äžéšã埩å·åšã§æ€çŽ¢ããå¿ èŠããããããã¯å°ãããã³ãŒããšããŒã¿ã®ç¹åŸŽã®å°ãªãéšåãå«ãã§ããŸãã
ãã®ã¿ã¹ã¯ã®ç°¡çŽ åã«ãããããé«åºŠãªããªã¢ãŒãã£ãã¯ãšã³ãžã³ãåºçŸããŸãããææãããšã埩å·åã³ãŒãã®ã¿ãå€æŽãããŸããçµå±ããã€ããŒãã³ãŒãå šäœãããå°ããªã³ãŒããåŠçããæ¹ãã¯ããã«ç°¡åã§ãã ããããããªvirmakerãšé²è¡éçºè ã¯æãããããå°ããªè§£èªè ãããå·§åŠã«é ãæ¹æ³ãåŠã³ãŸãããããŠãå«æªè ãšã¯ã©ãã«ãŒã¯éã¢ã»ã³ãã©ãŒã修埩ããŸãã
ãŠã€ã«ã¹ãšã³ãžã³ã®é²å
çŸåšãAverã¯çœ²åã®äœæã«ããå°ãæéãè²»ãããŠããŸãã ç¹åŸŽçãªã»ã¯ã·ã§ã³ãå°ãªãå°éã®ã³ãŒãã§äœæ¥ããå¿ èŠããããŸãã ãŸããvirmakerã¯ãæ¯èŒçåçŽãªå éšã¢ã«ãŽãªãºã ã䜿çšããæ¯èŒçå°ããªæå·è§£èªåšã®çªç¶å€ç°ã«ã®ã¿é¢å¿ããããæ€åºåšãããããé衚瀺ã«ããã¿ã¹ã¯ã¯ãããçŸå®çã§ãã ã¢ã³ããŠã€ã«ã¹ãåºå®ãªãã»ããã§çœ²åãæ¯èŒãããšãvirmakerã¯æåã«ããŸããŸãªæ¹æ³ã§åŸ©å·åã³ãŒããã·ããããããã«å¿ããŠãã®äžã®ç¹åŸŽçãªçœ²åãä¿¡çšããããšããŸããNOPãŸãŒã³ãŸãã¯ããã£ãªãŒã
è匱æ§ã®æªçšãããŠã€ã«ã¹ã«ããããããæåã®ç°¡åãªããªãã¯ã¯ãNOPãŸãŒã³ã§ããã æ»æè ãè匱æ§ã®æªçšã«æåããããã»ããµãæå®ãããã¢ãã¬ã¹ã«ãžã£ã³ããããããšãã§ããããã¡ã¢ãªå ã®ã·ã§ã«ã³ãŒãã®å Žæã®æ£ç¢ºãªã¢ãã¬ã¹ãäžæãªå Žåãæ»æè ã¯ãããè¡ãããšãã§ããŸãïŒæªçšã³ãŒãã®åã®å€ãã®ã¹ããŒã¹ãNOPã§åããŸãïŒaddr1: nop nop ;... NOP- nop addr2: jmp addr3; shellcode pop esi; shellcode xor edx,edx shellcode ;...
ããã§ããããã®ã©ãããã§NOPãŸãŒã³ã«ç§»è¡ã§ããŸãã ã¡ã¢ãªå ã®ããããã®äœçœ®ã®ã¿ãããã£ãŠããå Žåããã®ææ³ã䜿çšãããšãã·ã§ã«ã³ãŒããæ£åžžã«å®è¡ã§ããŸãã
ãŸããç°¡åãªæ¹æ³ã§åŸ©å·åããã°ã©ã ãæäœããææäžã«é·ãNOPè¡ã®ç°ãªãå Žæã«é 眮ããããšãã§ããŸãã ãŸããäžéšã®å ŽæïŒç§»è¡ãäžæããªãå ŽæïŒã§ã¯ããããã®NOPãçŽæ¥ã³ãŒãã«è©°ã蟌ãããšãã§ããŸãã ãã®å Žåããã¹ãŠãæ£åžžã«æ©èœããŸãããç¹æ§ã·ã°ããã£ã®å€äœã¯åžžã«ç°ãªããŸãã ãã¡ããã移è¡æ瀺ã®ãªãã»ããã¯åéèšããå¿ èŠããããŸãã
ãœãªã¥ãŒã·ã§ã³ãèªç±ã«äœ¿çšããŠããã眲åã®èšç®æã«ãã¹ãŠã®NOPãã¹ãããããããšããèšå·ãããŒã¿ããŒã¹ã«è¿œå ããã ãã§ã¯æ°ã«ãªããŸããã§ãããããã®å°ããªæé ã¯ãæ€åºåšãåããŠãã€ãã§ã¯ãªãåœä»€ãèæ ®ãå§ãããããéåžžã«æ³šç®ã«å€ããŸãã ããããããã«ã€ããŠã¯åŸã§ã
é åãŸãã¯ããªããšãæããããã
解èªè ã³ãŒããå£ãããšãªãã眲åã«ãã£ãŠæ¯èŒã®ä¿¡çšãèœãšãæ¹æ³ãèãããšãwirmakerã¯é åã®èãã«ãªããŸãã é åã¯ãæ°ããäžä»£ããšã®ã³ãŒããããã¯ã®é åã§ãã ã³ãŒãã¯å€æ°ã®ãããã¯ã§æ§æããããããã®ãããã¯ã¯ãŠã€ã«ã¹ã®æ°äžä»£ããšã«åé 眮ãããJMPã«ãã£ãŠãªã³ã¯ãããŸãã ãã€ãã®ããã«ããã¹ãŠãçŽã®äžã§ç°¡åã§ãããåââé¡ãå®è£ ããå§ããŠããŸãã ãããã¯å ã«ã¯ãæ¡ä»¶ä»ãããã³ç¡æ¡ä»¶ã®é·ç§»ãšé¢æ°åŒã³åºãããããŸãããããã£ãŠããã®ãããªè«çãããã¯ã¯ãã®ãŸãŸã§ãªããã°ãªããŸããã åæã«ããããã¯ãåãã»ã©ãçµæã®ãã¯ãªãã¿ãŒã®ã°ãã€ããå°ãªããªãããããã¯ãµã€ãºãå°ãããªããšãããå€ãã®ãã©ã³ãžã·ã§ã³ãè¿œå ããå¿ èŠãããããã¯ãªãã¿ãŒã³ãŒãã倧ãããªããæŽåæ§ãç¶æããã®ãé£ãããªããŸãã ããšãã°ããããã¯ã®é·ããæããã«ã¯ãNOPãŸãŒã³ã䜿çšã§ããŸããã¢ã«ãŽãªãºã ã®äŸã次ã«ç€ºããŸãããŠã€ã«ã¹ã®æ¬äœã«ãããŒã¯ã¢ããïŒãããã¯çªå·ãšãã®é·ãïŒãåããæ¢è£œã®ãããã¯ã»ãããæ ŒçŽããŸãã 次ã«ãã©ã³ãã ãããã¯ãååŸããŠãããã¡ã«æžã蟌ã¿ãåã®ãããã¯ã®æåŸã§JMPãç·šéããŸãã æåã®ãããã¯ã§JMPã䜿çšããŠçµæãè£å®ããã©ã³ãã ã«åé 眮ããããããã¯ãæã€ãããã¡ãŒã®æºåãã§ããŸããã åã®ã²ãŒã ãšã¯ç°ãªããããã¯ç¡æ¡ä»¶ã®é·ç§»ã«ãããã®ã§ã¯ãããŸãããæ°ããäžä»£ããšã«ååã«æ·±å»ãªèŠæ±ã§ããããã£ã¹ãã¬ã€ã¹ã¡ã³ãã®èŠ³ç¹ããã¯ãŸã£ããç°ãªãã³ãŒããçæããŸãã ãŽã£ã«ã¡ãŒã«ãŒã¯æºè¶³ããç¬é¡ã§ç ãã«èœã¡ãã
[ãããã¯1] | [ãããã¯2] | [ãããã¯3] | [...] | [ãããã¯N] | |
[jmpãããã¯1] | [ãããã¯2]
[jmpãããã¯3] | [ãããã¯1]
[jmp block2] | [ãããã¯3]
[jmpãããã¯4] | [...] | [ãããã¯4]
[jmpãããã¯5] |
ãŠã€ã«ã¹å¯ŸçããŒã¿ããŒã¹ã«ã¯ããšã³ããªãã€ã³ãããéå§ããæ瀺ã«åŸã£ãŠãçºçããJMPã«å¿ããŠç§»è¡ãè¡ããNåã®æ瀺ãæž¡ããåŸã眲åãæ¯èŒãããšããæ瀺ããããŸãã 眲åã10çªç®ã®ãããã¯ã«ããå Žåãæ¡ä»¶ä»ãé·ç§»ïŒJZïŒãå éšã§å¯èœãªå Žåã¯ã10çªç®ã®é·ç§»ã«ç§»åããå¿ èŠããããŸããæ¡ä»¶ä»ãé·ç§»ã¯ã次ã®åœä»€ãšé·ç§»ã¢ãã¬ã¹ãžã®2ã€ã®é·ç§»ãšæ¡ä»¶ä»ãã§èæ ®ããããšãã§ããŸãã ãã¡ããã誰ããã£ã³ã»ã«ãããæ€åºã¯ããç°¡åã§ããããšãã°ããŠã€ã«ã¹ã®ãããã¯ãåºå®é·Lãæã¡ããããã®Nãããå Žåãå€äœ[0ãïŒ1 * LïŒãïŒ2 * LïŒã...ã ïŒïŒN-1ïŒ* LïŒ]ã
éã¢ã»ã³ãã©ã䜿çšããŠãæ€çŽ¢ããã»ã¹ã®è€éããæšå®ããŸãã éã¢ã»ã³ãã©ã¯ãåœä»€ã®é·ãã決å®ããVAïŒä»®æ³ã¢ãã¬ã¹ïŒãRVAïŒçžå¯Ÿä»®æ³ã¢ãã¬ã¹ïŒïŒãã¡ã€ã«ã®ãªãã»ããã§JMPã§æå®ãããã¢ãã¬ã¹ïŒã«å€æããããã®æå°å€ãæäŸããå¿ èŠããããŸãã åœä»€ã®é·ãã®æ±ºå®ã¯ãååãšããŠãããªãé«éãªã¢ã«ãŽãªãºã ã§ãïŒé åèŠçŽ ã«ã¢ã¯ã»ã¹ãã察å¿ããé åèŠçŽ ã«æžã蟌ãŸãããã©ã°ã«åºã¥ããŠæ¬¡ã®ã¹ããããèšç®ããŸãïŒãã¢ãã¬ã¹å€æã¯ãã©ã®ã»ã¯ã·ã§ã³ã«å±ãããã«é¢ããæ å ±ã«åºã¥ããŠã¢ãã¬ã¹ãè¿œå ããåºæ¬çãªæäœã§ãäœæ ããã«ãããšãã°æ¬¡ã®ãããªãéåžžã®JMP next_block_addressã眮ãæããå®äŸ¡ãªããªãã¯ã決å®ããã®ã¯å°ãã¯ã¬ã€ãžãŒã§ãã
XOR eax,eax; JZ next_block_address; ; PUSH next_block_address; RET; ; MOV eax, next_block_address; CALL eax;
ãããã¯ããã©ãŒãã³ã¹ã®ç¹ã§ã¯ããã»ã©æãã¢ã«ãŽãªãºã ã§ã¯ãããŸããããããã§ããããã¯äžãããããªãã»ããã§çãè¡ããCRC32ãèšç®ããããã«ã¯èŠããŸãããæã£ãŠãããã¹ã¿ãŒã¯ãæ€åºåšãæ·±å€ã«ãã¹ãããŒã¹ãåã¿ãããã»ããµå šäœã飲ã¿èŸŒãã§ãããšèªããŸãã
ãã€ãã®ããã«ãäœãããªã³ã«ãªã£ãŠããã®ã«é床ãäœäžããå Žåã¯ããããæé©åããããå¿ èŠãªããªã³ã«ããªãããã«ããå¿ èŠããããŸãã æåã®æ¹æ³ã¯æ²ããããšã«è»¢ãããŸãã-åçŽãªéã¢ã»ã³ãã©ãŒã§ã¯ããŸãæé©åã§ããªãããããã¹ãŠã®ãŠã€ã«ã¹å¯Ÿçãœããã®å¥œã¿ã®å Žæã§ãããã¥ãŒãªã¹ãã£ãã¯ã¢ãã©ã€ã¶ãŒã«ç§»åããŸãã
ãã¥ãŒãªã¹ãã£ãã¯ã¢ãã©ã€ã¶ãŒãŸãã¯ãã·ã§ãŒããŠã³ã衚瀺ãããŸãã
æåã®èšäºã§ã¯ããã§ã«ãã¥ãŒãªã¹ãã£ãã¯åæã«è§ŠããŸãã-å®éãã³ãŒãã«ãã¡ã€ã«ãæ¿å ¥ãããããšãããŸããŸãªçšåºŠã®ç¢ºå®æ§ã§ç€ºãå åããããŸãã ãããŠããããã®ããã€ãã¯çããããã®ãæ¬åœã«åŒ·èª¿ããŸãããããã¡ã€ã«ã®ææã®100ïŒ äºå®ã宣èšããæš©å©ãåŒãåºããŸããã§ããã ãããã圌ã¯åã«åœŒãã«ã³ã¡ã³ãããã ãããã«å€ãã®æéãè²»ãããããããåé€ããã®ã¯æ®å¿µã§ããã ä»ããããã«åºã¥ããŠãéã¢ã»ã³ããªããã¡ã€ã«åæã䜿çšããŠãããéããã®ãå®è¡ãããã©ããã決å®ã§ããŸããããäžã€åé¡ããããŸã-ãªããªã ãã¥ãŒãªã¹ãã£ãã¯ã¯çããããã®ãã¹ãŠã«å¯Ÿå¿ããŸããåæ¥ä¿è·ã¯åœŒã«å¯ŸããçŽç²ãªé¢å¿ãåŒã³èµ·ããã®ã§ãäžè¬ã®ãã³ãžä»ãä¿è·ã®äžã§çœ²åããŒã¿ããŒã¹ã«æ°çŸã®ãçœãããã®ãäœæããå¿ èŠããããŸããã ãããã®ãããã§ãéåžžã¯ããŸããŸãªåçšãœãããŠã§ã¢ãéåžžã©ããèµ·åã§ããŸãã ãŸããå®è¡å¯èœã³ãŒããæäœããæ¹æ³ã䜿çšããç¬èªã®ãœãããŠã§ã¢ãäœæããå ŽåããªãªãŒã¹åã«virustotalã®ã©ããã«ãããã¹ãŠã®äžè¬çãªãŠã€ã«ã¹å¯Ÿçããã°ã©ã ã§ããã°ã©ã ã®ãã¹ãŠã®ãã¡ã€ã«ãå®è¡ãããšäŸ¿å©ã§ãã 人æ°ã®ãªããã®ã«ã€ããŠã¯ããŸãå¿é ããããšã¯ã§ããŸããããã¥ãŒãªã¹ãã£ãã¯ã¢ãã©ã€ã¶ãŒã¯ã·ã°ããã£ããŒã¿ããŒã¹ãšåããããç°¡åã«ãã©ãã°ããããšãé£ããã人æ°ã®äœããŠã€ã«ã¹å¯Ÿçãœããã®ã¢ãã©ã€ã¶ãŒãé·å¹ŽéçºãããŠãããã®ãšåããããã¯ãŒã«ã«ãªãããšã¯ã»ãšãã©ãããŸããã
ãã¡ãããäžè¬çãªä¿è·ã®äžã§ãŠã€ã«ã¹ãåœè£ ããããšããvirmakerã®è©Šã¿ã«ã€ããŠèšåãã䟡å€ããããŸãã ãã®ããã«ã¯ã眲åèªäœãå¿ èŠã§ãããå¿ èŠãªãã€ããé 眮ããå Žæãç解ããããã«ã¢ã³ããŠã€ã«ã¹ããŒã¿ããŒã¹ã®è§£æãéå§ããã¢ã³ããŠã€ã«ã¹ããŠã€ã«ã¹ãä¿è·ã«äœ¿çšã§ããããã«ããŸãã ãšã«ããã次ã®ããŒãžã§ã³ã®ãŠã€ã«ã¹ãäœæããå ŽåãçŸåšã®ããŒãžã§ã³ãæ€åºããã³ãŒããç¥ã£ãŠãããšããã§ãããã ãã®ãããã¢ã³ããŠã€ã«ã¹ããŒã¿ããŒã¹ããªããŒã¹ãšã³ãžãã¢ãªã³ã°ã®å¯Ÿè±¡ã§ãããæ€åºåšã³ãŒããvirmakerã«ãã£ãŠåæãããŸãã
ãã ãããã¥ãŒãªã¹ãã£ãã¯ã¢ãã©ã€ã¶ãŒã«æ»ã£ãŠãããã€ãã®ãã¥ãŒãªã¹ãã£ãã¯ãªå åã瀺ããŸãã
- æžã蟌ã¿çšã«éããŠããã»ã¯ã·ã§ã³ãžã®ãšã³ããªãã€ã³ãïŒrwxïŒã å¶åŸ¡ãå³åº§ã«è»¢éããããªãŒãã³ã§æžã蟌ã¿å¯èœãªå®è¡å¯èœã»ã¯ã·ã§ã³ã¯ãèªå·±å€æŽã³ãŒãã®ååšã瀺ãå¯èœæ§ãé«ãããã®ãããªã»ã¯ã·ã§ã³ã¯ã»ãšãã©ã®å ŽåããŠã€ã«ã¹ããœãããŠã§ã¢ä¿è·ã«ãã£ãŠäœ¿çšãããŸãã
- ãšã³ããªãã€ã³ãã§ã®ç§»è¡æé ã ãšã³ããªãã€ã³ãã«ãžã£ã³ãåœä»€ãé
眮ããããšã«ç¹å¥ãªæå³ã¯ãªãããã®ãããªèšå·ã¯ãã¡ã€ã«å
ã«èªå·±ä¿®æ£ã³ãŒããååšããããšã瀺ããŸãã
- ã»ã¯ã·ã§ã³ã®åŸåã®ãšã³ããªãã€ã³ãã ã»ã¯ã·ã§ã³æ¡åŒµåã䜿çšãããŠã€ã«ã¹ã¯éåžžãã»ã¯ã·ã§ã³ã®æåŸã«ãããŸãã ããã¯éåžžã®ãã¡ã€ã«ã§ã¯äžè¬çã§ã¯ãªãããããã®ç¶æ³ã¯çããããã®ã§ãã
- ã¿ã€ãã«ã®å èš³ã ææåŸã®ããããŒã®äžéšã®å€æŽã«ããããã¡ã€ã«ã¯åäœå¯èœã«ãªããŸãããããããŒèªäœã«ã¯ããªã³ã«ãŒãèš±å¯ããªãã£ããšã©ãŒãå«ãŸããŠããŸãã ãããçãããã§ãã
- äžéšã®ãµãŒãã¹ã»ã¯ã·ã§ã³ã®ã«ã¹ã¿ã 圢åŒã å®è¡å¯èœãã¡ã€ã«ã«ã¯ãããšãã°.ctorsã.dtorsã.finiãªã©ã®ãŠãŒãã£ãªãã£ã»ã¯ã·ã§ã³ããããŸãã ãããã®ã»ã¯ã·ã§ã³ã®æ©èœã¯ããŠã€ã«ã¹ããã¡ã€ã«ã«ææããããã«äœ¿çšã§ããŸãã ãã®ãããªã»ã¯ã·ã§ã³ã®åœ¢åŒã®éåãçãããã
- ...ãããŠä»ã®çŸã®ãã®ãããªå å
ãã®ãããªå åã¯æ°å€ããããå±éºåºŠã¯ç°ãªããŸããäžéšã¯ä»ãšã®çµã¿åããã§ã®ã¿å±éºã«ãªããŸãããããã¯ããã培åºçãªåæã®å¿ èŠæ§ãšææã®äºå®ãå€æããããã®åŒ·åãªããŒã«ã§ãã ãã¥ãŒãªã¹ãã£ãã¯ããã€ãã¹ããããšã¯éåžžã«å°é£ã§ãïŒèŠåãåºããªãããã«ããããšãæå³ããŸãïŒã ããã¯ãç¹å®ã®ã³ã³ãã€ã©ãŒãŸãã¯ãã¬ãŒã ã¯ãŒã¯ã®æ©èœã䜿çšãããã©ãããã©ãŒã åºæã®ãœãªã¥ãŒã·ã§ã³ïŒæšæºã®ã³ã³ã¹ãã©ã¯ã¿ãŒãŸãã¯ãã¹ãã©ã¯ã¿ã®æžãæããªã©ïŒãããã«çºèŠçããŒã¹ã«é¥ãããã³ãŒããå®éã«ãã¡ã€ã«ã«æ£ç¢ºã«é 眮ã§ããéåžžã«å€§ããè€éãªã€ã³ãã§ã¯ã¿ãŒã䜿çšãããã®ããããã§ãã
ãã¥ãŒãªã¹ãã£ãã¯ãªå åãããã¡ã€ã«ã¯100ïŒ ææããŠããããšèšã£ãŠããããéãåæã§ã¯äœãèŠã€ãããªãã£ãå ŽåããŠã€ã«ã¹å¯Ÿçããã°ã©ã ã¯ããGeneric Win32.VirusããŸãã¯äœããã®æ¹æ³ã§ãSome kind of Win32 Virusããªã©ã®ååã®ãŠã€ã«ã¹ã«ææããŠãããšæžã蟌ã¿ãŸãã ãã®ãããªã¡ãã»ãŒãžã¯ãå€ãã®å Žåãããããçš®é¡ã®keygenãããŒããŒãªã©ã§èŠã€ããããšãã§ããŸãã ååã®èšäºã§ãæµ·è³çãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«æé ã«ãã€ã³ã¹ããŒã«åã«ãŠã€ã«ã¹å¯Ÿçãç¡å¹ã«ããããšæžãããŠããã®ã¯ãã®ããã ãšãã§ã«è¿°ã¹ãŸããã ãŸããã¢ã³ããŠã€ã«ã¹äŒæ¥ã®æãéèŠãªæ å ±è³ç£ã®1ã€ã§ãããã¢ãã©ã€ã¶ãŒããã¹ãã§ããããã«ããããã«ååãªéã®å®è¡å¯èœãã¡ã€ã«ã®ã³ã¬ã¯ã·ã§ã³ã«åã³æ³šæãåããããšæããŸããåœç¶ãããã«è¿œå ãããæ£åœãªãã¡ã€ã«ã«æ¥ãããŒãžã§ã³ããªãªãŒã¹ããããšãæããããšã¯ãããŸããã æ°åã害ããkeygenãšããŒããŒã¯ãããããããã«è¿œå ãããªãããšãprobablyããŸããã誰ãããããèããŠããã®ãããŠã€ã«ã¹...
ãã®ãããçºèŠè ã¯ãã¥ãŒãªã¹ãã£ãã¯ã«åãçµã¿ã次ã®äžè¬çãªæ€åºã¢ã«ãŽãªãºã ã«å°éããŸããã
- éåžžã®çœ²åæ€çŽ¢ã§ãã¡ã€ã«ã確èªããŠãã ããã
- æåããå Žåã¯ããã¡ã€ã«ãææããŠãããšèããŠãã ããã
- ãçœãã®ä¿è·ãèŠã€ãã£ãå Žåã¯ãéãã«çµäºããŸãã
- ãã¥ãŒãªã¹ãã£ãã¯ã¢ãã©ã€ã¶ãŒã§ãã¡ã€ã«ã確èªããŸãã
- å åãèŠã€ãããªãå Žåã¯ãçµäºããŸãã
- ååãªééã®èšŒæ ãèŠã€ãã£ãå Žåã¯ãå解ã䜿çšããŠåæãå®è¡ããŸãã
ããã«ããã¥ãŒãªã¹ãã£ãã¯ãªå åãææã«ã€ããŠè©±ãã»ã©æ·±å»ãªå Žåã¯ãã¢ãã©ã€ã¶ãŒãäœããèŠã€ãããã©ããã«é¢ä¿ãªããææãããã¡ã€ã«ãæ€èšããŠãã ããã
å€ãã®äœæ¥ãè¡ãããçŸåšããŠã€ã«ã¹å¯Ÿçããã°ã©ã ã¯è åšãç¹å®ããŠããŸããããéåžžã«é«ãä¿¡é Œæ§ã§ææã®äºå®ãèªèããŸãã å®è¡å¯èœãã¡ã€ã«ã®ãã¹ãããŒã¿ããŒã¹ã®ãµããŒãã«ãããæ°ããææã¢ã«ãŽãªãºã ãåºçŸãããšããã«æ°ãããã¥ãŒãªã¹ãã£ãã¯ãªå åãå®å šã«è¿œå ã§ããæçµçã«ããŠã€ã«ã¹å¯Ÿçã¯æ°ããææãåºããåã«è åšã«å¯Ÿå¿ã§ããŸãã äžçã®ãã¹ãŠã®å®è¡å¯èœãã¡ã€ã«ã«å¯ŸãããŠã€ã«ã¹å¯Ÿçã®ä»¥åã®ãã¹ããå®å šã«éçŸå®çã«æããå ŽåãWWWã®ãã¹ãŠã®å®è¡å¯èœãã¡ã€ã«ã®ããŒã¿ããŒã¹ã¯ãã¯ãå¹»æ³çã§ã¯ãªãããšã«æ³šæããŠãã ããã å®è¡å¯èœãã¡ã€ã«ã¯æ·±å»ãªæéã³ã¹ããå¿ èŠãšãããã®ã§ãããäžçã§ã¯ããã»ã©å€ãçæãããŸããã ããã«ããã®å·šå€§ãªãã¡ã€ã«ã®ããŒã¿ããŒã¹ã§ã®ãã¹ãã¯ç°¡åã«äžŠååã§ãããããå¯èœæ§ã®ããèšå€§ãªããŒã¿ã®é åã«å¯ŸããŠãã¥ãŒãªã¹ãã£ãã¯ããã¬ãŒãã³ã°ããã®ã¯éåžžã«çŸå®çã§ãã ããããŒãšã€ããŒã¯åœŒã®ã³ã³ã¢ã飲ãã§å¯ãŸã...
ããã¥ãŒã¿ã³ãã¯é²æ©ããŠããŸããã å€æ
ä»åããŠã€ã«ã¹äœæè ã¯ãæ¢åã®ã³ãŒããæäœããã®ã§ã¯ãªããæ°ããäžä»£ããšã«æ°ãã埩å·åã³ãŒããçæããããšã決å®ããŸãã ããã¯å€å®¹ã§ããæ°ããäžä»£ããšã«æ°ããã³ãŒããçæãããŸãã ãã®å Žåãé åãšã¯ç°ãªããã³ãŒãã¯åã«å éšã®ãããã¯ãåé 眮ããã ãã§ãªããå®éã«ãã®å 容ãå€æŽããŸãã çè«çã«ã¯ãããã¯ãŠã€ã«ã¹ã®æ£ç¢ºãªæ€åºã«å¯Ÿããvirmakerã®ç¡æ¡ä»¶ã®åå©ãæå³ããã¯ãã§ãïŒèª°ããã¥ãŒãªã¹ãã£ãã¯ããã£ã³ã»ã«ããŸããã§ããïŒã ããã§ããŠã€ã«ã¹ã®1ã€ã®äžä»£ã«å¯ŸããŠäœæããã眲åã¯å¥ã®äžä»£ã«ã¯ç¡é¢ä¿ã«ãªãããŠã€ã«ã¹ãæ€åºãç¶ãããšããŠãã次äžä»£ã®æäœæ§ã¯ä¿èšŒãããŸãããå€æãžã§ãã¬ãŒã¿ãšã¯äœã§ããïŒ æ°ããäžä»£ã®ãã¯ãªãã¿ãŒãçæããåºç€ã¯äžçš®ã®ãåºæ¬ã³ãŒããã§ããããããã©ã®èšèªã§æžãããŠãããã¯éèŠã§ã¯ãããŸããã æå·åããããŠã€ã«ã¹ã®æ¬äœå ã«ä¿åããããããæ°žç¶çã§ãã ãŠã€ã«ã¹ã®æ¬äœã«ã¯ããã®ãåºæ¬ãã³ãŒãã®ååœä»€ã«åºã¥ããŠãæ¯åæ°ããå®è¡å¯èœãªã³ãŒããçæãããšã³ãžã³ããããŸãã ããã¯ã³ã³ãã€ã©ã«éåžžã«äŒŒãŠããŸã-å ¥åã«ã¯ããã€ãã®ã»ãã³ãã£ãã¯æ§é ããããåºåã«ã¯ããã»ããµã«ããã³ãŒãã®å®è¡æºåãã§ããŠããŸãã åºæ¬ã³ãŒãã«åºã¥ããå¥ã®åæ§ã®å®è¡å¯èœã³ãŒãçæã¯ãä»®æ³ãã·ã³ã§çºçããŸã-ä»®æ³ãã·ã³ãç¹å®ã®ãã©ãããã©ãŒã ã§æºåããããã€ãã³ãŒããå®è¡ããç¬éã«ã ãã®æç¹ã§ããåºæ¬ããã€ãã³ãŒãããã®ããã»ããµãç解ããç¹å®ã®å®è¡å¯èœãã¡ã€ã«ã«å€ãããŸãã ãŸããæ°ãããã©ãããã©ãŒã ãããããæ°ããäžä»£ã®ã³ãŒããšèŠãªãããå Žåãç°ãªããã©ãããã©ãŒã çšã®ä»®æ³ãã·ã³ã®ã»ããã¯å€èº«ãžã§ãã¬ãŒã¿ã§ãã
ãã€ã©ãã§å®è¡ããããïŒã·ã¹ãã ã³ãŒã«ãå«ãŸããä¿åãããç¶æ ã«ã¢ã¯ã»ã¹ãããè€éãªãªããžã§ã¯ããå«ãŸãªãïŒå¯èœãªéãç¬ç«ããèšè¿°åã³ãŒããçæããæ¢ç¥ã®ãªãã»ããã§ã¡ã¢ãªå ã®æ¢è£œã®ããŒã¿ãåŠçããããšãæãåºããšããã®åŸãã¿ã¹ã¯ã¯éåžžã«è§£æ±ºå¯èœãªããã§ãã å ¥åã§ã¯ããžã§ãã¬ãŒã¿ã«ã¯3ã€ã®äž»èŠãªãã©ã¡ãŒã¿ããããŸã-æå·åããããããã¡ã®ã¢ãã¬ã¹ããã®é·ããããã³ããŒã ããŠãããããçš®é¡ã®å®æ°ãå°æ¥ã®ããŒãªã©ã®æ¬äŒŒã©ã³ãã çæã®ããã®å¥ã®ã·ãŒãããããŸãã ãã¯ãªãã¿ãŒã«ã¯æ¡ä»¶ä»ãé·ç§»ãå«ãŸããŠããŸããããã®æ¬äœå ã«ã®ã¿å«ãŸããŠãããããã¿ã¹ã¯ãè¥å¹²ç°¡çŽ åãããŸãã
ãã¿ã®çºç
virmakerã¯ãå€ãã®äžå¿ èŠãªåœä»€ã®çæã䜿çšããŠåé¡ã«ã¢ãããŒããããã®äžã®çã®åŸ©å·åã³ãŒãããæªæãããããšã決å®ããŸãã å ã®åœä»€ãå€æŽãããŠããªãå Žåã§ããä»ã®åœä»€ã®ããŒãäžã®çœ²åã«ãã£ãŠæ¯èŒã«å¿ èŠãªãã®ãåé¢ããããšã¯éåžžã«åé¡ã«ãªããŸãã ã¬ããŒãžãžã§ãã¬ãŒã¿ãŒã¯ãéèšè¿°ååã«ãããããããã¬ããŒãžãŸãã¯ã¬ããŒãžã§ã¯ãªããããå€æãšã³ãžã³ã®æãè€éã§èå³æ·±ãéšåã§ãããããèªäœãå£ããããã¯ãªãã¿ãŒã®ã¡ã€ã³ã³ãŒããæãªããªãå®è¡å¯èœã³ãŒããçæããå¿ èŠããããŸãã ãæ··ç·Žãã®ããã»ã¹ã§ã¯ããããå¿ èŠã«ãªããŸãã-ç¹æ§ç¹ã®ã·ããïŒé·ç§»ã®ã¢ãã¬ã¹ããµã€ã¯ã«ããã®éåºãªã©ïŒãç£èŠããŸãã
-ãžã£ã³ã¯ã³ãŒããå¿ èŠãªã¬ãžã¹ã¿ãšãã©ã°ã®ã¬ãžã¹ã¿ãæãªããªãããã«ããŠãã ããã
ã¬ããŒãžåœä»€ã®ã¿ã€ãã«ã®é åçãªåè£ã¯ãããããçš®é¡ã®MMXãSSEãæµ®åå°æ°ç¹åœä»€ã§ãããå¿ èŠã«å¿ããŠç°¡åã«çæã§ããŸããäž»ãªããšã¯ãã¹ã¿ãã¯ã«è§Šããã埩å·ååšã«å¿ èŠãªãã©ã°ãå£ããã«æ±çšã¬ãžã¹ã¿ã«æžã蟌ã¿ãæåã®å€æã³ãŒããèŠããããšã§ããã®ããã«ïŒ
mov ecx, 100h; ; lbl0: mov eax, [esi + ecx] ; xor eax, edi ; mov [ebx], eax ; add ebx, 4h ; movd mm0,edx ; movd mm1,eax ; psubw mm1,mm0 ; lbl1: jcxz lbl2 ; , psubw mm1,mm0 ; movd mm3,ecx ; jmp lbl0 ; , lbl2: sub ebx, 100h ;
Averã¯ããŸãå¿é ããŠããŸããã ããã«ããããããããã¥ãŒãªã¹ãã£ãã¯ã¯ææãããã¡ã€ã«ã宣èªãç¶ããŸãïŒãžã§ãã¬ãŒã¿ã§äœæ¥ããŠããéãvirmakerã¯æ·±å»ãªææè ãæ©ãŸããããšãå«ãããŸãïŒããç¹å®ã®ãŠã€ã«ã¹ãæ£ç¢ºã«ç¹å®ããããšã¯ã§ããªããªããŸããã ãããã£ãŠãæãå€ã«ããšã€ããŒã¯ãã¥ãŒãªã¹ãã£ãã¯ã«åããªãææè ã倢èŠãŠã圌ã®å·çå¿ã¯100ïŒ ã®ç²ŸåºŠã§ç¬è«é¡ãæ€åºããå¿ èŠã«ãªããŸãã ãŠã€ã«ã¹ãæ£ç¢ºã«èå¥ããã«ã¯ãæ€åºåšãããã«éçºããå¿ èŠããããŸã-ãšã³ããªãã€ã³ãããéå§ããŠãæ瀺ã«åŸãããã¹ãŠã®ã¬ããŒãžãã¹ãããããåæãããã¬ããŒãžã«éèŠãªãã®ã®ã¿ãè¿œå ããå¿ èŠããããŸããããã¯ããã£ãã¯ã¿ã®éã¢ã»ã³ãã©ãæé·ãå§ããããšãæå³ããŸãã é å段èœã®NOPãŸãŒã³ã«ã€ããŠèŠããŠããå Žåãå®éã«ã¯ã眲åã®æ¯èŒã®ããã«ãããã¡ãŒãåãããšãã«NOPãã¹ãããããããšãã·ã§ãããžã®æåã®ã¢ãããŒãã§ã-æ€åºåšã¯ã¬ãŒãããžåœä»€ã®ãããªNOPãã¹ãããããŸãã ä»ã§ã¯ã0x90ïŒNOPãªãã³ãŒãïŒãšæ¯èŒãã代ããã«ãéã¢ã»ã³ãã©ãŒã䜿çšããŠããŸãïŒé«éã§ããã»ã©è¯ãïŒã
- ãã€ã³ã¿ãŒã次ã®åœä»€ã®å é ã«ç§»åããŸãïŒé·ãéã¢ã»ã³ãã©ãŒïŒã
- ãã®åœä»€ãã¬ãŒãããžïŒNOPãMMXãSSEãªã©ïŒãã©ããã瀺ããŸãã
- éèŠãªæ瀺ãåæããããããã¡ã«è¿œå ãããŸãã
- ç¡æ¡ä»¶é·ç§»ã®å Žåãé·ç§»ã¢ãã¬ã¹ãåæäžã®æ¬¡ã®ã¢ãã¬ã¹ãšããŠããŒã¯ããŸãã
- æ¡ä»¶åå²ã®å Žåããããªãåæã®ããã«äž¡æ¹ã®å¯èœãªã³ãŒãåå²ãããŒã¯ããŸãã
ãããã£ãŠãaverã¯åŸ©å·åè ã®ã¡ã€ã³ã³ãŒããæ§æããåœä»€ãããããã¡ãåéãããã§ã«ãã®äžã«çœ²åã«ããæ¯èŒãå®è¡ã§ããŸãã ããã¯ãŸã ããªãç°¡åãªæé ã§ãããããã°ã©ãã³ã°ããéã«ãããã¿ã®æ瀺ãéèŠãªæ瀺ãšåžžã«åºå¥ã§ããŸããïŒããšå¿é ãã人ããŸããŸãå¢ããŠããŸãã ä»ã圌ã¯ã³ã³ããã¹ããä¿åããããã®æ瀺ã§å©ããæ±ããŠããŸãïŒpushad / popadïŒã¹ã¿ãã¯ãããã¹ãŠã®æ±çšã¬ãžã¹ã¿ã眮ããååŸããïŒãšpushfd / popfdïŒãã©ã°ã¬ãžã¹ã¿ã«ã€ããŠãåãã§ãïŒã
<pre> mov ecx, 100h; ; lbl0: mov eax, [esi + ecx] ; xor eax, edi ; mov [ebx], eax ; add ebx, 4h ; pushad ; pushfd ; mov eax, 12321h ; xor edx,edx ; sub eax, esi ; popfd ; popad ; lbl1: jcxz lbl2 ; , pushad ; pushfd ; shr ebx, 4 ; popfd ; popad ; jmp lbl0 ; , lbl2: sub ebx, 100h ; </pre>
, « ». , , , . . , - â « breakpoint!».
. ãã®ããã«ïŒ
« » | 1 | 2 |
virt_mov eax, 10h | mov eax, 20h;
sub eax, 10h; | mov edx, 10h;
mov eax, edx; |
virt_mov ecx, 08h | xor ecx,ecx;
add ecx, 08h;; | mov ecx, 04h;
add ecx, 04h; |
virt_sub eax, ecx | neg ecx;
add eax, ecx; | mov edx, ecx;
sub eax, edx; |
, , , , . , â , â . , . , eax, edx esi. ebx,ecx, edi . , .
. . . mov eax, 10h ; mov ebx, 20h ; , ebx - , xchg xchg edx, ebx ; , 20h edx xor ecx,ecx ; inc ebx ; add ecx,ebx ; add eax, edx ; mov edx, [esi] ; xchg edi,ebx ; cmp edx, 0 ; . . . ;
, -, «» , . «» , , «».
- , , , :
« » | 1 | 2 |
virt_push eax | sub esp, 04h;
mov [esp], eax; | mov edx, esp;
sub edx, 04h; mov [edx], eax; |
virt_mov eax, ebx | lea eax,[ebx]; | push ebx;
xchng eax,ebx; pop ebx; |
, , , , , :
- ;
- - ;
- , ;
- ;
- - .
« ».
, 42 - , «- » , , . , , . , , , , .. , , , . , , , , .., .. . , â ., , , ( Original Entry Point). , , payload , OEP. , , .. , , , .. , , , , esp , . , esp breakpoint, , esp , . OEP ( ). ( , ) , , , , cur_esp , , esp.
. . . ; base_esp = cur_esp; push eax ; cur_esp -= 4; mov eax, 1h ; - push edx ; cur_esp -= 4; . . . ; - pop edx ; cur_esp += 4; pop eax ; cur_esp += 4; (cur_esp == base_esp) !!! . . . ;
, , , . , , , ( ). , , , , - . , . â API, ..
â . , â , . -, , - , , . MMX, SSE , ( ), (.. , ). , - «BANANAS», .
, , , .. pushad/popad, , , , .. â . ( ESI «BANANAS\0»).
mov ecx, 0h; ; ecx_var = 0; lbl0: mov eax, [esi + ecx] ; esi eax ( ), ; ; "BANANAS" xor eax, edi ; eax_var = eax_var XOR edi_var; push eax ; esp_var -= 4; *esp_var = eax_var; pushad ; pushfd ; skip mov eax, 12321h ; skip xor edx,edx ; skip sub eax, esi ; skip popfd ; skip popad ; ; "" ; ; mov edx, 23h ; edx_var = 23h; or edx, eax; ; edx_var = edx_var OR eax_var; lbl1: inc ecx ; ecx_var++; cmp ecx, 8h; ; if (ecx_var == 8) { goto lbl2; }: pushad ; pushfd ; skip shr ebx, 4 ; skip popfd ; skip popad ; jmp lbl0 ; goto lbl0 lbl2: sub ebx, 100h ; "BANANAS" - !
, , , , . , , , , .
, - , . , , , . ?
. , , . , ?
â .. , . , . , . , , , , , â . â .
, . , , . « eax» , , (xor eax,eax sub eax, eax) - â . , , .. , , , . , - «» . , , , , , , .
, , , , .. , . - , , , , , - .. , . , , .. . , , , .., , , . , - , , , , , ( ). , , , , ( ). , . , , , , .
. , , , , . , , ⊠.
, ? , , , , ? .
, â . NT- , NTFS Linux PC â , . . , , , â , , online- â «» . , , , , ? , , .
, , â . , , , crackme, , ⊠. , â , , . , , . â , , , . , , , , , .