 
      æè¿ãååãšã®äŒè©±ã®äžã§ã RTSãžã£ã³ã«ã®ããŸããŸãªã²ãŒã ã«ã€ããŠè°è«ããŸãããã3çªç®ã®ãã³ãµãã¯ãã®ãªãªãŒã¹ããªãéãå»ã£ãã®ãçåã«æããŸããã æ°ååŸã1ã€ã®æ€çŽ¢ã¯ãšãªã
ãŸããå±±ãã¢ãã¡ããã«è¡ããªããã°...
TL; DRïŒãµãŒããŒãäœ¿çšæ¹æ³ãããã³ãœãŒã¹ã³ãŒãã¯GitHubã§å ¥æã§ããŸã ã
æåã®ã¹ããã
ãããã³ã«ã®äžè¬çãªæ§é ãçè§£ããã«ã¯ãã²ãŒã ã¯ã©ã€ã¢ã³ããšå ¬åŒãµãŒããŒã®éã§çèŽãããæåã®4ã€ã®ãã±ããã§ååã§ãã ã ããç§ãã¡ã¯æã£ãŠããŸãïŒ
- éåžžã®TCP / IPã®äžã«æ§ç¯ããããããã¯ãŒã¯ãããã³ã«
- æå·åãŸãã¯é£èªåãªã
- çªå·ãæãäœããã®ããæãé«ããã®ãžãšé çªã«éä¿¡ãããã
ãã±ããããããŒã¯åžžã«æ£ç¢ºã«14ãã€ãã§ããã€ããŒããµã€ãºïŒ1ïŒãã³ãã³ãã³ãŒãïŒ2ïŒãããã³ãã±ããã¢ãã¬ã¹æå®çšã®2ã€ã®ãã¬ãŒã€ãŒèå¥åïŒ3.4ïŒãå«ãŸããŠããŸãã ç°¡åãª
 
      ãŸããè¡ã®åã«ã¯ãã®é·ãããããŸãïŒ5ïŒã ç¹å®ã®ã³ãã³ãã³ãŒãã«å¿ããŠãããŒã¿åœ¢åŒãç°ãªããè¡ã®ãµã€ãºã1ã2ããŸãã¯4ãã€ãã§ç€ºãããããšã¯æ³šç®ã«å€ããŸãã
æ°ããã²ãŒã ã«ãŒã ã®äœæã«é¢ããå ¬ééç¥ãæ€èšããŠãã ããã
 
      ããããŒããµã€ãºãã³ãã³ããããã³éä¿¡è ïŒ1,2,3ïŒã§å§ãŸããŸãããåä¿¡è èå¥åããããŸããïŒ4ïŒã ãã®ã¡ãã»ãŒãžã§ã¯ããå šå¡ã«éä¿¡ããæå³ããŸãããä»ã®ããŒã ã«ãšã£ãŠã¯ãèªåã®éšå±ã®å šå¡ã«ããæå³ããå ŽåããããŸãã æåã®è¡ïŒ5ïŒã«ã¯ãååããã¹ã¯ãŒããããã³ã²ãŒã ã®ã¿ã€ããšã«ãŒã ã®äœæè ïŒãã¹ãïŒã®ã¯ã©ã€ã¢ã³ãã®ããŒãžã§ã³ã«é¢ããæ å ±ãå«ãŸããŠããŸãã å€ãåºåãã«ã¯ãã¿ãæå\ tã䜿çšãããŸããããã¯09hã§ãã æ¬¡ã«ãéšå±ã«é¢ããæ å ±ãèšèŒãããè¡ïŒ6ïŒãç¶ããŸããããã¯ãéšå±ããªã¹ãã«è¡šç€ºããããã«å¿ èŠã§ãã ã¹ããŒã¿ã¹ãã©ã€ããã¬ã€ã€ãŒã®æ°ãã³ã³ãã¥ãŒã¿ãŒã®å¯ŸæŠçžæãã¯ããŒãºãããã¹ããããããã«2ã€ã®å€ãå«ãŸããŸãã ããã§ã¯ã瞊ç·ãã»ãã¬ãŒã¿ã®åœ¹å²ãæãããŸãã ãã®åŸã«ããããã4ãã€ãã®2ã€ã®å®æ°
  èªæžããçãã質åãäºæ³ããŠãç§ã¯ããã«æ³šæãã... 
      -  ã¯ããå宀ã®ãã¹ã¯ãŒãã¯ãµãŒããŒäžã®ãã¹ãŠã®ãã¬ãŒã€ãŒã«éä¿¡ãããŸãã 
      
 
 ïŒèšäºã ã³ãµãã¯ã«ã¯ç§å¯ããããŸãã ããåç §ïŒ
- ããããã²ãŒã ã«ã¯ã«ãŒã ã®äœæè ã®ãã¹ãåã¯å¿ èŠãããŸããã ãã¹ãŠã®ãã±ããã¯ãµãŒããŒãä»ããŠéä¿¡ãããŸãã
ããã§ã¯ããã£ãšè峿·±ãç¹ã«ç§»ããŸãããã
翻蚳ã®é£ãã
æåã«ã TCPã®&&ããŒã¿ ãã£ã«ã¿ãŒã䜿çšããŠWiresharkã®ãã±ãããåæãã ACKã®ãããªã空ã®ããã±ãããç®ã®åã§ç¹æ» ããªãããã«ããŸããã ããæç¹ã§ã暪åãã«ãªã£ãããšã倿ããŸãããDCERPCãããã³ã«ãã±ããã® TCPãã€ããŒãã05h 00hãã€ãã§å§ãŸããã±ãããWiresharkã誀ã£ãŠåãå ¥ããããšã倿ããŸããã ç¹ã«ãããã¯ãéšå±ã«å ¥ã£ããã¬ãŒã€ãŒã«é¢ããéç¥ãå«ããã±ããã«åœ±é¿ããŸããã åžžã«ããããŒã®åŸã«æ£ç¢ºã«5ãã€ããå«ãŸããŸãã ããã«ãããWiresharkã¯TCPè² è·ãDataã§ã¯ãªã[Malformed PacketïŒDCERPC]ãšããŠããŒã¯ãããã±ãããé衚瀺ã«ããŸãã
 
      ãã®å Žåãæ£ããã®ã¯æ°ããtcp.payloadãã£ã«ã¿ãŒã䜿çšããããšã§ãã Wiresharkããã®è² è·ãã©ã®ããã«è§£éãããã«é¢ä¿ãªãããã€ããŒããæã€ãã¹ãŠã®TCPãã±ããã衚瀺ããŸãã
ã·ãªã¢ã«åã®é²å
ãããã¯ãŒã¯ãããã³ã«ãéã«ãããšãåªå é äœã®ç°ãªãããŸããŸãªäººãããŸããŸãªã¿ã€ãã³ã°ã§ããã«åãçµãã ããšã¯æããã§ããã 倿°ãæž¡ã3çš®é¡ã®è¡ãåºå¥ã§ããŸãã
-  ã³ã³ãã¯ããªåŒŠ 
      
 
 è¡ã®é·ãã¯1ãã€ãã§ç€ºãããè¡ã«ã¯å€æ°ã®ååãå«ãŸãããã£ãŒã«ãã¯åçŽããŒã§åºåãããŸãïŒps=1337|pw=42|pg=12
 
 
 
 
-   äžéç· 
      
 
 è¡ã®é·ãã¯2ãã€ãã§ç€ºããïŒä»¥äžã ã¿ã€ãShortã®æ° ãšåŒã°ã ãŸãïŒãå€ã¯ã¿ãã§åºåãããååã¯ãããŸããïŒ"MyRoom"\t"secret"\t0AFFE
 
 
 
 
-   å¯å€§ãªåŒŠ 
      
 
 ç¹æ®ãªæååãå®éã«ã¯ã倿°åãšãã®andå€ã亀äºã«ãªã£ãæååã®é åã§ãã 1次å 圢åŒã®äžçš®ã®é£æ³é å ã ãã®äžã®åè¡ïŒé·ãïŒïŒã®é·ãã¯ã Intåã®æ°ã§ç€ºãããŸãã ãã®åœ¢åŒã®è©³çްãªèª¬æã¯ããµãŒããŒã®ãœãŒã¹ã³ãŒãã®ã³ã¡ã³ãã«èšèŒãããŠããŸãã
 
 äŸ  
 
 è¡ã®é·ããç€ºãæ°åã¯ãèµ€ãé»è²ã®åºåãèšå·ã§ ããŒã¯ãããŠããŸãã 
 
 
æåŸã®äŸã¯ãéšå±ã®äœæè ãã²ãŒã ãé¢ãããšãã«ããã¹ãã®åœ¹å²ããã¬ãŒã€ãŒã®1人ã«ç§»ãããšãèŠå¶ããããã±ãŒãžããåãããŠããŸãã ç§ãçè§£ããŠããããã«ããã®æ©èœã¯ã²ãŒã ã®ãªãªãŒã¹åŸã«ããã«éçºãããŸããã æããã«ãããŒã¿è»¢éå¹çã®åé¡ã¯ãå ã®ãšã³ãžã³ã§ãããã¯ãŒã¯ãããã³ã«ãäœæãããšãã»ã©æ·±å»ã§ã¯ãããŸããã§ããã
ããããªãããã¡ãŒ
å€ãã®ãã±ããã®çµããã§ããã€ããŒãã¯4ã€ãŸãã¯6ã€ã®ãŒããã€ãã§çµãããŸãã ãã ããç¹å®ã®ããã±ãŒãžïŒç¹ã«ãã³ãã³ãã³ãŒã0xc8ããã³0x19dãäœ¿çš ïŒã§ã¯ãããŒã¿ãäºæãããããã¢ããããããšããããŸãã ãããã®ããã±ãŒãžã®1ã€ã§ããããŒãã£ããã®ã¡ãã»ãŒãžã®1ã€ã®æçãèŠã€ãããŸã§ãããããã©ãããæ¥ãŠããªãå¿ èŠãªã®ããçè§£ã§ããŸããã§ããã
ã©ããããå ¬åŒãµãŒããŒã¯ãéä¿¡åã«å¿çãã±ãããæžã蟌ãŸãããããã¡ãŒãåžžã«ãŒãã«ãããšã¯éãããæ®ãã®ãã€ãã¯çµäºãã€ãã§å€±ãããå¯èœæ§ããããŸãã 幞ããªããšã«ãã²ãŒã ã¯ã©ã€ã¢ã³ãèªäœã§ã¯ãããã¯ãšã©ãŒã«ã€ãªãããŸããã ããããããã§ãéçºã®ããŒã¹ãšå質管çã®ã¬ãã«ã«ã€ããŠäœããè¿°ã¹ãŠããŸãã
ããŸãç¥ããªã-ãã匷åãªãµãŒããŒ
...ãŸãã¯ã æªãã»ã©è¯ã ãã 䜿çšãããŠãããããã³ã«ã«é¢ããéåžžã«å€ãã®ç¥èãåŸãåŸããœãŒã¹ã³ãŒãã®éã¯å¢ããªããªããæº¶ãå§ããŸããã ã€ã³ã¿ãŒãã§ã€ã¹ã¯ç°¡çŽ åããããµãŒããŒãä¿åã匷å¶ãããããŒã¿ïŒããšãã°ããããŒã®ç¶æ ãæ°ããå°çã«è»¢éããïŒãåæãããªããªããæååãšããŠä¿åããå§ããŸããã ãã±ããã®åãã€ãã®çºä¿¡å ãšå®å ãç¥ãå¿ èŠã¯ãããŸããã ãªãã€ã¬ã¯ãå ãšæ¹æ³ãçè§£ããã ãã§ãã
ãµãŒããŒã¯ãä»ã®ã¯ã©ã€ã¢ã³ããã以åã«åä¿¡ããããŒã¿ã§ã»ãšãã©ã®èŠæ±ã«å¿çããããç¹å¥ãªããã±ãŒãžã䜿çšããŠç®çã®ã¯ã©ã€ã¢ã³ããåŒã³åºããèŠæ±è ã«å¿çããªãã€ã¬ã¯ãããŸãã å¯èœãªå Žåã¯ããªãã·ã§ã³ã®æååãçç¥ããnullãã€ãã«çœ®ãæããŸããã ãŸã第äžã«ãããã¯ãã¬ã€ã€ãŒã®ã¬ãŒãã£ã³ã°ããã€ã³ãæ°ãããã³åå©ã«é¢ããããŒã¿ã«é¢ä¿ããŸãã
å Žåã«ãã£ãŠã¯ãå¹ åºããããã±ãããªã¬ãŒãã¯ã©ã€ã¢ã³ãåŽã®ãšã©ãŒãçæããããšãããããŸããã ç¹ã«ãã³ãã³ãã³ãŒã0x1b3ãš0x1b4
䞊ã¶
ç§ã«ãšã£ãŠç¹ã«é£ããã£ãã®ã¯ãã²ãŒã ã®èµ·åãšåæã®åŽé¢ã§ããã ããŒãæã«ãã±ãããªã¬ãŒãåŠçããã®ã§ãã²ãŒã äžã«ãã¹ãŠã®ã¯ã©ã€ã¢ã³ãã0x4b0ã³ãã³ãã³ãŒãã§ãã±ãããéä¿¡ããããšã«æ°ä»ããŸããã ãã®å Žåãã«ãŒã ã®äœæè ã®çªå·ã¯èå¥åã®1ã€ã®ãã£ãŒã«ãã«ããã2çªç®ã®ãã£ãŒã«ãã¯ç©ºã§ãã ããããè«ççã«ã¢ãããŒãããããã
代ããã«ããµãŒããŒèªäœããã±ããã®ãœãŒã¹ãç£èŠãããã¹ããéåžžã®ãã¬ãŒã€ãŒãã確èªããå¿ èŠããããŸãã
ãšããã§ãã²ãŒã äžã«ãã¹ãã倿Žãããšã泚æã
åæ©çãªLAN
äžè«ã«åããŠãã¯ã©ã€ã¢ã³ãã«ã¯ããŒã«ã«ãããã¯ãŒã¯ã§ã®å®å šãªã²ãŒã ã«å¿ èŠãªæ©èœããŸã ãããŸãã ãããã¯ãŒã¯ãã©ãã£ãã¯ãåæãããšãå€ãã®TCPãã±ããã®äžã§ãã«ãŒã ã®äœæè ãUDPãä»ããŠãã¬ãŒã€ãŒã®æ°ãšã«ãŒã ã®ã¹ããŒã¿ã¹ã«é¢ããéç¥ãéä¿¡ããŠããããšã«æ°ä»ããŸããã
ããã«ãã¯ã©ã€ã¢ã³ããåè§£ãããšãã«ãäŸå€ãçºçããŠãšã©ãŒããã¹ãã衚瀺ãããšãã«åŒã³åºããã颿°ã«ééããŸããã 圌女ã®åŒã³åºããæ©ããŠã圌女ã«éä¿¡ãããããã¹ããåæãããšãäŸå€ãçºçããããã·ãŒãžã£ã®å®éã®ååãå€å¥ã§ããŸãã çµæã«å°ãé©ãããç§ã¯åŒŠã§éãã ã
  ããã«ç§ãèŠããã®ããããŸãïŒ  
        
        
        
      
    
        
        
        
      
      
        
        
        
      
    
      
      function LanPublicServerGetRegIDFrom 
      
        
        
        
      
     function LanPublicServerGetRegIDTo 
      
        
        
        
      
     function LanPublicServerGetRegMessage 
      
        
        
        
      
     function LanPublicServerGetClientTeamByIndex 
      
        
        
        
      
     function LanPublicServerGetClientTeamByClientID 
      
        
        
        
      
     function LanPublicServerGetClientSpecByIndex 
      
        
        
        
      
     function LanPublicServerGetClientSpecByClientID 
      
        
        
        
      
     function LanPublicServerGetClientInfoToParserByIndex 
      
        
        
        
      
     function LanPublicServerGetClientInfoToParserByClientID 
      
        
        
        
      
     function LanPublicServerGetSessionInfoToParserByIndex 
      
        
        
        
      
     function LanPublicServerGetSessionInfoToParserByClientID 
      
        
        
        
      
     function LanPublicServerGetClientsCount 
      
        
        
        
      
     function LanPublicServerGetSessionsCount 
      
        
        
        
      
     function LanPublicServerGetClientIndexByClientID 
      
        
        
        
      
     function LanPublicServerGetClientIndexByClientNick 
      
        
        
        
      
     function LanPublicServerGetSessionIndexByClientID 
      
        
        
        
      
     function LanPublicServerProfScore 
      
        
        
        
      
     function LanPublicServerProfCountry 
      
        
        
        
      
     function LanPublicServerProfGamesPlayed 
      
        
        
        
      
     function LanPublicServerProfGamesWin 
      
        
        
        
      
     function LanPublicServerProfLastGameTime 
      
        
        
        
      
     function LanPublicServerProfInfo 
      
        
        
        
      
     function LanMyInfoHost 
      
        
        
        
      
     function LanMyInfoIP 
      
        
        
        
      
     function LanMyInfoID 
      
        
        
        
      
     function LanMyInfoSpec 
      
        
        
        
      
     function LanMyInfoName 
      
        
        
        
      
     function LanMyInfoPlayer 
      
        
        
        
      
     function LanGetServerInfoToParser 
      
        
        
        
      
     function LanIpToString 
      
        
        
        
      
     function LanIpToInt 
      
        
        
        
      
     function LanGetClientsCount 
      
        
        
        
      
     function LanGetClientIDByIndex 
      
        
        
        
      
     function LanGetClientHostByIndex 
      
        
        
        
      
     function LanGetClientNameByIndex 
      
        
        
        
      
     function LanGetClientSpecByIndex 
      
        
        
        
      
     function LanGetClientIndexByID 
      
        
        
        
      
     function LanGetClientPlayerNameByIndex 
      
        
        
        
      
     function LanSelectParser 
      
        
        
        
      
     function LanGetParserID 
      
        
        
        
      
     function LanGetSendDataThreadCount 
      
        
        
        
      
     function LanGetSendDataThreadEnabled 
      
        
        
        
      
     function LanGetNoDelayOption 
      
        
        
        
      
     function LanGetOptimizedPackage 
      
        
        
        
      
     function LanGetOptimizedPackageDef
      
      2ã€ã®éžæè¢ããããŸããéçºè ããã®ãããªãŠãŒã¢ã¢ãæã£ãŠãããããã«ããã¬ã€ã€ãŒã²ãŒã ã«æ¥ç¶ãããŠãããã¹ãŠã®ãã®ã«ç¥èªLANãæ®éçã«äœ¿çšããŠããŸããã
C ++ãAsioããã³ç¡å·ã®è
æåã«ã¯ãã¹ãã©ãããã©ãŒã ãµãŒããŒãäœæãããããã¯ãŒã¯ããã°ã©ãã³ã°ã®ç¥èãåºããããšãç®æšã«èšå®ãããããå®è£ ã«C ++èšèªãšAsioã©ã€ãã©ãªãéžæããŸããã åŸè ã«ãããéåææ§ãšããåçŽãªã³ãŒããæ¯æããŠããã«ãã¹ã¬ãããšé¢é£ããããŒã¿ã¢ã¯ã»ã¹æ©èœãæŸæ£ããããšãã§ããŸããã åºç€ãšããŠãç§ã¯ã©ã€ãã©ãªãŒã»ãªããžããªãŒã®äŸã®1ã€ã®ãœãŒã¹ã»ã³ãŒããåããŸããã
ç§ã«ãšã£ãŠéçºã®æãè峿·±ãåŽé¢ã¯ããã±ããã®éåæéä¿¡äžã®ããŒã¿ãããã¡ã®å¯çšæ§ã®åé¡ã§ããã åæã«ãå²ãåœãŠã®æ°ãæå°éã«æããã¡ã¢ãªå ã®ããŒã¿ãã³ããŒããããšããŸããã ãã¹ãŠã«å ããŠããµãŒããŒã«ã¯ããã±ãããåä¿¡ããããã®ããªã倧ããªãããã¡ãå¿ èŠã§ãã ã²ãŒã ã®éå§åã«ãããããŒã¿ãéä¿¡ãããšãã®TCPãã€ããŒãã®ãµã€ãºã¯800ãããã€ããè¶ ããããšããããŸãã
ãã®çµæã次ã®ããã«ããã±ãŒãžã®èªã¿åããäœæãéä¿¡ã®ããã»ã¹ãå®è£ ããŸããã
-  æ°ããã¯ã©ã€ã¢ã³ããæ¥ç¶ãããšããµãŒããŒã¯ã std :: vector <unsigned char>ã¿ã€ãã®ååã«å€§ããïŒ1 MiBïŒãããã¡ãŒïŒ 以é ãBufferãšåŒã³ãŸã ïŒãå«ãSessionã¯ã©ã¹ã®ãªããžã§ã¯ããäœæããŸãã
- éåæèªã¿åãæäœãå®äºããåŸããã®ã¢ãã¬ã¹ã¯ãã®ãããã¡ãŒã«ã¡ã€ã³ãã±ããåŠçæ©èœã«è»¢éãããŸãã æ¬¡ã®èªã¿åãæäœã¯ããã®é¢æ°ã®å®äºåŸã«ã®ã¿éå§ãããåŠçæéã®ãããã¡å ã®ããŒã¿ã®å®å šæ§ãä¿èšŒããŸãã
- åŠçã®éå§æã«ã Packetã¯ã©ã¹ã®ãªããžã§ã¯ããäœæãããŸããããã¯ãããŒã¿ã®èªã¿åããšã·ãªã¢ã«åã®ããã®ã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸãã ããã«ããããµãŒããŒã®å¿çã¯ãã¹ãŠã»ãã·ã§ã³ãªããžã§ã¯ãã®åããããã¡ã«æžã蟌ãŸãããã±ããã®éä¿¡è ã«å²ãåœãŠãããŸãã
- ããã±ãŒãžã«å¯Ÿãããã¹ãŠã®æäœãå®äºãããšãsend颿°ã¯std :: make_shared <Buffer>ã䜿çšããŠãããã¡ãŒãå²ãåœãŠãŸãã åæã«ãå¿çãã±ããã®æ£ç¢ºãªãµã€ãºãèæ ®ããŠã ã»ãã·ã§ã³å ã®åããããã¡ãŒã®å埩åããããã¡ãŒã³ã³ã¹ãã©ã¯ã¿ãŒã«æž¡ãããŸãïŒèšé²äžã«ãã±ããããããç£èŠããŸãïŒã ã€ãŸã 1åã®æäœã§ãæåã«ãã±ãããšãã€ã³ã¿ãŒã®å¶åŸ¡ãããã¯ã«ååãªã¡ã¢ãªãïŒ äžåºŠã« ïŒå²ãåœãŠãŠãããéä¿¡ãã¹ã倧ããªãããã¡ãŒããæ£ç¢ºã«ãã€ãæ°ãã³ããŒããŸãã
-  æ°ãããããã¡ã¯ãã¿ã€ãstd :: shared_ptr <Buffer> ïŒ ä»¥é BufPtrãšåŒã¶ ïŒã®åä¿¡ãã€ã³ã¿ã䜿çšããŠããã±ããã®éä¿¡å ãšãªããã¹ãŠã®ã¯ã©ã€ã¢ã³ãã®Sessionãªããžã§ã¯ãã«æž¡ãããŸãã ããã§ãã¿ã€ãstd :: deque <BufPtr>ã®ããŒã«ã«ãã¥ãŒã«é 眮ãããŸãã ããããã®ã¯ã©ã€ã¢ã³ãã®ãã¥ãŒã«ããã€ã³ããã¯ã¹ã®åã³ããŒã¯ãåç §ã«ãŠã³ã¿ãŒãå¢ãããŸãã ãã®åŸããã±ããåŠçã¯çµäºããæåã®ã»ãã·ã§ã³ãããã¡ã¯æ¬¡ã®ãã±ãããåä¿¡ããæºåãæŽããŸãã
- ãã±ããã®éåæèšé²ïŒéä¿¡ïŒæäœãå®äºãããšããã€ã³ã¿ãŒã¯å®å ã¯ã©ã€ã¢ã³ãã®ããŒã«ã«ã»ãã·ã§ã³ãã¥ãŒããåé€ãããåç §ã«ãŠã³ã¿ãŒãäžãããŸãã ãã±ããããã¥ãŒã«å ¥ã£ãŠãããã¹ãŠã®ã¯ã©ã€ã¢ã³ãã«éä¿¡ããããšããã«ãã«ãŠã³ã¿ãŒã¯ãŒãã«ãªã»ãããããã¹ããŒããã€ã³ã¿ãŒã¯ããèªäœã§ã¡ã¢ãªãè§£æŸããŸãã
ã©ã®ããã«å€æããŠããã©ã ãåŒãããŸããŸãªã³ã³ãããC ++æšæºãžã®ã¹ããŒããã€ã³ã¿ã®è¿œå ã«ããããã®ãããªã·ã¹ãã ã®èšèšã®è€éããå€§å¹ ã«è»œæžãããŸããã ãµãŒããŒãäœæãããšãã«ãçè¶³ã¯æãããŸããã§ããã
ã·ã£ãã¿ãŒã¹ããŒããã¹ã
ãµãŒããŒã§ã®äœæ¥ãçµäºããåºæ¬çãªæ©èœããã¹ãããåŸãé·ãæéããããŠãã¹ããééããåŸããµãŒããŒã®å®å®æ§ãšåæã確èªããããšã«ããŸããã ãããè¡ãããã«ãããŒã«ã«ãããã¯ãŒã¯äžã«3人ã®ãã¬ãŒã€ãŒãš5ã€ã®è€éãªAIãåããéšå±ãäœæããŸããã ãã¹ãã§ã¯ãããããµã€ãºããããžããæ°ã人å£ãããã³éæ»ææéã«é¢ããæå€§ãã©ã¡ãŒã¿ãŒãéžæããŸããã ã²ãŒã ãéå§ããæ°ååŸã«ã¿ã¹ã¯ãããŒãžã£ãŒã®ãã¹ãã³ã³ãã¥ãŒã¿ãŒã§ã²ãŒã ããã»ã¹ã忢ããŠãäºæããªãã·ã£ããããŠã³ãã·ãã¥ã¬ãŒãããŸããã ãã®åŸãæ®ãã®2人ã®ã¯ã©ã€ã¢ã³ãã¯ãäžæ©äžæŸçœ®ãããŸããã
çµéšè±å¯ãªãã¬ã€ã€ãŒã¯ãããããæ¬¡ã«äœãèµ·ãã£ããããã§ã«æšæž¬ããŠããã§ãããã ã€ãŸãããµãŒããŒã¯ãã¹ãã«åæ ŒããŸãããã
ãããã«
å ¬åŒãµãŒããŒã®ãã©ãã¯ããã¯ã¹ãã³ããŒããããã»ã¹ã«èå³ãããããšãé¡ã£ãŠããŸãã ãŸããã²ãŒã ã®éçºè ããã¬ã€ã€ãŒã«åæ ããæçµçã«ããŒã«ã«ãããã¯ãŒã¯ã§ãã«ã