
ã¿ãªããããã«ã¡ã¯ïŒ
æ¬æ¥ããªããŒã¹ãšã³ãžãã¢ãªã³ã°ïŒREïŒé¢é£è³æã®ãªã¹ããå
±æããããšæããŸãã ç§ãã¡ã®ç ç©¶éšéã¯äž»ã«åçå¯èœãšãã«ã®ãŒã®ã¿ã¹ã¯ã«åŸäºããŠããããããã®ãªã¹ãã¯éåžžã«åºç¯å²ã§ãã ç§ãã¡ã®æèŠã§ã¯ããããã¯ã«é¢ããè³æã®éžæã¯éå§ã«é©ããŠããŸãããé·ãéé¢é£ããŠããå¯èœæ§ããããŸãã
5幎éããã®ãªã³ã¯ããªãœãŒã¹ãæžç±ã®ãªã¹ãããç ç©¶éšéã«å
¥åŠããããããŸã ç¥èã¬ãã«ãééããããæ
å ±ã»ãã¥ãªãã£ã®åéã§ã®æ
ãå§ãããããªã人ã«éä¿¡ããŠããŸãã åœç¶ããã®ãªã¹ãã¯ãã»ãšãã©ã®çŽ æ/éžæãšåæ§ã«ããã°ããããŠããæŽæ°ããã³æŽæ°ããå¿
èŠããããŸãã
楜ããäºå®ïŒäžéšã®äŒæ¥ãè³æã®ãªã¹ããç¬èªã«éä¿¡ããæ¹æ³ã瀺ããŸããããéåžžã«å€ããšãã£ã·ã§ã³ã®ã¿ã§ãã ãããŠããã®åºçåŸã圌ãã¯æçµçã«æç¢ºãªè¯å¿ã§ãã®æŽæ°ãããããŒãžã§ã³ã䜿çšã§ããããã«ãªããŸã;ïŒ
ããã§ã¯ãçŽ æã®ãªã¹ãã«ç§»ããŸãããïŒ
- ããŒã
aã é
bã èåŒ±æ§æ€çŽ¢ïŒãã¡ãžã³ã°ïŒ
cã è匱æ§ã®æªçš
dã ãã«ãŠã§ã¢åæ - ããŒã«
aã IDA Pro
bã Radare2
cã WinDBGïŒOllydbg / Immunity Debugger / x64dbgïŒ
dã Gdb
eã Dbi
fã SMT
gã èªååã®ããã®Python
hã BAFïŒãã€ããªåæãã¬ãŒã ã¯ãŒã¯ïŒ - 建ç¯
aã x86-x86_64
bã è
- OS
aã çª
bã Linux
cã Mac OSïŒOSXïŒ/ iOS
dã Android - ãã¡ã€ã«åœ¢åŒ
aã PE
bã ELF
cã ããã㪠- ããã°ã©ãã³ã°
aã C / C ++
bã ã¢ã»ã³ãã©ãŒ - ç·Žç¿ãã
aã æŠäºã²ãŒã
1.ãããã¯ã¹
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãREã¢ããªã±ãŒã·ã§ã³ã®äž»ãªåéã«ã€ããŠæ€èšããŸãã ãªããŒã¹éçºããã»ã¹èªäœããçŽæ¥å§ããè匱æ§ã®æ€çŽ¢ãšéçºã®æªçšã«é²ã¿ããããŠãã¡ããããã«ãŠã§ã¢ã®åæã«åãæãããŸãããã
1.ãªããŒã¹ãšã³ãžãã¢ãªã³ã°
1.bè匱æ§ã¹ãã£ã³
1.cçºèŠãããè匱æ§ã®æªçšã®äŸ
1.dãã«ãŠã§ã¢åæ
2.å¿
èŠãªããŒã«
以äžã¯ãREã§äœ¿çšãããäžè¬çãªããŒã«ã§ãã
2.a IDA Pro
2.b Radare2
- ã radaree2ãã㯠ã-Radare2ãã¬ãŒã ã¯ãŒã¯ã®ãªããŒã¹äœ¿çšã«é¢ããã¡ã€ã³ããã¯ã
- ã Radare2ããŒãã·ãŒãã-ã¡ã€ã³ã³ãã³ãçšã®ãããŒãã·ãŒããã
- ã Rarere Today-ã¬ãŒããŒe2ã®ããã° ãã¯ãã¬ãŒã ã¯ãŒã¯ã®ããã°ã§ãã ãã¥ãŒã¹ã ãã§ãªããå®çšçãªäŸããããŸãã
2.c WinDBGïŒOllydbg / Immunity Debugger / x64dbgïŒ
ãããã¬ã®åçãšããã䜿çšããæ©èœã®ç¥èããªããã°ãããªãããããè¡ãããšã¯ã§ããŸããã 以äžã§ã¯ãWindowsçšã®ãããã¬ãŒã«ã€ããŠæ€èšããŸããæ¬¡ã®æ®µèœã§ã¯ãæåãªGDBã«æ³šç®ããŸãã ããã§ã¯ãè¡ããŸãããïŒ
2.d gdb
2.e DBI
仿¥ãããã°ã©ã å¯èœãªãããã°ã¯ããããããªããŒãµã®æŠåšãšããŠäžå¯æ¬ ãªã¢ãããŒãã§ãã ãŸããDBIã¯ããŒã«ã®1ã€ã§ãã 詳现ïŒ
2.f SMT
SMTãœã«ããŒãšã¯äœã§ããïŒ èŠããã«ãSMTãœã«ããŒã¯è«çåŒãè§£ãããšãã§ããããã°ã©ã ã§ãã
ãœãããŠã§ã¢ã»ãã¥ãªãã£ã®åéã§SMTã䜿çšããäž»ãªã¢ã€ãã¢ã¯ãããã°ã©ã ã³ãŒããŸãã¯ã¢ã«ãŽãªãºã ãè«çåŒã«å€æããSMTãœã«ããŒã䜿çšããŠãã®ã³ãŒãã®1ã€ãŸãã¯å¥ã®ããããã£ããã§ãã¯ããããšã§ãã
èšãæããã°ãSMTã¯ã»ãã³ãã£ãã¯ã³ãŒãåæã®ããã®æ°åŠçè£
眮ãæäŸããŸãã
SMTãœã«ããŒã¯ç§ãã¡ã®åéã§é·ãé䜿çšãããŠããŸããã 圌ãã¯ã次ã®ã¿ã¹ã¯ã«å¯ŸããŠååã«èšŒæãããŠããŸãã
- ãã°ã®æ€çŽ¢ïŒéçåæ/ãã¡ãžã³ã°ïŒ;
- é£èªåè§£é€;
- ããŒã æå·è§£èª;
- ã·ã³ããªãã¯ããã©ãŒãã³ã¹ïŒããšã³ãžã³ããšããŠïŒ;
- ãŸãããšã¯ã¹ããã€ãã®èªåçæïŒROPçæãªã©ïŒã®åéã§ãæåãåããŠããŸãã
ãã®éãSMTã¯è¬ã®å
茪ã倱ãããæ®éã®ã人ã
ã®ããã®å€ããå°ãªããäœæ¥ããŒã«ãç»å ŽããŸããã
以äžã¯ããããã¯ã«é£ã³èŸŒãã®ã«åœ¹ç«ã€ãœãŒã¹ã§ãã
2.gèªååã®ããã®Python
仿¥ãPythonèšèªã®åºç€ç¥èããªããã°ããã®ããã°ã©ãã³ã°èšèªã¯æ
å ±ã»ãã¥ãªãã£ã®åéã§ïŒã ãã§ãªãïŒããŸããŸãªã¿ã¹ã¯ãèªååããããã®æãäžè¬çãªããŒã«ãšèŠãªãããŠãããããéåžžã«å°é£ã«ãªããŸãã ããã«ãããŸããŸãªãŠãŒãã£ãªãã£ã§äœ¿çšãããŸãïŒããšãã°ãäžèšã®ãã¹ãŠã®ãŠãŒãã£ãªãã£ã䜿çšãããšããã®PLã䜿çšããŠæ©èœãè£å®ã§ããŸãïŒã
2.h BAFïŒãã€ããªåæãã¬ãŒã ã¯ãŒã¯ïŒ
ããå°ãé«åºŠãªæ¹æ³ãšããŠãåè¿°ã®ã¡ã«ããºã ãšåæããŒã«ã䜿çšããŠããè€éãªåé¡ã解決ãããã¬ãŒã ã¯ãŒã¯å
šäœã«æ³šæããããšããå§ãããŸãã ã ããããã«ããïŒ
ããã€ãã®è峿·±ããã¬ãŒã ã¯ãŒã¯/ããŒã«ïŒ
3.ã¢ãŒããã¯ãã£
ããã€ãã®äžè¬çãªã¢ãŒããã¯ãã£ã®ã¿ãæ€èšããŸãã èšäºã®æåŸã®è¿œå è³æã®ã»ã¯ã·ã§ã³ã§ã¯ãä»ã®å€ãã®æ
å ±ïŒMIPSãPowerPCãªã©ïŒãèŠã€ããããšãã§ããŸãã
3.a x86-x86_64
3.b ARM
4. OS
äžè¬çãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®åäœåçã«é¢ããç¥èã
4.a Windows
- ã Windows Internals ãã¯ãWindowsã®ä»çµã¿ãçè§£ããããã®åºæ¬çãªæ¬ã§ãã
以äžã®ç¹ã¯ãäž»ã«ãã®OSã®è匱æ§ã®æªçšã«é¢é£ããŠããŸãããWindowsã®å
éšãããããçè§£ããããšãã§ããŸãã
4.b Linux
- ã Linux insides ãã¯ãWindows Internalsã®é¡äŒŒç©ã§ãããLinuxãªã©ã®OSå°çšã§ãã
Windowsãšåæ§ã«ã次ã®ãããã¯ã¯ãšã¯ã¹ããã€ãéçºã«é¢é£ããŠããŸãã
4.c Mac OSïŒOSXïŒ/ iOS
4.d Android
- ã Android Hacker's Handbook ãã¯ãããããAndroid OSã»ãã¥ãªãã£ã«é¢ããæã人æ°ã®ããæ¬ã§ãã
- ã Android Internals :: Power User's View ã-ãã®OSã®å
éšã¡ã«ããºã ã«ã€ããŠèª¬æããŠããæ¬ã èè
ãèªåã®ãµã€ãã«æžã蟌ã¿ã以åã®ããŒãžã§ã³ãããŠã³ããŒãããæ©äŒãæäŸããŠãããããæè¿ã®ãªãŒã¯ã«ããããã®è³æã¯ãããªãã¯ãã¡ã€ã³ã«ç»å ŽããŸããã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãäžè¬çãªå®è¡å¯èœãã¡ã€ã«åœ¢åŒã®è©³çްã説æãããªã³ã¯ãæäŸããŸãã
5.a PE
5.b ELF
5.cããã-O
æåãªç ç©¶è
corkamiã¯ãäžèšãå«ãããŸããŸãªãã¡ã€ã«åœ¢åŒã®å³ã䜿çšããŠãéåžžã«æçšã§è峿·±ãããã¹ã¿ãŒããäœæããŸãã ããŒãã·ãŒããšããŠäœ¿çšããããšããå§ãããŸãã ãŸãã Kaitai SctructãŠãŒãã£ãªãã£ã¯åæã«åœ¹ç«ã¡ãŸãã
6.ããã°ã©ãã³ã°
ç§ãã¡ã®ç¥äººã®äžäººã¯ãè¯ãéã¯80ïŒ
è¯ãããã°ã©ããŒã ãšèšã£ãŠããŸããã ããã°ã©ã ããèœåãšãäœãè¡ãããŠããã®ãããããŠãªãä»ã®äººã®ããã°ã©ã ã調æ»ããããã»ã¹ãåçŽåããã®ããçè§£ããèœåã ãããã£ãŠãéã®ããã°ã©ãã³ã°ãªãã§ã¯ãã©ãã«ããããŸããã ãããŠãã¡ãããããªããããããæ¢ã«çè§£ããŠããããã«ãæ¥åžžçãªã¿ã¹ã¯ã®èªååã¯éåžžã«æçšãªããšã§ã;ïŒ
6.a C / C ++
6.b ASM
7.ç·Žç¿
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãç·Žç¿ã§ããä»®æ³ãã·ã³ããã³ãªã³ã©ã€ã³ãªãœãŒã¹ãžã®ãªã³ã¯ãæäŸããŸãã
7.æŠäºã²ãŒã
- SmashTheStack Wargaming Network-ããã€ãã®ãŠã©ãŒã²ãŒã ããããã®ãããã¯ãŒã¯ã¯ããã©ã³ãã£ã¢ã«ãã£ãŠãµããŒããããŠããããªã³ã©ã€ã³ã§å©çšã§ããŸãã å§ããããšããå§ãããŸãã
- BinTut-ããŒã«ã«ãŠã©ãŒã²ãŒã ã
- ãªããŒã·ã³ã°ã¯ãŒã¯ã·ã§ãã -2016幎ã®å¹Žéã³ã³ãã¹ããThe Flare On Challengeãã®ã¿ã¹ã¯ã解決ãããã¹ã¿ãŒã¯ã©ã¹ã
- ãšã¯ã¹ããã€ããã£ã¬ã³ãž -è匱ãªARMãã€ããªãã¡ã€ã«ã®éžæã
- ARM Reverse Engineering Exercises-å
ã®ãªããžããªã¯ãæ¶å€±ãããŸãããããã©ãŒã¯ã®1ã€ãgithubã®æ¡åŒµéšåã§èŠã€ãããŸããã
- CTFæé -ããã§ã¯ãå°æ¥ã®CTFã€ãã³ãã®ã¹ã±ãžã¥ãŒã«ã確èªããéå»ã®æ±ºå®ãèªãããšãã§ããŸãã
æåŸã«ãäžèšã®ãããã¯ã«é¢ããå€ãã®è³æãšã®ãªã³ã¯ãããã€ããããŸãã