ãŸããã

ç§ã¯é·ãéäœãç ç©¶ããŠããªããããã°åŒéããã ãããããã®åŸãç¹å®ã®ãµãŒã¯ã«ã§ããç¥ãããŠããå€ãã®PE_Kill'aã®æ¬¡ã®ã¯ã©ããã«æéãåããŸããã ãªããªã
CRACKL @ B Contest 2010ã®ãã¬ãŒã ã¯ãŒã¯ã§åœŒã®ä»¥åã®ä»äºãããŸããŸè§£æ±ºããŸããããããã¯éåžžã«è峿·±ããã®ã§ããã
ã«ããã®äžã§ããªããåŸ
ã£ãŠããã®ã¯ïŒCRC32åœç©ãRC4ã®ãã«ãŒãããŒãRSAã®å æ°åè§£ãMD4ã®ã³ãªãžã§ã³ã®äœ¿çšãåãããã·ã¥ãæã€2ã€ã®ç°ãªãã¡ãã»ãŒãžã®çæã§ãã ããããã¹ãŠãšãããã«å€ããåæžãããŠããŸãã
ãã®èšäºã¯åå¿è
åãã§ã¯ãããŸããããã¹ãŠã®ã¢ã¯ã·ã§ã³ãåãã€ããã¯ãããŸããã ãã®ç®çã¯ãkeygenãäœæããããšã§ãã
ã¯ããã«
äžèšã®ããã«ãç§ã¯é·ãéã«ãããããŸããã§ããã ãããã£ãŠããã¹ã€ã³ã°ãã«æéãè²»ããå¿
èŠããããŸããã ãŸããããŒã«ããããéšåçã«åŸ©å
ããŸãã
OllyDbgãš
IDAã®ã¿ãæ®ã£ãŠããŸãã åŸè
ã¯äœ¿çšãããŸããã ã³ã³ãã¹ãã®åœŒã®ä»äºãæãåºããŠãç§ã¯ãã€ããããè³ã掻æ§åãããé¢çœããã®ãæåŸ
ããŠããŸããã ãããŠãç§ã¯ééã£ãŠããŸããã§ããã
æŠãã«
ç¥èœ
ãŸãã
ãŸã第äžã«ãcrackmeèªäœãå¿
èŠ
ã§ã ã Ollydbgã§éããšãUPXã§å§çž®ãããŠããããšãããããŸãã æå°ã®æµæã®ãã¹ãåãã
QUnpackã§ãããè§£åã
ãŸãã ã ããã«ãé·å¹Žã«ããã£ãŠéçºããç§ã®ææ³ã«åŸã£ãŠãããŸããŸãªæå·åã¢ã«ãŽãªãºã ãããã·ã¥ã¢ã«ãŽãªãºã ãããã³16鲿°ã¢ã«ãŽãªãºã ã®äœ¿çšã«ã€ããŠåæããããšã«ããŸããã ãããè¡ãããã«ã
SnD Reverser Toolã䜿çšããŸãããããã¯
CRC32 ã
RC4 ã
MD4ãèŠã€ããããšãç¥ãããŠãããŸããã ããããã¹ãŠç¥ã£ãã®ã§ãããã«ã¢ã¯ãã£ããªã¢ã¯ã·ã§ã³ãéå§ã§ããŸãã
æµã®å¢çç·ã®åŸã
ãããã£ãŠãéçåæãçµäºããããåçåæã«é²ã¿ãŸãã åæ¹èšå
¥ããŠãã ããã ç¹°ãè¿ããŸãããOllyDbgïŒä»¥é-olkaïŒã§crackmeïŒä»¥é-ã¯ã©ãã¯ïŒãéããŸãããå
ã®ããã±ãŒãžã§ã¯ãªãã鿢±ããŸãã Ctrl + GãæŒããŠGetDlgItemTextAãå
¥åããŸãããããã£ãŠããã®é¢æ°ã®å
é ã«ç§»åãããã¬ãŒã¯ãã€ã³ããèšå®ããŠéå§ããŸãã ãã¹ãã®ååãšç¹å®ã®ã©ã€ã»ã³ã¹ãå
¥åãã[確èª]ãã¯ãªãã¯ããŸãã ããã§ããã¬ãŒã¯ãã€ã³ãã§éå§ããAlt + F9ãæŒããŠã颿°ãåŒã³åºããŠååãååŸããçŽåŸã«ã¯ã©ãã¯ã®ã³ãŒãã«å
¥ããŸãã

ãã®åŸãååã®é·ãã®2ã€ã®ãã§ãã¯ããããŸããæåã¯ååãå
¥åãããããšã§ããã2çªç®ã¯ç¡æå³ã§ãã 2çªç®ã®ãã§ãã¯ã§ã¯ãååã®é·ãã50ã®å Žåãååãé·ãããšãéç¥ãããŠçµäºããŸãã ãªãç¡æå³ãªã®ããååãæ¬¡ã®ããã«ååŸããããã
GetDlgItemTextA(hDlg, IDC_NAME, szName, 50);
ãããŠãããã¯ãæå€§é·ã50æå以äžã®æååã§ããããšãæå³ããŸãã50çªç®ã®æåã¯è¡æ«ã®æåã§ãããè¡ã49æåãè¶
ããããšã¯ãããŸããã åæ§ã«ãã©ã€ã»ã³ã¹ããããŸãããããã¯éèŠã§ã¯ãããŸããã çµå±ã®ãšããããã¹ãŠã®æãè峿·±ãããšãèµ·ãã倧äºãªæ©èœãæ¥ãã®ã§ãç§ã¯ãããCheckLicenseãšåŒã³ãŸããã
æµã®trenchã§
ãããŠãç§ãã¡ã¯å¿ã®äžã«ããŸãã æåã®2ã€ã®æ©èœã¯ã倧æåã®ã©ã€ã»ã³ã¹æåã®ç¿»èš³ããããŠã©ã€ã»ã³ã¹ã®ãã€ãé
åãžã®ç¿»èš³ã§ããã©ã€ã»ã³ã¹ã®é·ãã¯ãã§ã«ãã§ãã¯ãããŠããŸãã

æ¹è¡æ©èœã§ã¯ãã¢ã«ãã¡ãããïŒ0ã9ãAFïŒã«å¯ŸããŠã©ã€ã»ã³ã¹ããã§ãã¯ããããšãããããŸãã ã©ã€ã»ã³ã¹ã¯ã16鲿ååã«å€æãããããçš®ã®ããŒã¿é
åã§ãããæåŸã«ãåä¿¡ããé
åã®é·ãã0Ã90ãã€ãã§ãããã©ããããã§ãã¯ãããŸãã ãããã£ãŠãã©ã€ã»ã³ã¹ã®é·ãã¯0Ã90 * 2 = 0Ã120ïŒ288ïŒæåã§ãªããã°ãªããŸããã
ãã®ãã¹ãŠã®åŸãã¡ã€ã³é¢æ°ã«æ»ããŸãã æ¬¡ã¯ããã®é
åã®æåã®0Ã8Cãã€ãïŒä»¥éããã®é
åãã©ã€ã»ã³ã¹ãšåŒã³ãŸãïŒã®å¶åŸ¡åèšããã©ã€ã»ã³ã¹ã®æåŸã«ãã4ãã€ãæ°ã§èšç®ããŸãã

ãããŠãååã®ä»ããæäœã®åã10åãããååã®çµæã¯4ãã€ãã®æ°å€ã®é
åã®åå¥ã®èŠçŽ ã«é
眮ãããŸãã ä»åŸã¯ããã®é
åãRC4ã®ããŒã«ãªããšèšãã®ã§ãããŒãšåŒã³ãŸãã
ã©ãŠã³ã0â2ïŒ

Round1ãé€ããã¹ãŠã®åã¯1å䜿çšããããããã³ã³ãã€ã©ãŒã«ãã£ãŠã€ã³ã©ã€ã³é¢æ°ãšããŠèªèãããŸãããããŒã¿ã®å¶åŸ¡åèšãååŸãã颿°ãšããŠãround1èªäœãæåŸã«2å䜿çšãããŸãã
ã©ãŠã³ã3-4ïŒ

ã©ãŠã³ã5â7ïŒ

ã©ãŠã³ã8â9ïŒ

ã芧ã®ãšãããround9ã¯ã©ã€ã»ã³ã¹ã®ã³ã³ãããŒã«ãµã ã®èšç®ãšãŸã£ããåãã§ãã
ãã®ãã¹ãŠã®åŸãç°¡åãªæäœã§ãããŒããåãããŒã®åŸç¶ã®xsorã®å€ãèŠã€ããŸãã ãŸãããã®å€ã¯ãRC4ã䜿çšããŠãååããåãåã£ãããŒã䜿çšããŠãã©ã€ã»ã³ã¹ã®æåã®0Ã8Cãã€ãã埩å·åããåŸã®å¥ã®ãã¹ãã§äœ¿çšãããŸãã ãããŠå¥ã®æäœã§ã¯ããã®çµæãããã«å¿
èŠã«ãªããŸãã

次ã«ã次ã«å¿
èŠãª2ã€ã®å€ãååŸããŸãã XorKeyã䜿çšããŠãã·ããã®ãããæ°ãååŸããããŒããç®çã®ãã€ããååŸããŸããç¹å®ã®å€ãäžèšã§åä¿¡ãããããæ°ã ãã·ãããããšãã«ååŸããå¿
èŠããããŸãã ããŠãå®éã«ã¯RC4埩å·åèªäœã§ãã ç§ã¯ãããããã ãšå€æããã®ã§ããŸããããã§äœ¿çšãããå¯èœæ§ã®ããã¢ã«ãŽãªãºã ã®ãªã¹ããç¥ã£ãŠããŸããæ¬¡ã«ããã®ã¢ã«ãŽãªãºã ã«ç¹°ãè¿ãäŒã£ãããŒåæåã¢ã«ãŽãªãºã ã«ãã£ãŠãç§ã¯ããã«ãããèªèããã ãããšæããŸãã

ãããŠããã®å€ãå¿
èŠãªå Žæã®ãã§ãã¯ã§ãã 埩å·ååŸãLicense [34]ãååŸããå¿
èŠããããŸãïŒã©ã€ã»ã³ã¹ã4ãã€ãå€ã®é
åãšèŠãªãå Žåããããç¶ç¶ããŸãïŒãå€ã¯XorKeyãšåäžã§ãã ããã§ããã®ã¯ã©ãã¯ã®æãç°¡åãªéšåãçµäºããŸãã ããã«ãæéãšåŽåãããããŸããã
次ã«ã8ãã€ãã®ã©ã€ã»ã³ã¹ã®CRC32ã«ãŠã³ãããããŸããããã¯0xFFB97FE0ã§ãªããã°ãªããŸããã ãã¹ãŠãããŸãããã°ããããã®8ãã€ãã¯ããã«RC4ã¢ã«ãŽãªãºã ã䜿çšããŠ2ã€ã®ããŒãã³ãŒãã£ã³ã°ãããå€ã埩å·åããããŒãšããŠæ©èœããåºåã§2ã€ã®é¢ãåãåãã¯ãã§ãã ããã§ããããæåã®è峿·±ãå Žæã§ãã ã°ãŒã°ã«ãããŒãèŠã€ããã®ã«åœ¹ç«ã€RC4ã®è¡çªã¯èŠã€ãããŸããã§ããã ããããé¡ã«8ãã€ãã貌ãä»ããã®ã¯å°ãã°ãããŠé·ããªããŸãã åœã®CRC32ããã§ã«åŠçããŠããŠãã©ã¡ãã«é²ãã¹ãããããã£ãã®ã¯è¯ãããšã§ãã ç¥ããªã人ã«ãšã£ãŠã¯ãäžèšã§èšããšããå¿
èŠãªCRC32ãååŸã§ããããŒã¿ãããå¿
èŠãª4ãã€ãã远å /眮æããã ãã§ãããšããããšã§ãã 詳现ã«ã€ããŠã¯ã
ãã¡ããã芧ãã ãã ã ããããã8ãã€ãã§ã¯ãªã4ãã€ãããã«ãŒãããå¿
èŠããããŸãã ç§ã¯ãããŸããŸãªãã¯ãããžãŒããã«ãã¹ã¬ããã䞊åã³ã³ãã¥ãŒãã£ã³ã°ã䜿çšããŠã¢ãã¹ãã©ã¯ããã©ãã¿ãŒãäœæããªãããšã«ããŸããã AMD II X2 250ã®ããŒã15åã§èŠã€ããã·ã³ãã«ãªã·ã³ã°ã«ã¹ã¬ãããã«ãŒã¿ãŒãäœæããŸããã
ããã¯ç§ã®ãã«ãŒã¿ãŒãã©ã®ããã«èŠãããã§ãïŒ
int main() { uint32_t key[2] = {0, 0}; uint8_t *pkey = (uint8_t *)&key; rc4_key skey; uint32_t rc4_data[2]; do { fix_crc_end(pkey, 8, 0xFFB97FE0); prepare_key(pkey, 8, &skey); rc4_data[0] = 0xE6C5D5E1; rc4_data[1] = 0x41C98EAB; rc4((uint8_t *)rc4_data, 8, &skey); if (rc4_data[0] == 0xFACE0001 && rc4_data[1] == 0xFACE0002) { printf("Key: "); for (int i = 0; i < 8; i++) { printf("%02X", *pkey++); } printf("\n"); break; } } while (key[0]++ <= 0xFFFFFFFF); printf("\n\n\t\tFin!\n"); return 0; }

æ£ããããŒãèŠã€ããã®ã§ãäžèšã®ãã¹ãŠã®ãã§ãã¯ã«åæ ŒããããŒãçæã§ããŸãã ããããã¹ãŠç¥ã£ãŠããã°ãã©ã€ã»ã³ã¹ã®äžè¬çãªåœ¢åŒãæ³åã§ããŸãã
typedef struct _LICENSE { unsigned char M1[0x40]; unsigned char M2[0x40]; unsigned int FaceKey1; unsigned int FaceKey2; unsigned int AfterXorKey; unsigned int LicenseCheckSum; } LICENSE, *LPLICENSE;
æåŸã®4ã€ã®å€ã¯æ¢ã«è§£æãããŠãããã©ã€ã»ã³ã¹ã®æåã®0Ã80ãã€ãã®ã¿ãæ®ããŸãããããã¯0Ã40ãã€ãã®2ã€ã®ã¡ãã»ãŒãžã ãšæããŸãã
é¡ã®åŸã颿°ãããã«åŒã³åºãããããã«ã©ã€ã»ã³ã¹ãžã®ãã€ã³ã¿ãŒã転éãããŸãããã§ã«
RSAãšããŠçœ²åãããŠããŸãã ç§ã¯ãããã©ã®ããã«çè§£ããããå°ã説æããããšããŸãã ãã®é¢æ°ãå
¥åãããšã3ã€ã®åäžã®é¢æ°ãé£ç¶ããŠç§»åããããã«ããŒã¿é
åãžã®ãã€ã³ã¿ãŒããã®ãµã€ãºãããã³çµæãå«ããããã¡ãŒãžã®ãã€ã³ã¿ãŒãæž¡ãããŸãã ãã®é¢æ°ã¯ããã€ãåäœã§éé ã§é
åããèªã¿åããŸãã é
åã®æåŸã®èŠçŽ ããæåã®èŠçŽ ãŸã§ã ããã¯ã倧ããªæ°å€ãåæåããããšã«éåžžã«äŒŒãŠããŸãã ããã¯ç§ã«æåã«èµ·ãã£ãããšã§ãã

ãã®é¢æ°ãžã®2çªç®ã®åŒã³åºãã¯ãåæåãè¡ãããé
åã®ãã³ãã調ã¹ããšãã«ç§ã®æšæž¬ã確èªããã ãã§ããããã®è²Žéãª3ãã€ã01 00 01ãèŠãŸããããã®å€ã¯ãRSA埩å·åã®å®è£
ã§ææ°ãšããŠé »ç¹ã«äœ¿çšãããŸãã æåã®é¢æ°ã¯å
¬éããŒNãåæåãããšããããšã«ãªããŸãããã®åŸããã³ããããããåãåºããŠåè§£ããåè§£ã®ããã«GPUã§
msieveã䜿çšã
ãŸãã ã ããŒã¯å°ããã256ãããã®ã¿ã4å匷ã§å æ°åè§£ãããŸããã

keygenã§ã¯ã被害è
ãšåãã©ã€ãã©ãªãšã¯ã©ã¹ã䜿çšããå¿
èŠããããšããã«ãŒã«ãåžžã«å®ãããšããŸããã ããã§ãã©ã®ãããªçš®é¡ã®å€æ°ã®ã©ã€ãã©ãªã䜿çšãããŠãããã«ã€ããŠã®æããããæ¢ãããšã«ããŸããã å°ãçœåŒåããããšããã®ãããªã¡ãã»ãŒãžã«åºäŒããã¡ãã»ãŒãžã®ããã¹ããGoogleã«
éã蟌ãã ãšããã䜿çšãããŠããã©ã€ãã©ãªãããã«èŠã€ããã
BigDigitsã§ããããšã
ããããŸãã ã

ãã®åŸãæåã®ã¡ãã»ãŒãžã®6çªç®ã®èŠçŽ ã2çªç®ã®ã¡ãã»ãŒãžã®åãèŠçŽ ãšçããããšã確èªããŸãã ãŸããShiftCountãããã§å³ã«ã·ãããããšãã®ãã®å€ã®äžäœãã€ããNeedByteãšåãã«ãªãããã«ããŸãã äžèšã®2ã€ã®å€ãã¹ãŠã

ãã®åŸãæåãš2çªç®ã®ã¡ãã»ãŒãžã®CRC32ãçãããªãã£ãããšã確èªãããround1颿°ã§ã®ã¿åãæ¯èŒãè¡ãããŸãã ãã®åŸããã¹ãŠãåè§£ãããŸãããã®éšåã§ã¯ãäºè£ã¯æ¬¡ã®éšåãšåæ§ã«ç¹å¥ãªãã®ã§ã¯ãªãããã§ãã

ãããŠæåŸã«ãæåãš2çªç®ã®ã¡ãã»ãŒãžã®MD4ããã·ã¥ããããããããçããå Žåããã¹ãã«åæ ŒããŸããã ãã ãããããã®ã¡ãã»ãŒãžã®2ã€ã®é¢æ°ã®ãã§ãã¯ãµã ãç°ãªãå Žåãã¡ãã»ãŒãžã¯ç°ãªãã¯ãã§ãããåæã«åãããã·ã¥ãæã€å¿
èŠããããããã¯ããã«ã¯é©åããŸããã
ããã§ãGoogleã¯ãmd4 collisionsããšããã¯ãšãªã§åã³ç»å ŽããŸããMD4ã®è¡çªã«ã€ããŠã¯æ¬åœã«æ
å ±ããããŸããããã¯ç°ãªããŸããèšå€§ãªèšäºããããŸããã衚é¢çãªèšäºããããŸãã ãããŠããããã®èšäºã®1ã€ã§ãäžåœäººãåãããã·ã¥ã§0Ã40ãã€ãã®2ã€ã®ç°ãªãã¡ãã»ãŒãžãäœæã§ããããšãããããŸããã æ¬¡ã®ãªã¯ãšã¹ããmd4 collisions sourcesãã§ã°ãŒã°ã«ãæ€çŽ¢ããŸããçå®ã¯ããã®ãããªã¡ãã»ãŒãžã2ã€èŠã€ããããã®ãœãŒã¹ã³ãŒãããããŸããããããã¯Linuxã§æžãããŠãããã©ã³ãã 颿°ã¯4ãã€ãã®æ°å€ãè¿ãããŠã£ã³ããŠã§ã¯0ãšRAND_MAXãè¿ããŸãïŒ 32767ïŒã ç§ãé·ãéåé¡ãæ±ããŠããããããªããããééã£ãã¡ãã»ãŒãžãçæããã®ãã ããã³ããã®åŸãç§ã¯Delphiã§ã©ã³ãã 颿°ãæžãçŽããŸããã
keygenãæžã
keygenãæžãéã®ãã¹ãŠã®ã¹ãããã説æããã®ã§ã¯ãªããããã€ãã®éèŠãªç¹ã«ã®ã¿æ³šæãæããŸãã ãŸããRC4ã®ããŒã«ååãä»ããŠäœæããŸããããã¯çç¥ããŸããè€éãªããšã¯ãããŸãããæ ãè
ã¯ãã®éšåå
šäœããªããã³ã°ã§ããŸãã æ¬¡ã«ãããŒxorã®å€ãèŠã€ããŠããŒèªäœãçªãå¿
èŠããããŸãããã®åŸããã®å€ããShiftCountãšNeedByteãèŠã€ããŸãã ãã®éšåã¯ãªããã³ã°ããããšãã§ããŸã;ç®çã®ãã€ããèŠã€ããã«ã¯ã256ãã€ãã®ããŒãã«ããªããã³ã°ããå¿
èŠããããŸãã äžèšã®æ§é ã«åŸã£ãŠãXorKeyå€ãã©ã€ã»ã³ã¹ã«æžã蟌ã¿ãŸãã é¡ãèŠã€ããéµãšãªã2ã€ã®å€ãæžãçããããšãã§ããŸãããããã¯äžå®ã§ããããã¹ãŠã®äººã«ãšã£ãŠåãã§ãã ãã®åŸã2ã€ã®ã¡ãã»ãŒãžãçæããå¿
èŠããããŸãããå®éã«ã¯ãèŠããŠããå Žåã6çªç®ã®èŠçŽ ã«ã¯ç¹å®ã®åœ¢åŒãå¿
èŠã§ãã ã¡ãã»ãŒãžçæé¢æ°èªäœã«ã¯ãã©ã¡ãŒã¿ãŒã¯ãããŸãããã2ã€ã®å€ãæž¡ãå¿
èŠãããããããããã¯ShiftCountãšNeedByteã§ãã ãããã¿ã€ãã倿Žãããã®é¢æ°èªäœã®ã³ãŒãã«ããã«æ°è¡è¿œå ããŸãã ããã¯ïŒ
if(X0[ 5] != X1[ 5]) continue;
ãããŠãããã¯æ¬¡ã®ããã«ãªããŸããïŒ
if(X0[ 5] != X1[ 5]) continue; else if (((X0[5] >> c) & 0xFF) != b) continue;
cã¯ShiftCountãbã¯NeedByteã§ãã
ãã®åŸãã¡ãã»ãŒãžã¯ããããX0ããã³X1ã«é
眮ãããŸãã æ¬¡ã«ããããã®ã¡ãã»ãŒãžã1ã€ã®å€§ããªã¡ãã»ãŒãžã«çµåããRSACryptã«å
¥ããŸãã 埩å·åèªäœã¯0Ã20ãã€ãã®ãããã¯ã§è¡ããããããæå·åããŸãã ãããããããåå ã§ãã¡ãã»ãŒãžïŒMã¯0Ã20ãã€ãã®ãããã¯ïŒãå
¬éããŒïŒNïŒãããå°ãããªããã°ãªããªãããšãç¥ããªãåé¡ããããŸãããããã¯ã¯ã©ãã¯ã§ã¯èæ
®ããããè¡ã®ãã¹ãŠãè§£èªããŸãã ãããã£ãŠããããèæ
®ããå¿
èŠããããŸãã æå·åæ©èœã«ãã§ãã¯ã远å ããŸãããN<Mã®å ŽåãåºãŠæ°ããã¡ãã»ãŒãžãçæããŸããããããã©ã€ã»ã³ã¹çææéãæå€§15ç§é
ããçç±ã§ãã RSAã䜿çšããŠãã¹ãŠãæ£åžžã«æå·åãããåŸãååããåãåã£ãããŒã䜿çšããŠRC4ã䜿çšããŠãæ§é ã®æåŸã®å€ãªãã§ã©ã€ã»ã³ã¹å
šäœãæå·åããŸãã æåŸã®ã¹ãããã¯ãRC4ã䜿çšããŠæå·åãããã©ã€ã»ã³ã¹ã®ãã®éšåã®å¶åŸ¡åèšãèšç®ãããããæ§é ã®æåŸã®å€ã«æžã蟌ã¿ã16鲿ååå
šäœããã®ã©ã€ã»ã³ã¹ã«å€æããããšã§ãã
以äžã§ãïŒ
çŽ æ
â¢
www.rsdn.ru/article/files/classes/SelfCheck/crcrevrs.pdf -CRC32åœç©
â¢
www.en.wikipedia.org/wiki /MD4
#Collision_Attacks -MD4ã³ãªãžã§ã³
â¢
www.google.comâ¢
www.wikipedia.orgãœãŒã¹ã³ãŒã
â¢
github.com/reu -res/
Keygen -
for -
CrackMe -1-
by -PE_Kill-ãã«ãŒã¿ãŒãškeygen
PS Keygenã¯ããªã«æåãåãå
¥ããŸãããã³ã³ãœãŒã«ã®æ§ææ¹æ³ã«ãã£ãŠç°ãªããŸãã ç§ã¯å人çã«ã³ã³ãœãŒã«ãããããåãå
¥ããŸããã§ããããããŒãã³ãŒãã£ã³ã°ããã°ããã¹ãŠãããŸããããŸãã ç§ã¯çªã®äžã§æžãçŽãã®ãé¢åã§ããã