æ ç»Mission Impossible IIããã®ã·ã§ãããã®è©±ã¯ãæ°ãæåãæ¯åã®1æ³ã®èªçæ¥ã«å§ãŸããŸããã äžæãªçªå·ããã®ãç¥ããšé¡ããšãšãã«ãSMSã¡ãã»ãŒãžãç§ã®é»è©±ã«å±ããŸããã ç§ã®èªçæ¥ã ã£ãããæåçãªããšã§ã¯ãªãããããããšããããªãã¯èª°ã§ããïŒã ããããèªçæ¥ã¯ç§ã®èªçæ¥ã§ã¯ãããŸãããããã§ãšããšèšã人ãèŠã€ããã®ã¯é¢çœãã£ãã§ãã
æåã®æå
次ã®ãªãã·ã§ã³ãè©ŠããŠã¿ãããšã«ããŸããã
- äžæãªçªå·ãé»è©±ã®ã¢ãã¬ã¹åž³ã«è¿œå ããŸãã
- é çªã«é¢é£ä»ããããŠããã¢ããªã±ãŒã·ã§ã³ïŒViberãWhatsAppïŒã«é çªã«é²ã¿ãŸãã
- æ°ããäœæããé£çµ¡å
ãšæ°ãããã£ãããéããåçããéä¿¡è
ãç¹å®ããŸãã
幞éãªããšã«ãç§ã®å Žåãåçã®ãããã¥ã¢ãæ°ããäœæãããé£çµ¡å
ã®é£ã«ããViberã®é£çµ¡å
ãªã¹ãã«è¡šç€ºãããŸãããããã«ãããå®å
šã«éããã«éä¿¡è
ãèªèããã調æ»ãã«æºè¶³ããããã§ãšãããããŸã
æ€çŽ¢ãæåããŠ2åç®ã®é¶é
æãçããçŽåŸã«ãã¢ãã€ã«ãªãã¬ãŒã¿ãŒã®çªå·ã®ãªã¹ãããœãŒãããŠããŒã¹[phone_number => photo]ããŸãšãããšããã¢ã€ãã¢ãé ã«æµ®ãã³ãŸããã ããã«1ç§åŸã«ããããã®åçãé¡èªèã·ã¹ãã ã«æž¡ããä»ã®ãªãŒãã³ããŒã¿ïŒãœãŒã·ã£ã«ãããã¯ãŒã¯ããã®åçãªã©ïŒãšãªã³ã¯ãããšããã¢ã€ãã¢ã
åœç¶ããã€ã³ã3ïŒåçããéä¿¡è
ã決å®ããããïŒã§ã¯ã倱æãç§ãã¡ãè¿œãè¶ãå¯èœæ§ãããããã®å€±æã«ã¯6ã€ã®éžæè¢ããããŸãã
- çªå·ã¯WhatsAppãŸãã¯Viberã«é¢é£ä»ããããŠããŸãã
- ãŠãŒã¶ãŒã¯ããŸããããããã£ãŒã«åçãèªåã§èšå®ããŠããŸãã
- åçã¯èšå®ãããŠããŸãããèšå®ã¯ããã©ã€ãã·ãŒããŸãã¯ããã©ã€ãã·ãŒãã«èšå®ãããŠããŸãïŒãé£çµ¡å
ã«ã®ã¿åçã衚瀺ããããã®ãªã¹ãã«ã¯ãããŸããïŒ
- åçã¯å
¥æå¯èœã§ãããç«ãåã£ãŠããŸã
- åçã«äººç©ãåã£ãŠããŸãããé¡ã®ç¹åŸŽãäœæ Œãåºå¥ã§ããŸããïŒé®®æ床ã®æ¬ åŠãäœè§£å床ãæãã®ã¡ã¬ããåžœåãåžœåãå粧ïŒ
- åçã§ã¯ãéšå±ã®ææè
ã ãã«ãã§ã€ã¹; é«è§£å床ã§ããããã®äººãæãåºãããšã¯ã§ããŸãã
4çªç®ã®æ®µèœïŒåçã®ç«ïŒã«ã¯å€ãã®ãªãã·ã§ã³ããããŸãããããã¯æå人ã®åçã挫ç»ã®ãã£ã©ã¯ã¿ãŒãé£ã¹ç©ãè»ãæŠåšãªã©ã®åçã§ãã
å°éã®ãã¹ãã
ãã³ã®ãã¹ããšããŠã圌ã®é£çµ¡å
ãªã¹ãã§å®éšããããšã決å®ãããŸããã Androidã¹ããŒããã©ã³ã§ã¯ãViberã¯é£çµ¡å
åçã
/ sdcard / viber / media / User photosãã©ã«ããŒã«
[Hash] .jpgãšããŠä¿åããŸãã ãã¡ã€ã«ã¯ããã®é£çµ¡å
ãšäŒè©±ããããå°ãªããšã圌ã®ãããã¡ã€ã«ãéããŠãã°ããããŠåé€ãããšããæ¡ä»¶ã§ã®ã¿ä¿åãããŸãã å®éšã§ã¯ã20人ã®ãŠãŒã¶ãŒã®ãããã¡ã€ã«ãæåã§éãããéãããããŸãã
ãã¡ã€ã«ãèŠã€ãã£ãç¥ãåãã®äžéšã¯ããœãŒã·ã£ã«ãããã¯ãŒã¯ã§ãçºèŠããããé¡ãèªåçã«èªèããããªãã·ã§ã³ãæå¹ã«ããŠPicasaããã°ã©ã ã«ã¢ããããŒããããŸããã ããã°ã©ã ã«ãã£ãŠèªèããã人ã¯ãææè
ã«å¿ããŠååãä»ããããŸããã 次ã®ã¹ãããã§ã¯ãViberããã®åçãå«ããã©ã«ããŒãPicas'eã«ãã£ãŒãããŸãã é¡äŒŒãã人ã®å Žåãçå笊ã®ä»ããã¢ã€ã³ã³ãããŠãŒã¶ãŒããŠã£ã³ããŠã«è¡šç€ºãããŸãã
ç§ã®å Žåãå
ã®20人ã®ãŠãŒã¶ãŒã«ã€ããŠãViber Picasaã¯2ã€ã®äžèŽã®ã¿ãæ€åºããŸããã åæã«ããããã®2ã€ã®ã±ãŒã¹ã¯éåžžã«ã³ãã«ã«ã«äžèŽããŸããïŒåãã¢ã§ã¯åçã¯äºãã«ç°ãªã£ãŠããŸããããåãæ¥ã«æ®åœ±ãããŸããïŒæåã®äººã®å Žåãé ã®å転ãšç¬é¡ã®æç¡ã¯2ã€ã®åçã§ç°ãªãã2çªç®ã®å Žåã¯ç¬é¡ã ããç°ãªããŸããïŒã
çŸåšã®åèšã¯éåžžã«æåããŠããŸãã
Viberã®ãµã³ãã«ïŒ20ïŒãã¹ãŠç«ãšé£ã¹ç©ã䞊ãã§ããŸãïŒ
VKããã®ãµã³ããªã³ã°ïŒ5ïŒåçå
ã®èª°ããèŠèŠçã«èªèã§ããå Žåã®ã¿ïŒ
å¿ å®ãªäººã®ãããïŒ2
åœã®äžèŽïŒ0
æ€çŽ¢ãéå§ããŸã
é»è©±ã䜿çšããŠããŒã¿ãååŸããŠã¿ãŸãããã Viberã¯é»è©±åž³ããé£çµ¡å
ãååŸããŸããããã¯ãAndroid OSã§ã¯Googleã¢ã«ãŠã³ãã«é¢é£ä»ããããŠãããã¢ã«ãŠã³ãããšã«25,000ã®çªå·ã®å¶éããããŸãã çŸåšãã¢ã¹ã¯ã¯ã«å²ãåœãŠãããŠããæºåž¯é»è©±äŒç€Ÿã®æ°ã¯93,311,000ã§ããããããã®ãããªãæ£é¢ããã®è§£æ±ºçãã§åºå°ãç²åŸãããšããèãã¯ãã¯ããããŸããã ããã«ãViberãå°ãªããšã25,000åã®çªå·ã®æåã®ãã³ãã«ãååŸããå Žåã§ããåãããã¡ã€ã«ã«ç§»åããŠãçµæã®
[Hash] .jpgãã¡ã€ã«ãç¹å®ã®çªå·ã«æ¥ç¶ããå¿
èŠããããŸãïŒããããããã¡ã€ã«ã®äœææ¥ãŸã§è¿œè·¡ã§ããŸãïŒããããããã¯ãŸã éåžžã«æéãããããé·ãã§ãïŒã
ãœãªã¥ãŒã·ã§ã³ã¯ããã«èŠã€ãããŸããããããã¯ãŒã¯ã«ã¯ãå¥ã®äžè¬çãªãµãŒãã¹ã§ããWhatsAppã®ãœãããŠã§ã¢å®è£
ããããŸãã ãã¹ãŠã®åŒã³åºãã¯phpãçµç±ããŸãã æ°ãããŠãŒã¶ãŒãç»é²ããããã®æ¢è£œã®ã¹ã¯ãªããããããå®éã«ã¯
getProfilePictureãåŒã³åºãäŸã
ãããŸãã ããã»ã¹ãéå§ããã«ã¯ã* nixãµãŒããŒãå¿
èŠã§ãããèŠæ±ã®é »åºŠãšé床ã«ã©ãã ãèããããªããªãããç解ããå¿
èŠããããŸãã å®éšã®ããã«ãWhatsappã«
ãã°ã€ã³ããç¡éã«ãŒãã§æ°å€+ 7XXXXXXXXXX
getProfilePictureãåä¿¡/åä¿¡ãããç»é¢ã«ã¿ã€ã
ã¹ã¿ã³ãã衚瀺ããphpã³ãŒããäœæããŸããã æåãšãã®åŸã®èµ·åæã«ããã®ã³ãŒãã¯220ã250ã®æ°å€ã«éãã
ã¿ã€ã ã¢ãŠãã«ãªããŸãã-200åããšã«
ã¹ãªãŒãïŒ5ïŒãäžæåæ¢ããããšããŸã-ãšã«ãã
timeout ããã»ã¹ãå®äºããããã«åèµ·åãè©Šã¿ãŸã-æåã ãããã£ãŠããµãŒããŒã®å¶éïŒ200ãªã¯ãšã¹ãåŸã«å床ãã°ã€ã³ããå¿
èŠããããŸãïŒããŸãã¯ãã®phpå®è£
ã®ãšã©ãŒã«å¯ŸåŠããŠããŸãã ç§ã¯å®éšããŸããã§ããããphpã¹ã¯ãªãããæžãçŽããŠ200åã®æ°åã®ã¿ãåŠç
ããã«ãŒãå
ã§ãã©ã¡ãŒã¿ãŒ
$ startPhoneNumber㧠phpãéå§ããŠçµäºããã®ãåŸ
ã€Bashå¶åŸ¡ã¹ã¯ãªãããè¿œå ããããšã§ã1ç³ã§2矜ã®é³¥ã殺ããŸããã
ãããã£ãŠã1ç§ããã5.7ã®é床ã®åäœããåæã¹ããŒã ãåŸãããŸããã
ã¢ã¹ã¯ã¯ã®å
šå®¹éãåŠçããã«ã¯ã次ã®ãã®ãå¿
èŠã§ãã
93 311 000ïŒæ°å€ïŒ/ 5.7ïŒæ¯ç§ã®æ°å€ïŒ/ 60ïŒç§ïŒ/ 60ïŒåïŒ/ 24ïŒæéïŒã
190æ¥ ã
ãã«ãã¹ã¬ãã
WhatsAppãã°ã€ã³ã¯å€§éã«è¡ãããŸã
ãŠãŒã¶ãŒå -7XXXXXXXXXX圢åŒã®é»è©±çªå·
ãã¹ã¯ãŒã -ç»é²ã¹ã¯ãªãããä»ããŠåãåããŸãïŒç»é²ã«ã¯ã確èªã³ãŒããååŸããããã«åäœããsimã«ãŒããå¿
èŠã§ãïŒ
ããã¯ããŒã -ä»»æã®
ååWhatsAppã¯ãäžåºŠã«ãŠãŒã¶ãŒåããšã«1ã€ä»¥äžã®èªèšŒãçŠæ¢ããŸãã ããã«é¢é£ããŠãMegaFonãªãã¬ãŒã¿ãŒ200 rã®3æã®SIMã«ãŒããããããå
¬åŒã¹ãã¢ã§è³Œå
¥ãããŸããã ããããã Centos OSã®åããµãŒããŒããã3ã€ãã¹ãŠã®æ°å€ãWhatsAppã«ç»é²ããã3ã€ãã¹ãŠãBeeline Businessã®èœåãåããã¹ã¯ãªããã«åŸã£ãŠå®è¡ãããŸããã ä¿åãããåçã«å¯Ÿããéšå±ã®æ°ã®æ¯çã¯ã10ãã1ã®ç¯å²ã§ããã 次ã«ããæ°çŸããšãæ°åãã®ããã«å·®ã倧ãããªããŸããããããã¯æããã«ãŸã ååžããŠããããç¯å²å
šäœã§åäžã®ç»åãçæããŠããŸããã
ããã¯ãã
WhatsAppã©ã€ã»ã³ã¹å¥çŽïŒç»é²æã«åæããŸãïŒã¯æ¬¡ã®ãšããã§ãã
ENGå¥çŽããã®æç²C.ããããããããã¹ãã€ããŒããããªãã©ã€ã³ãªãŒããŒããªã©ãå«ãããããã«éå®ãããªãèªåã·ã¹ãã ã䜿çšãŸãã¯èµ·åããªãããšã«åæããŸãã ãŸãã¯ãwgetãapache benchãmswebstressãhttploadãblitzãXcode AutomatorãAndroid Monkeyãªã©ã®ãããŒããã¹ã¿ãŒããäžå®æéå
ã«WhatsAppãµãŒããŒã«å€ãã®ãªã¯ãšã¹ãã¡ãã»ãŒãžãéä¿¡ããæ¹æ³ã§ãµãŒãã¹ã«ã¢ã¯ã»ã¹ããŸãã人éã¯WhatsAppã¢ããªã±ãŒã·ã§ã³ã䜿çšããŠåãæéã«åççã«å¶äœã§ããŸããç¹ã«èš±å¯ãããªãéããã³ã³ãã³ãããªããã³ã°ããããšã¯çŠæ¢ãããŠããŸãã äžèšã«ããããããWhatsAppã¯ãå
¬éæ€çŽ¢ãšã³ãžã³ã®éå¶è
ã«ãã¯ã¢ã䜿çšããŠãŠã§ããµã€ãããçŽ æãã³ããŒããèš±å¯ãäžããŸãããããã¯çŽ æã®å
¬éãããæ€çŽ¢å¯èœãªã€ã³ããã¯ã¹ãäœæããããšã®ã¿ãç®çãšããŠããããã®ãããªçŽ æã®ãã£ãã·ã¥ãŸãã¯ã¢ãŒã«ã€ãã¯èš±å¯ããŸããã WhatsAppã¯ãäžè¬çã«ãŸãã¯ç¹å®ã®å Žåã«ãããã®äŸå€ãåãæ¶ãæš©å©ãçä¿ããŸãã äžè¬ã«ãEtherealãtcpdumpãHTTP Watchãªã©ã®ã¹ããã¡ãŒã®äœ¿çšãçŠæ¢ããŠããŸããããã·ã¹ãã ããããã³ã«ããªããŒã¹ãšã³ãžãã¢ãªã³ã°ããããWhatsAppã¯ã©ã€ã¢ã³ãã«ãã£ãŠè¡ãããéåžžã®ãªã¯ãšã¹ãã®å¢çå€ãæ¢çŽ¢ãããããåªåãçŠæ¢ããŠããŸãã ãã£ãã©ãŒããŠã£ã¹ã«ãŒãªã©ã®ãªã¯ãšã¹ãå€æŽããŒã«ããŸãã¯ãµã€ãã®æ¢çŽ¢ãå±å®³ã䟵å
¥ããŸãã¯ãã¹ããç®çãšãããã®ä»ã®ããŒã«ã¢ã¯ãã£ããã£ã®äœ¿çšãçŠæ¢ããå¿
èŠããããŸãã ãã¡ã€ã³ã§ãã¹ããããŠãããããã¯ãŒã¯æ©åšããµãŒããŒããŸãã¯è³ç£ã枬å®ããã¹ãããã«ã¹ãã§ãã¯ããŸãã¯ãã®ä»ã®æ¹æ³ã§ç£èŠããåã«ãåœç€Ÿã®èš±å¯ã確ä¿ããå¿
èŠããããŸãã ã客æ§ã¯ãé»è©±çªå·ãå«ãå人ãç¹å®ã§ããæ
å ±ããµãŒãã¹ããåéãŸãã¯åéãããåæ¥çãªå§èªãŸãã¯ã¹ãã ç®çã§ãµãŒãã¹ãæäŸããéä¿¡ã·ã¹ãã ã䜿çšããªãããšã«åæããŸãã ã客æ§ã¯ãæ¬ãµãŒãã¹ã®ãŠãŒã¶ãŒãã¹ãã ããããåæ¥ç®çã§å§èªãããããªãããšã«åæããŸãã
å¥çŽããã®æç²ã ããããã®ç¿»èš³ãããªãã¯ãWhatsAppãµãŒãã¹ã®èŠæ±ãéä¿¡ããèªåã·ã¹ãã ãã人ãã§ãã以äžã«äœ¿çšãŸãã¯å®è¡ããªãããšã«åæããŸã...ã
SIMã«ãŒãã¯ãã¹ãŠã3æ¥ç®ã«èª¬æãªãã§ãããã¯ãããŸããã ãã°ã¯ããã¹ãŠã®ã«ãŒãã§åæã«ã¢ã¹ã¯ã¯æéã®00:22ã«ã·ã£ããããŠã³ãçºçããããšã瀺ããŠããŸãïŒåã«ãŒããåŠçããããã«ç®¡çãããçŽ500,000ã®çªå·ïŒã èå³æ·±ãããšã«ãWhatsAppãµãŒããŒã¯æåã«éåžžã«é·ãæéãªã¯ãšã¹ãã«å¿çãå§ãããã®åŸãèªèšŒãå®å
šã«åæ¢ããŸããã ãµãŒããŒã¯ãçªå·ã
Failed; ReasonïŒBlocked; ããç»é²ããããšããŠå¿çããŸãã WhatsAppã人éãšããŠç»é²ããããšãããšããç³ãèš³ãããŸããããWhatsAppãµãŒãã¹ã䜿çšã§ããªããªããŸãããããšããã¡ãã»ãŒãžãé»è©±ãããããã¢ãã衚瀺ãããŸãã
å®è¡äžã®3ã€ã®ã¹ã¯ãªãããã¹ãŠãåãé床ã§åãããšãè¡ã£ãŠãããšããäºå®ã«å ããŠãããããåæã«ãããã¯ããå€ãã®å
±éç¹ããããŸãããã€ãŸãããã¹ãŠåãããã¯ããŒã ãVãã§ãã°ã€ã³ãã IPã¢ãã¬ã¹
ã¹ããŒã ãè€éã«ããŸã
ç§ãã¡ã¯ã圌ããå°ãè³¢ããªã£ããšä¿¡ããŠããŸãïŒããªãã¡ããããã®3ã€ã®SIMã«600ã«ãŒãã«ãè²»ãããŸããïŒã ä»åã¯ãã¡ããã®ãéå
¬åŒã¹ãã¢ãã§100ã«ãŒãã«ã§10æã®SIMã«ãŒãã賌å
¥ããŸãã äžæã ã¹ã¯ãªãããè€éã«ããSIMã«ãŒãã®é
åãäœæãã1ã€ã®çŽ æŽãããæ ç»ã®ä¿³åªã®ãªã¹ãã«åŸã£ãŠãããããã«ããã¯ããŒã ãä»ããŸãã
åSIMã«ãŒããåå¥ã®IPã¢ãã¬ã¹ãã匷å¶çã«çµäºãããŸãCentosã¯ãHyper-Vãã€ããŒãã€ã¶ãŒã®äžã§å®è¡ãããä»®æ³ãµãŒããŒã§ããããã«ããã7ã€ã®ã€ãŒãµãããã¢ããã¿ãŒãè¿œå ã§ããŸãïŒHyper-vã®å¶éïŒ8ã€ã®ã€ãŒãµãããã¢ããã¿ãŒ+ 4ã€ã®ã¬ã¬ã·ãŒïŒã ããããç°ãªãIPã¢ãã¬ã¹ã§phpããã»ã¹ããªã³ã©ã€ã³ã«ããã ãã§ãã
ã·ã¹ãã ã«ã¯ããã©ã«ãã§ãµãã·ã¹ãã ipåå空éïŒip netnsïŒããããããã«ãããããã¯ãŒã¯ã¹ã¿ãã¯ãå®å
šã«ä»®æ³åã§ããŸãã ããã¯ãããããããŒã ã¹ããŒã¹ïŒnsïŒãäœæã§ããããšãæå³ããŸããåã
ã®nsã«ã¯ãã¢ãã¬ã¹ãã«ãŒããã«ãŒã«ãdnsãªã©ããããŸããã€ã³ã¿ãŒãããäžã®ip netnsã«é¢ããèšäºã¯å€ããããŸããããç©çã€ã³ã¿ãŒãã§ãŒã¹ã®äœ¿çš-ããã©ã«ã以å€ã®åå空éã«ç©çã€ã³ã¿ãŒãã§ãŒã¹ãè¿œå ããããšã¯äžå¯èœã§ãããšæžããŠãã人ãããã°ãã¿ããã€ã³ã¿ãŒãã§ãŒã¹ãä»ããŠã®ã¿æ¥ç¶ã§ããããã¿ãããªãã§è¡ãããšãã§ãããã®ããããŸãã
7ã€ã®ã»ã«ã³ããªIPïŒãšã€ãªã¢ã¹ïŒãäœæããããããçŽæ¥ãŸãã¯ã¿ããã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠç°ãªãåå空éã«åæ£ãããããšã«æåããŸããã§ããã ãããã7ã€ã®namespace'ovãäœæããããããã«åå¥ã®ç©çã€ã³ã¿ãŒãã§ã€ã¹ãæ¥ç¶ãããªãã·ã§ã³ã¯ãã€ã³ã¿ãŒãããã³ãã¥ããã£ã®ä¿èšŒã«ãããããããåé¡ãªãå¯èœã§ããã
æ§æã³ãã³ããªããã¯ã¹
ip netns add net1 && ip link set netns net1 dev eth1 ip netns exec net1 ip addr add YYY71/24 dev eth1 ip netns exec net1 ip link set up dev eth1 ip netns exec net1 ip route add default via YYY1 ip netns add net2 && ip link set netns net2 dev eth2 ip netns exec net2 ip addr add YYY72/24 dev eth2 ip netns exec net2 ip link set up dev eth2 ip netns exec net2 ip route add default via YYY1
ã·ã¹ã³
ip nat inside source static YYY71 XXX71 ip nat inside source static YYY72 XXX72
ã¬ã¬ã·ãŒã¢ããã¿ãŒã¯ãŸã£ããæ©èœããªãã£ãããã8æã®ã«ãŒãã«æ³šç®ããŸãããã
ããã§ãBashã¹ã¯ãªããã¯startNumberãendNumberãSIMãNSãåããŸããããã§ãSIMã¯é
åå
ã®simã«ãŒãã®ååãNSã¯phpããã»ã¹ãéå§ããããŒã ã¹ããŒã¹åã§ãã åŒã³åºãäŸïŒ
./run.sh 79671380000 79671780000 SIM1 net1 &
run.shã¹ã¯ãªããèªäœ ... start=$1 last=$2 net=$4 startParam="ip netns exec $net" ./pushme.sh "$3 $4" "$start begins" while [ $start -lt $last ] do $startParam php ./getProfiles.php instance=$start prefix=$start count=50 sim=$3 net=$4
容éã2,000æªæºã®æ°åã«åå²ããŸãã ãŸããããã·ã¥ãªãŒããŒçµç±ã§ããã·ã¥éç¥ã¹ã¯ãªãããBashãšphpã«è¿œå ããŸãïŒã7XXXXXéå§ããã7XXXXXçµäºããããã¥ãŒã¹ãã³ã«åé¡ããããŸããïŒ
WhatsAppãµãŒããŒããéæšæºã®åçãéä¿¡ããããéåžžã«é·ãïŒ5ç§ãè¶
ããïŒå¿çããªãç¶æ
ã§åŸè
ãéä¿¡ããŸãã
ä»åŸãWhatsAppã¯ç§ãããããªãããŒã§ããããããã®SIMã«ãŒãã¯ãã¹ãŠããã°ããããŠã»ãŒåæã«ãããã¯ããããšèšããããšæããŸãã ãããã«ãããã¹ã¯ãªããã¯ãŸã 8,000,000ã®é»è©±çªå·ãããŸãåŠçãã411,279æã®åçãæã«ããŠããŸãã 20察1ã®æ¯çãããã¯ãã§ã«éåžžã«è¯å¥œã§ãã
ã¢ã¹ã¯ã¯ã®åŠççµæã®éžæãããèªæ²»ç®¡åº
é·ãéãæ®ãã®SIMã«ãŒããæå¹ã«ããŠã¹ã¯ãªãããå®è¡ããããšã¯ã§ããŸããã§ããã æåŸã«ãç¡æã®è°äºé²ãç»å Žããããã«ãããã¢ã¹ã¯ã¯ããã®ãã¹ãã£ã³ã°ïŒäººå£12 197 596人ïŒãåšå¢ã®ãããã®ã§ããããšãèªãã匷ãããããŸããã ãããã£ãŠãç§ãã¡ã¯è¥ã
ããæ倧䞻矩ãããæ·±ãé ããäŸãã°ãããèªæ²»ç®¡åºã®ãããªäººå£ã®å°ãªãäž»é¡ãåãäžããŸãã ãªãã ã ã¹ã¯ãªãããéå§ããŸã-ãããŠã12æéåŸã«Nenets okrugã®ãã¹ãŠã®å®¹éã®åæãå®äºããŸããã 169,995ã®æ°åã«ã€ããŠãåèš2,288æã®åçãWhatsAppã§èŠã€ãããŸããã 次ã®ã¹ãããã«é²ã¿ãŸãã
VKontakte
ã¿ã¹ã¯ïŒèå³ã®ããéœåžãæã£ãŠããVKãŠãŒã¶ãŒã®ãã¹ãŠã®åçãååŸããŸãã
VK APIã®åŠçã«ã¯ããªãã®æéãããããŸããã ãããŠãgetuserãªã¯ãšã¹ãã¯ã¢ã¯ã»ã¹ããŒã¯ã³ãªãã§åé¡ãªãå®äºã§ããããšãããããŸããã ãã ããæ€çŽ¢ã¯ãšãªïŒç¹å®ã®éœåžã®äººã ããååŸããïŒã¯ããŒã¯ã³ã§ã®ã¿æ©èœããã¹ã¿ã³ãã¢ãã³ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãªããŠãŒã¶ãŒã§åä¿¡ãããŸãã èšäº
ãvk apiãæäœããããã®ã¢ã¯ã»ã¹ããŒã¯ã³ãååŸããæ¹æ³ã㯠ãããã«åœ¹ç«ã¡ãŸãã ãã ãããã®ããŒã¯ã³ãåãåã£ãå Žåã§ã-å¶éãçºçããŸã-ããšãã°ãNaryan-MarïŒNenets Autonomous OkrugïŒã®éœåžããªã¹ããããŠããã«ããããããã1000人ã®ãŠãŒã¶ãŒããååŸã§ããŸããïŒ1åã®ãªã¯ãšã¹ãã§1000人ã§ã¯ãªããåèš1000人ïŒã ã
ç·åœããã§get_usersãå®è¡ããããšããŸãã次ã®ãªã¯ãšã¹ãã§ã$ id = 1ããNãŸã§ã®ãã¹ãŠã®VKontakteãŠãŒã¶ãŒããœãŒãããŸãã
response=$(curl --silent "https:// api.vk.com /method/users.get?user_id=$id&fields=photo_max_orig,country,city")
ãã®èšäºãæžããŠããæç¹ã§ã¯ãVKontakteã«ã¯N = 3å人ã®ãŠãŒã¶ãŒãããŸããã åçãããŠã³ããŒãããã«ãã®ãããªãªã¯ãšã¹ããè¡ããšã1ç§ããããŸããã
300,000,000ïŒãŠãŒã¶ãŒïŒ/ 1ïŒæ¯ç§ïŒ/ 60ïŒç§ïŒ/ 60ïŒåïŒ/ 24ïŒæéïŒã3472æ¥ã
VKãIPã¢ãã¬ã¹ããããã¯ããªãå Žåã1ã€ã®ã¹ã¬ããã§åèšçŽ3472æ¥ã§ãã ãªãã·ã§ã³ã¯ç Žæ£ãããŸããã
users.searchã«æ»ããŸããåºåã®æ°ã«ã¯å¶éããããŸããããªã¯ãšã¹ãã®ãå質ãã«ã¯å¶éããããŸããã 説æããŸãã ãªã¯ãšã¹ãã§ã¯ããã©ã¡ãŒã¿ãç¡éã«çµã蟌ãããšãã§ããŸããããšãã°ã女æ§ãŸãã¯ç·æ§ã®ã¿ãæ®åœ±ãããåé¡ãååã«ããããŸãã¯åçãæã£ãŠãã人ã ããæ®åœ±ããããããŠæã䟿å©ãªã®ã¯ç¹å®ã®å¹Žéœ¢ã®äººã ããæ®åœ±ããããšã§ããæ倧80åãåèš66åã®1000åã®å®è¡ããã ããäžéšã®å¹Žéœ¢ã§1000ãè¶
ããå Žåã¯ãæ§å¥ã§ããã«åå²ããŠãã®ãããªã¯ãšãªãç¹°ãè¿ããŸãã
Naryan-Marã®VKãŠãŒã¶ãŒã®å¹Žéœ¢ååžVKããã®æ®µéçãªã¹ã¯ãªããã®ããŠã³ããŒã 01: acc_token="abc123abc123abc123abc123abc123abc123abc123abc123" 02: vk_url="api.vk.com/method/users.search?has_photo=1&count=1000&city=2487&country=1&access_token=$acc_token&fields=photo_max_orig" 03: 04: for age in {14..80} 05: do 06: echo -n $id " " >>vk.log 07: date +"%T" >>vk.log 08: mkdir photos/$id 09: list=$(curl --silent "$vk_url&age_from=$age&age_to=$age" | jq '.response | .[] | (.uid|tostring) + " " + .photo_max_orig' | \ sed 's/^"\(.*\)"$/\1/') 10: counter=0 11: while read -r line; do 12: let counter++ 13: arr=($line) 14: echo -n "$counter." >>vk.log 15: photo=${arr[1]} 16: filename=${arr[0]}$(echo $photo | sed "s/.*\(\..*\).*$/\1/") 17: wget $photo -O photos/$id/$filename 18: done <<< "$list" 19:done
å®éãã¹ã¯ãªããã¯ãïŒåãIPããïŒäºåã«åä¿¡ããaccess_tokenã䜿çšããŠãç¹å®ã®éœåžïŒcity = 2487ïŒããç¹å®ã®å¹Žéœ¢ã®ãã¹ãŠã®äººã
ã®ãªã¹ããVK APIãä»ããŠã«ãŒãã§èŠæ±ããŸãã
ããã§æãèå³æ·±ãã®ã¯ãè¡çªå·9ã§ãã
VKontakteãã¥ãŒããJSONã¬ã¹ãã³ã¹ãè¿ããŸãïŒ{"response"ïŒ[COUNTã{"uid"ïŒXXXXXXXã "first_name"ïŒ "Ivan"ã "last_name"ïŒ "Ivanov"ã "photo_max_orig"ïŒ "httpïŒ\ / \ / QQQ.vk.me \ / ZZZ \ /YYY.jpg "}ïŒããªã¹ãã«è¿œå
id photo_urlïŒXXXXX httpïŒ// QQQ.vk.me / ZZZ / YYYãªã©ïŒ
ãããå®è£
ããã«ã¯å€ãã®æ¹æ³ãããããããããã£ãšããããªãªãã·ã§ã³ããããŸãã ãããããããè¡ãæ¹æ³ãæ¢ããŠããjqã¯è»œéã§æè»ãªã³ãã³ãã©ã€ã³JSONããã»ããµããšåŒã°ãããã®ã«åºäŒããŸããã
jq '.response | ã[] | ïŒ.uid | tostringïŒ+ "" + .photo_max_orig '
æåŸããèªã¿åãå ŽåïŒé
åã®ãã¹ãŠã®èŠçŽ ã®åç.photo_max_origãžã®ãªã³ã¯ãæã€ãŠãŒã¶ãŒIDïŒ.uid | tostringïŒãååŸããŸãã
19æ³ã§ãVKã¯äœããçããåãåããã«éåžžã«ãã£ãããšåå¿ãå§ããŸããã 1æéååŸã13,967æã®ç»åãããŠã³ããŒããããŸããã æ®ãã®1,700人ã¯ããŸã£ãã衚瀺ãããŠããªãã£ãããã§ãã ããŠã³ããŒããããå¥ã®400åã®ç»åã¯ãäœããã®çç±ã§å£ããŠããããéåžžã«å°ããïŒ<10 kbïŒããšãå€æããŸããã
é¡èªèãšæ¯èŒ
ãã§ã«ããã£ãŠããããã«ãåãåã£ãç»åã®äžã«ã¯ç«ãšè»ãããããããã®ã§ãæåã¯ãããããã£ã«ã¿ãªã³ã°ããããšæããŸãã OpenCVïŒãªãŒãã³ãœãŒã¹ã³ã³ãã¥ãŒã¿ãŒããžã§ã³ã©ã€ãã©ãªããªãŒãã³ãœãŒã¹ã³ã³ãã¥ãŒã¿ãŒããžã§ã³ã©ã€ãã©ãªïŒãããã«åœ¹ç«ã¡ãŸãã
ãã®ã©ã€ãã©ãªã«åºã¥ããããŸããŸãªããã°ã©ãã³ã°èšèªã®å®è£
ãå€æ°ãããŸãã ããšãã°ãåçã®é¡ã®åº§æšã決å®ããfacedetectã 圌女ã¯ImageMagickãšäžç·ã«ãèªèãããé¡ã座æšã§å¥ã®ãã¡ã€ã«ã«åãåããŸãã
åçã®é¡èªèã«ãããBetafaceããèå³æ·±ãå®è£
ããããŸãã å€æ°ã®ç»åã®ææAPIããããŸãããã¢ããããŒããããåçã«ååšããå
šå¡ãèªèããæ§å¥ãå£ã²ããã¡ã¬ããç¬é¡ã®ååšãå€æããæšå®å¹Žéœ¢ïŒç§ã¯27æ³ããããã®ã¬ãããã¿ïŒã瀺ãåªãã
ãã¢ããããŸãå·èµåº«ã§-42ïŒã
è±èªã®éçºè
Terence Edenããæ¢è£œã®pythonã¹ã¯ãªãããååŸããŸãã 圌ã¯éåžžã«
èå³æ·±ããããžã§ã¯ãã®äžéšãšããŠããããæžããŸããã 圌ã®ä»äºã¯ããã³ãã³ããŒãããªãã³åç©é€šããçµµç»ã®å
¬éã³ã¬ã¯ã·ã§ã³ãããŠã³ããŒããããã®äžã«ãã人ã
ã®ç»åãèªèããããšã§ããã 次ã«ãçµæã®é¡ã®ããŒã¹ãšåçã䜿çšããŠãå¯èœãªéãããªãã«äŒŒã人ç©ãæããåçãèŠã€ããããšãã§ããŸãã æ®å¿µãªããã圌ã¯Web APIãæäŸããŠããŸãããããã¹ãŠã®ãœãŒã¹ã¯githubã«ãããŸãã
Terenceã¹ã¯ãªãããä¿®æ£ããŸã-British Galleryããã®ããŠã³ããŒãããªãã«ãããã©ã«ããŒããšã®åŠçãåé€ããŸãã
Pythonã¹ã¯ãªãã import sys, os import cv2 import urllib from urlparse import urlparse def detect(path): img = cv2.imread(path) cascade = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml") rects = cascade.detectMultiScale(img, 1.3, 4, cv2.cv.CV_HAAR_SCALE_IMAGE, (20,20)) if len(rects) == 0: return [], img rects[:, 2:] += rects[:, :2] return rects, img def box(rects, img, file_name): i = 0
åŠççµæïŒVKããã®13,500åã®ç»å=> 6,427 / 5,446人ã ïŒèæ
®ã«å
¥ãã/ 1æã®åçã«è€æ°ã®äººç©ãããå Žåãé€ãïŒ
WhatsAppã®2 208 => 963/876人
èå³æ·±ããã¿ãŒã³ãèŠãããŠããŸã-ãŠãŒã¶ãŒã2人ã«1人ã¯ãããã¡ã€ã«ã«åçãèŒããŠããŸããã
次ã®èªèã¯ã
eigenfaces.xmlã¢ãã«ã®äœæã§ãã ãã®ã¹ã¯ãªããã¯ããœãŒã¹åçãã©ã«ããŒããXMLãã¡ã€ã«ãäœæããããã«çšæãããŠãããä»åŸæ€çŽ¢ãããŸãã ãããã£ãŠã1ã€ã®ã»ããã«ãã®ãããªãã¡ã€ã«ãæºåãã2çªç®ã®èŠçŽ ãã1ã€ã®èŠçŽ ãååŸããŠãäžèŽãããã®ãæ¢ããŸãã æè¡è
ã¯ãã©ã®ããããã¡ã€ã³ãšããŠäœ¿çšãããã決å®ããŸãããVKããã®6,400æã®åçã¯ãã
4GBãè¶
ããŠå²ãåœãŠãããšãã§ããŸããã§ãã ããšããã¡ã¢ãªãšã©ãŒã§ã¹ã¯ãªããã§åŠç
ã§ããŸããã§ãã ã æé-11æ³-ç解ããã®ã¯ç©ãã§ã¯ãããŸãã
-WhatsAppããã¹ã¯ãªãã963æã®åçãèŠãŠã20ååŸã«
eigenfaces.xmlã®ãµã€ãºã1.6 GBã«ãªã£ãŠããŸãã VKã®å Žåã®ãµã€ãºãæ³åã§ããŸãã åŸã§å€æããŸãããã¹ã¯ãªãããèªåã§ããçŽããŸããããã¢ãã«ã®èå¥è¡ã誀ã£ãŠåé€ããŸããããã¹ãŠã®èŠçŽ ã®èå¥åãã0ãã§ã¯ãããŸããã§ããã ã¹ã¯ãªãããå®è¡ããããŸã§æ°æ¥åŸ
ã£ãŠããæ€åºããã®ã¯ã°ãããŠããã§ãããã ãšã©ãŒãä¿®æ£ããããã«20ååŸ
ã¡ãŸãã
次ã«ãVKã®åãã¡ã€ã«ã«å¯ŸããŠãæ€èšŒã¹ã¯ãªãããå®è¡ããŸãã
find detectedVK/ -name *.jpg -exec ./myscript.sh {} \;
ããã§ã®ã100000ãã¯ã100ã§ã®äžèŽã®ç²ŸåºŠã§ãããå®å
šäžèŽã§ãã
1åã®æ¯èŒã«40ç§ãããŸãã 1ã€ã®ããã»ããµã§6 400 * 40ã3æ¥ã å€ã«åºçºããŸãã å¯ãŸããã-ææ¥ã¯æææ¥ã§ãã
äžèŽã®ãã®ãããªå°ããªãµã³ãã«ã§ã¯ãŒãã«ãªããšèããŠãããšããã«èšããªããã°ãªããŸããã ã¹ã¯ãªãããæ©èœããŠããéãç§ã¯å®æçã«å¶ç¶ã®äžèŽãèŠãŸããã ç§ã瀺ããæ£ç¢ºãã§å€ãã®çµæããããŸãããããã調ã¹ãŠã¿ããšãã3500ãçšåºŠã®ãããã§ããç·ã®åãšå¥³ã®åã®çµæããããããããŸããã åæã«ãããã2人ã®èŠªrelativeãšããæãããããŸããã çµæã¯èå³æ·±ããã®ã§ãããããã¯ç§ãã¡ãæ¢ããŠãããã®ãšã¯ãŸã£ããç°ãªããŸãã
æåã®ãããã¯ãæåã®1,000ã¢ã«ãŠã³ãã®çµããã«çºçããŸããã Naryan-Maråžã®å¥³ã®åYanaãWhatsAppãšVKã«åãåçãèŒããŸããã åçã¯åãïŒè§£å床ã®ã¿ãç°ãªãïŒã«ãããããããäžèŽã®ç²ŸåºŠã¯ã3,000ã§ãã粟床ã6,000æªæºã®ãã¹ãŠã®çµæã«ã€ããŠã
converã䜿çš
ããŠäžèŽããç»åãçµã¿åãããŠèŠèŠçã«æçµæ±ºå®ãäžããŸãã
... if [ "$precise" -lt 6000 ] then echo $precise $whIMG $vkIMG convert detectedWH.bak/$whIMG detectedVK.bak/$vkIMG -append convertResults/${precise}_$whIMG$vkIMG fi ...
åèšã§ã2æ¥ç®ã®çµãããŸã§ã«ã25åã®VKã¢ã«ãŠã³ããæ£åžžã«èªèãããé»è©±çªå·ã«é¢é£ä»ããããŸããã
ããã¯ãèŠã€ãã£ãWhatsAppé¡ã®æ°ã®2ïŒ
ããŸãã¯ãã¹ãŠã®ç»åã®1ïŒ
ã§ãã
Naryan-Marã®åæçµæããã¯çŽ æŽãããçµæã ãšæããŸãããã®çç±ã¯æ¬¡ã®ãšããã§ãã
- å°ããªãµã³ãã«ãããããããã®éã«å€§ããªéãããããŸãïŒ16,600 VK察2,000 WhatsAppïŒã
- äžèŽãèŠã€ããããã«ãEigenfacesã¢ã«ãŽãªãºã ã®ã¿ã䜿çšããŸããããããšãã°Fisherfacesãè¿œå ã§ããŸãã
- Viberãä»ããŠé¡æšãã«ãŒããã©ãŒã¹ãè¿œå ããããšã«ãããèªèã®æ©äŒãå¢ããããšãã§ããŸãã
- VKããã¯ãæåŸã®ãããã£ãŒã«åçã ãã§ãªãã以åã®ããã€ãã®åçãæ®ãããšãã§ããŸãã
- æåŸã«ãFacebookãã¯ã©ã¹ã¡ãŒããªã©ããœãŒã·ã£ã«ãããã¯ãŒã¯ã®ãªã¹ãã«è¿œå ã§ããŸãã
ç¹å®ã®æ°åã«ã€ããŠè©±ãããšã¯å°é£ã§ããããã¹ãŠã®ãã€ã³ãã芳å¯ãããå Žåãæåãããããã®å²åã倧å¹
ã«å¢å ããããšã¯ç¢ºãã§ãã ãã¡ããããã®ããã®ããã»ããµãã¯ãŒãæ°åå¢ããå¿
èŠããããŸãã
ãããã«
ãªãããã ããªã®ãã åŸãããããŒã¿ã®ç€ŸäŒãžã®å®çšçãªå®çšåã¯ãŸã èããŠããŸããã ç 究ã®ããã«ã¡ãã£ãšããç 究ã«ãªããŸããã
OpenCVã©ã€ãã©ãªã¯åªããããŒã«ã§ãããååŸããããŒã¿ã䜿çšããŠãå€ãã®èå³æ·±ãå®éšãè¡ãããšãã§ããŸãã
æåŸãŸã§èªãã 人ãžã®å ±é
¬ãšããŠãããã¯ãäŸãã°ã楜ãããªãã·ã§ã³ã§ãïŒãã·ã¢äººãšå€åœäººã®æåãªå¥³åªã®åçãã
eigenfaces.xmlã¢ãã«ãåéããWhatsAppããåãåã£ãMuscovitesããŒã¿ããŒã¹ãžã®æºæ ãæ€çŽ¢ããŸãïŒçŸåšãçŽ400,000人ïŒã é埳çãªèŠçŽ ãèæ
®ããã«ïŒã€ãŸãã質åïŒèŠç¥ãã¬äººã«é»è©±ããã®ã¯æåçã§ããïŒãçªå·ããã€ã€ã«ããŠæ ç»é€šã«æåŸ
ããŸãã 3000ã100ã®ç²ŸåºŠã§ã¡ã€ã³ãã£ã©ã¯ã¿ãŒã®ããã«èŠãã女ã®åãšæ ç»é€šã«è¡ãã®ã¯æ¥œããã§ãã
çµè«ãšããŠãããã©ã€ãã·ãŒèšå®ã確èªããããšãå¿ããªãã§ãã ããããšèšãããšãã§ããŸãã ããããç§ã¯åå·çãªã ãŒãã®å€§åŸæŽè
ã§ã¯ãããŸããïŒã
圌ãã¯ç§ãã©ãã«ãããç¥ã£ãŠããŸããããã€ã³ã¿ãŒããããããã€ããŒã¯ç§ã®ãã¹ãŠãç¥ã£ãŠããŸããããããã°ãã©ã¶ãŒã¯ç§ãã¡ããã©ããŒããŠããŸãããªã©ïŒã ããšãã°ã劻ãé»è©±ã§å¿åã®ãžãªããŒã¿ã®ã³ã¬ã¯ã·ã§ã³ããªãã«ãããšã圌女ããèŠã€ããããšããèšèïŒèª°ããæãéèŠãªã®ã¯åœŒå¥³ããŸã æãã€ããŠããªãçç±ïŒã§ç§ã¯é¢çœãã£ãŠããŸãã
誰ããç§ãæ¢ããŠããããã©ããã¯ããããŸãã-人çã§äœãéåããŠããªãããã§ãïŒWhatsAppã©ã€ã»ã³ã¹å¥çŽãé€ãïŒã