Shibuya Perl Mongers : Shibuya Perl Mongersテクニカルトーク#11ã«è¡ã£ã¦ãããShibuya.pmååå ã
ãã¼ãã¯"no Perl; use x86;"ã¨ããä½ã¬ãã«ããªå
容ã
å
容ã«ã¤ãã¦ã¯Yokohama.pmã«ç¶ãid:hirataraããã®ã¬ãã¼ãã詳ããã§ãã
今日はShibuya.pm #11の日です - 北海道苫小牧市出身のPGが書くブログ
ãããã£ããèªåã§ãææ¸ãã§ã¡ã¢ãã¨ã£ã¦ã¿ãã®ã§ãç解ã§ããã¨ããã¨åºæ¥ãªãã£ãã¨ãããæ´çããããã«ããå
¨é¨æãã¦ã¿ã¾ãã
è²ã
ééã£ã¦ããã¨ãããããã¨æãã¾ããããææãªã©ããã ããã¨å¹¸ãã§ãã
- 第ä¸é¨ sandboxç¹é
- ãã¤ããªçã§æã¾ã㦠- inside lleval (dankogaiãã)
- ã©ã¤éº¦çã§ã¤ãã¾ãã¦ãããããã¤ããªçã§éãã§ããåã©ããã¡ãæã¾ãã¦ããããããããªã
- lleval
- Perl, BASIC, PostScriptãªã©å®è¡å¯è½
- ã¤ã¤ãªã³ã¼ããå®è¡ãããªãããã«ãªã£ã¦ãã
- "while 1"ã®ç¡éã«ã¼ã, fork, syscallãªã©
- ã§ãLWP::Simpleãªããã¯éã
- ã©ããã£ã¦å®ç¾ãããï¼
- ã·ã³ãã«ãªCGI
- FreeBSDã®nullfsã§ã»ã¨ãã©HDD容éã使ããªã
- FreeBSD::i386::Ptraceãç£è¦
- pt_to_sceãã·ã¹ãã ã³ã¼ã«ã«å ¥ãã¨ãã«ã¤ãã¾ãã
- ããkazuhookuãããææãFreeBSDã§ã¯SandBoxãä½ããªãã
- å®è¡ããã¦ããæ¤åºããããã¨ã«ãªã
- æ£ç¢ºã«ã¯ããã«å®è¡ããã¦ãã¾ãããã§ã¯ãªã
- ã¬ã¸ã¹ã¿ã¯æ¸ãæããããªãããã¹ã¿ãã¯ã¯æ¸ãæãããã
- espã¬ã¸ã¹ã¿ã«8ã足ãããã®ãã§ã¹ã¿ãã¯ã®ï¼çªç®ã®å¼æ°ãå¾ããã
- ãããæ¸ãæãããã¨ã§å±éºãªé¢æ°ã¯é²ãã
- ã§ãforkã¯å¼æ°ã¨ããªã
- 0çªå°ããã³ãã«ãããã¨ã§SEGVãèµ·ããã
- Signal Handlerãæ¸ãæãããããã0çªå°ã«å®è¡å¯è½ã³ã¼ããåããã
- ãããã®æä½ã¯å¼æ°ãã©ããã§é²ãã
- ã¾ã¨ã
- ãåã©ããã¡ã«ã¯æãååéãã§ããã ãããã
- ä»»æã®ã³ã¼ããå®å ¨ã« eval ããæ¹æ³ã®å®è£ æ¹æ³ã¨ãçªç ´æ¹æ³ã«ã¤ã㦠(tokuhiromãã)
- The Perl SandBox
- Linuxã§ãSandBoxãåãããããã
- Sys::Protectã¨ãããã®ã¯ãããã§ãå ¨ç¶unsecure
- IRC botãä½ããã
- å±éºãªãã®ãã¤ã¶ã
- fork, system, etc.
- SEGVã¯ãããããªã
- åºæ¬çã«æ°ããããã»ã¹ãä½ã£ã¦å®è¡
- VMã®Opcodeãmaskãã
- PL_op_mask or PL_ppaddr
- DynaLoader(XS, DLLç¨ã®ã¢ã¸ã¥ã¼ã«)ãå±éº
- ãä¸è¬çãªãx86ã³ã¼ããpackãã¦æµãè¾¼ãã¦ãã¾ã
- wrapperã§å·®ãæ¿ãã¦ãã
- ã§ãXSã¯ä½¿ããã
- ã¬ãã·ã«ã«å¤æ°ã§é ãææ³
- DBããã±ã¼ã¸ã§è¦ããã¨ãã§ãã¦ãã¾ã
- Scalar::Utilã®blessedã§ãã§ãã¯
- "0"ã¨ããããã±ã¼ã¸åã§ééãã¦ãã¾ã
- tieã使ãã
- ã¾ã¨ã
- PurePerlã§ã¯å±éºãªã®ã§å ¨é¨XSã§æ¸ãã¾ãã
- ã´ããã´ããé£ã³è·³ããªããã¹ã¯ãªã¼ã³ãæããã¦ãã®ãé¢ç½ãã£ãï½
- How about Kindle hacking? (obraãã)
- è±èªãã¬ã¼ã³
- kindleã¨ããé»åæ¸ç±ãªã¼ãã¼ï¼ã®hack
- ã»ã¨ãã©è±èªãç解ã§ããªãã£ã
- ã¨ã«ããè²ã 試ã¿ã¦hackãããã¨ãã話ã ã£ãããã
- åãã«ææããã£ã¦ããã¬ã¼ã³ã¯ãããä¸æããã¨æã£ã
- 第äºé¨ x86 binary hacks
- ä¸çã®ã»ãã¥ãªãã£ã³ã³ãã¹ãï¼Capture the Flagï¼ã£ã¦ã©ããªãã®ï¼ (kenjiãã)
- ã¹ã©ã¤ã㯠http://07c00.com/a.pdf ã«ããã¾ã
- Capture the Flag (CTF)ã®ç´¹ä»
- ã«ã¼ã«ï¼XSSããªã¼ãã¼ããã¼ãªã©ã®èå¼±æ§ãå©ç¨ãã¦é ããããã¹ã¯ã¼ããã¿ã¤ããããªã©
- Binary, Exploit, Forensic ãªã©ã®ã«ãã´ãª
- Binaryåé¡ï¼å®è¡ãã¡ã¤ã«ãé å¸ããã
- fileãããstringãããkernelã¢ã¸ã¥ã¼ã«ã®ããã ãåä½ã§ã¯ãã¼ãã§ããªã
- é£èªåã®è§£é¤
- ã·ã¹ãã ã³ã¼ã«ããã¯ãuprintfããããã®ã¼ã
- çµæã0x****ã«ãªãã·ã¹ãã ã³ã¼ã«ã®çµã¿åãããç·å½ããã§æ¢ã
- é£èªåã¯åºæ¬
- jmpå½ä»¤ãè²ã ãªçµã¿åããã«å¤æ
- ç´ç²ãªè§£æ社ã¨ãã¦ã®è½åã試ããã
- Forensicåé¡ï¼ç©çã¡ã¢ãªã®ãã³ãããç¹å®æååã®ä»®æ³ã¢ãã¬ã¹ãæ±ãã
- ããã»ã¹ã®ç¹å®
- 0x03,0xXX,0x1b,0xXX ã®ä¸¦ã³ãæ¢ã対象ããã»ã¹ãè¦ã¤ãã
- PDBããç©çï¼ä»®æ³ã¡ã¢ãªã¸â¦ï¼ãã®ãããã¯å ¨ç¶åãããªãã£ã
- Triviaåé¡ï¼åé¡æã®ã¿æ示
- ãx86ã§ããâ\xEB\xFEâã¨åãæå³ãæã¤ãPowerPCã®ãã·ã³èªã¯ä½ï¼ããªã©
- ã¾ã¨ã
- ä¸çã®ã¨ã³ã¸ãã¢ã¨åç£ç¢ç£¨ã§ãã
- 楽ãããï¼
- Native Client Hacks (Fukumori Daikiãã)
- ãã©ã¦ã¶ãµã³ãããã¯ã¹ã®å´©å£
- ActiveXãä½ã§ãåºæ¥ã¦ãã¾ã
- GoogleNativeClient
- x86ãã¤ããªãå®å ¨ã«å®è¡ããæ çµã¿
- ã²ã¨ã¤ã®ãã¤ããªãè²ã ãªç°å¢ã§
- ELFã®ããã§ELFã§ãªã
- NaClã©ã³ã¿ã¤ã ãint80h, sysenterã¯ãªã
- ãã©ã³ããªã³ã¨å¼ã°ããå ´æã«é£ãã§ä½ããã®å¦çããã¦ããããã
- èªå·±æ¸ãæãã§int 80hãé ãã¦ã¿ãã¨
- ãã¼ãæã®ãã§ãã¯ã¯éããã§ãåçãã§ãã¯ã§è½ã¡ã
- ãã®ä»ã«ãå¶éãããã¤ã
- 32ãã¤ãå¢çã§é¢æ°ãç½®ãããããªã©
- è²ã 試ãããæåããªãã£ã
- ããã§ãhackãã
- é»åãå®è¡ãããï¼
- åºç¤ã®åºç¤(ï¼)ãæ´æ°ãªã¼ãã¼ããã¼
- 足ãç®ã®çµæã§ç¢ºä¿åãå°ããã¨ã
- ããä»ã¯ç´ã£ã¦ãã
- ã¯ãã¹ãã¡ã¤ã³ã¢ã¯ã»ã¹
- ä»ã®ãã¡ã¤ã³ããã®ã¬ã¹ãã³ã¹ãã¨ããã
- "http:***"ã¯èªããªã
- GoogleAppsï¼ã®ç»åãenbedãããã¨ã§åå¾ã§ããããã«
- å ±åãã¦ããç´ã£ã¦ãã
- ã¾ã¨ã
- ãµã³ãããã¯ã¹ã¯ç ´ããããããç ´ããããã³ã«å¼·ããªã
- ã¿ããªã§ç ´ãã
- Perl ã§å¦ã¶ Win32/FreeBSD/Linux/x86_64 ã¢ã»ã³ãã©å ¥é (takesakoãã)
- ããllevalç ´ããããå ±åï½
- MS-DOS 16bit int 21h
- .comãã¡ã¤ã«ãã§ãã
- ãããã³ã ããã«æ代ï½
- ä»ï¼32bit
- Win32APIã§HelloWorld
- 97byteã®exeãã¡ã¤ã«
- Perlã§ããã Win32::API
- ç°¡åã«Win32APIãå©ãã
- DynaLoaderã§ç´æ¥ãã¤ããªãæµããã
- Linuxï¼int 80h
- JIT compiler
- 64bit
- CPU ID(processor name)ãã¨ã£ããã§ãã
- Inline::x86
- ç°¡åã«ã¢ã»ã³ãã©ãæ¸ãã
- 第ä¸é¨ Perl Internals
- ãªã¬ãªã¬PerlVM (gfxãã)
- Acme::Perl::VM
- Bã¢ã¸ã¥ã¼ã«ã§Perlã®æ§ææ¨ã«ã¢ã¯ã»ã¹ã§ãã
- VMä½ããªããï¼ã¨ãããã¨ã§ä½ã£ã
- ãã¢
- æ®éã«å®è¡ãããã®ã§æ°ä»ããªã
- DEBUGã¢ã¼ãã«ããã¨ç¢ºèªã§ãã
- VMã®ä»çµã¿
- ã¹ã¿ãã¯ã§æç¶ãã®å¼æ°ãæ»ãå¤ã管çãã
- opcodeãã¹ã¿ãã¯æä½ï¼ã¤, ppcodeãï¼ãããã¯ãã®ãããªã¤ã¡ã¼ã¸
- push, popã§æä½
- Perlå®è£ ã§ã¯ãã£ã¨è²ã ãã£ã¦ããã©çç¥
- å¯å¤é·å¼æ°ã«å¯¾ãã¦ã¯
- ãã¼ã«ã¼ï¼ããåãããªãã£ã
- Opcodeï¼æç¶ãã¨ãã¼ã¿ã®æ§é ä½
- ãã¼ã¿ã¯ä»ã®Opcodeã¸ã®ãã¤ã³ã¿ã ã£ããããã
- æãæã¤LinkedList
- ãããæ§ææ¨ã辿ããã¨ã§å½ä»¤ãå®è¡ãã¦ãã
- Opcodeãå®è¡ãããæ§å
- ããåãããªãã£ã
- B::Consiceã§æ§ææ¨ãåºåããããã§ãã
- ã¾ã¨ã
- 説æãã¦ããªããã¨ï¼SVãã¡ããªãã¹ã¯ã©ããããããªã©
- æé©åã§ããããªé¨åããããç¶ãã¯Webã§ï¼
- CPUã®æ°æã¡ã¯å¤§äºã ãã©ãVMã®æ°æã¡ãèããã (Yappoãã)
- åå¿è åãã»ãã·ã§ã³(ï¼)ã§ã
- use B
- B::Consice, B::Terse, B::Deparseãªã©ä½¿ãã
- Devel::Peek
- å¤æ°ã解æãããã§ãã
- ããã¾ã§ã¯ä¸è¬æé¤ã§ããã
- æ¬é¡ï¼Devel::RunOpsAnalize
- å®è¡ããªããOpcodeã®ã¹ãããå®è¡ãè¦ããã¨ãã§ãã
- Iteratorã®å¦ççãè¦ãã
- constãªå¤ã¯æ¢ã«è¨ç®ãããç¶æ ã§è§£éããã
- function, methodã®å¼ã³åºããuse, requireãªã©ã®åä½ãèªãã
- ãã¥ã¼ãã³ã°ã¯å¤§äºãtime()ããã®ã¾ã¾ä½¿ããªã
- Devel::BindPP ãã¤ãã£ã¦ç°¡åã« C++ 㧠Perl ã®æ¡å¼µã¢ã¸ã¥ã¼ã«ãã¤ãããï¼ (tokuhiromãã)
- XSã¯Cã©ã¤ãã©ãªä½¿ãã®ã«ç°¡åã«ä½¿ããã
- ã§ãé£ãããç°¡åã£ã¦è¨ã£ããã©ãããåã
- æ¸ãæ¹è¦ããã®ããã©ãããã¯ããå¤ãã¦å¤§å¤
- C++ã§XSãæ¸ããããã«Devel::BindPPä½ã£ã
- ï¼ãã¡ã¤ã«ã®ãããã§ã
- doxygenã§ä½ã£ãããã¥ã¡ã³ãããã¾ã
- ããè¦ãªããæ¸ãã°æ¸ããããã¨æãã
- 第åé¨ Lightning Talks
- Devel::NYTProf (clkaoãã)
- å°æ¹¾ãã
- Perlãé ãã¨ãã¯æé©åãã§ãã¾ãã¯profileãã¦é ãã¨ãããæ¢ããªãã¨
- Devel::DProfã¨ããã®ããã
- ãµãã«ã¼ãã³åä½ã§profilingã§ãã
- Devel::NYTProf
- è¡åä½ããããã¯åä½ã§profilingã§ããï¼
- PHPã§calltreeã®å¯è¦åã®è©±
- kcachegrindã使ãã¨ã§ããï¼
- google codeã«ããã¾ã
- ãã«ã¦ã§ã¢ã®æ¤åº (sonodamãã)
- ãã«ã¦ã§ã¢å¤§å¥½ãã§ã
- ç®æ¨ï¼ææãããªãã¨ã³ãªãã«ã¦ã§ã¢
- ãã¦ã³ãã¼ãã¼ï¼ä¸è¬çãªsetup.exeã¨ã»ã¼åã
- æ¤åºæè¡ãããã
- ãã¿ã¼ã³ãããã³ã°ããã§ãã¯ãµã ãåç解æ
- ã«ã¼ã«ãã¼ã¹ï¼å±éºãªåä½ãææãã¦ãããã¯
- WinAPIã®å©ç¨ãã¢ãã¿ãªã³ã°ãããªã©
- 追å ãããã¢ã¸ã¥ã¼ã«ã¯æ¤ç¥ã§ãã
- ãæ¤åºãã¯ã§ãããããé²å¾¡ãã¯ã©ãã¾ã§ï¼
- ãæä¸ãç¶æ ããã¤ã¹ã¢ã¤ãã£ã¢æ±ãã
- ãã©ãã³ã®ãã©ãã¯ãªè©± (isidaiãã)
- ãã©ããã£ã»ãã³ãã£ã¨ã¯
- 漫ç»ãããã©ãåããç©èª
- æ®æ®µã¯ã ãããªãä¸»äººå ¬ãPCã®åã§ã¯æå¼·
- ãããã³ã°ã·ã¼ã³ãçé¢ç®ã«ä½ããã¦ãã
- å®å¨ããèå¼±å¶ãç»é¢ã«åºã¦ãã
- telnet -l "-froot"ãªã©
- camera_hijack.pl
- ããåãããªãã£ã
- ãããã³ã°ã¯ç¯ç½ªã§ãï¼çä¼¼ããªãã§ãï¼ï¼
- 5å㧠danbot server ãç«ã¡ä¸ããæ¹æ³ (Yappoãã)
- Xenã§å®å ¨ãµã¼ãã¼ãç«ã¡ä¸ãã
- 3åãããã§ã§ãã¾ã
- koanï¼
- Hatetterã®ç´¹ä»
- ã¯ã¦ãªãæ°ã«å ¥ãã¢ã³ããã®æ å ±ãtwitterã©ã¤ã¯ã«convert
- ä¸èº«
- HTTP::Engine
- ã·ã³ãã«ãªã®ã§WebAppãªã
- Q4M
- feedãconvertãã
- memcached
- ã¹ãã¬ã¼ã¸ã¨ãã¦
- Data::Model::...::Q4Mä½ã£ã
- ããããinstallçµãã£ãããª
- ã§ãã¦ããã¢ã¸ã¥ã¼ã«ã¯local::lib使ãã¨ããã
- Windowsã¦ã¼ã¶ã®ããã®åãã¦ã®Perlããã°ã©ãã³ã° (HASEGAWA Yosukeãã)
- ãã®ããããã¡ã³ã·ã¼ãªå¯æãããã¹ã©ã¤ã
- ãä½ã¬ãã«ãªè©±ã§ãã
- 第ï¼é¨ã第ï¼é¨ããã£ã£ã¨ããéã«çµäº
- ã·ã°ãã«ãã³ãã©ã使ã£ã¦ãã¤ããªãå®è¡ãããï¼æ©ãã¦ã¤ãã¦ãããªãã£ã
- ã·ã°ãã«ã使ã£ã¦ããã»ã¹éä¿¡
- ãããã·ã°ãã«éä¿¡
- Win32::API::Callback
- ä»ã§åºæ¥ãªã使ãéããã
- ã¾ã¨ã
ãä»æ¥ã®å 容ã¯ãããããªãã¦æ®éã§ãã
- ææ³
- ãã¤ããªãæ·±ããæ£ç´è¨ã£ã¦å ¨ç¶ããããªãã
- ããã ããã¤ããªã®ãã¨ãæ·±ãç¥ã£ã¦ãããããã¡ãããã®ããã¨ã
- ã©ãã§ã©ããããã¨ãã¦ãã¦ãããã£ãç¥èãã¤ããã®ãç¥ãããã¨ãã
- çµäºå¾ã«TAKESAKOããã¨ãæ¨æ¶ã§ããï¼ãã£ãï¼ï¼