ãã®ã¬ãã¥ãŒã¯ãæã匷åã§ä¿¡é Œæ§ã®é«ãWin32ã¢ããªã±ãŒã·ã§ã³ãããã¯ã¿ãŒã®1ã€ã§ãã
Themida ïŒä»¥åã®X-ProtectorïŒã«é¢ãããã®ã§ãã æè¿ãã¢ããªã±ãŒã·ã§ã³ã®1ã€ã«Themidaãå¿
èŠã«ãªã£ãã®ã§ãçãã¬ãã¥ãŒãæžãããšã«ããŸããã åæã«ã圌ã¯èè
ã«ç§ã«èå³ã®ããããã€ãã®è³ªåã«çããããã«é Œã¿ãŸããã çããããªãã«ãšã£ãŠèå³æ·±ããã®ã«ãªããšæããŸãã èšäºã®æåŸã§ããã®çãã€ã³ã¿ãã¥ãŒã®çµæãæ¢ããŠãã ããã
ãã®èšäºããã®ã¬ãã¥ãŒã®æ¥ä»æç¹ã§ææ°ã®ThemidaããŒãžã§ã³2.1.3.30ã«åºã¥ããŠæžãããŠãããšããäºå®ã«æ³šç®ããããšæããŸãã ãã¯ãã«é¢ããããã€ãã®æ°æ©èœããããŸãã 2幎åã®å
¬åŒãµã€ãããã®ãã¢ã§ã¯ã圌ãã¯å¥ªãããŠããŸãã
åºæ¬æ
å ±
å®éãThemidaãã¯ãããžãŒã«åºã¥ãã4ã€ã®è£œåããããŸãã
Professionalã®åºæ¬ããŒãžã§ã³ã®éãã¯ã.NETã¢ããªã±ãŒã·ã§ã³ãæäœããèœåããªãããšã ãã§ãã ãããã説æãããã¹ãŠã®ããšã¯ãThemidaãšWinLicenseã®äž¡æ¹ã§æ©èœããŸãã
- Themidaã¯ãããã¯ã¿ãŒèªäœã§ãããããããã®èšäºã®äž»èŠãªäž»é¡ã§ãã
- WinLicenseã¯Themidaã§ãããããŸããŸãªçš®é¡ã®ã·ãªã¢ã«çªå·ã«åºã¥ããŠã¢ããªã±ãŒã·ã§ã³ãä¿è·ããæ©èœãè¿œå ãããŠããŸãã WinLicense SDKèªäœã¯ããããã®ã·ãªã¢ã«çªå·ãçæãããã§ãã¯ããå®å
šã«ä¿åããããŒããŠã§ã¢ã«ãã€ã³ãããæå®ãããæ¥ä»ã®æå¹æéãŸãã¯æå®ãããèµ·ååæ°ã§ãã©ã€ã¢ã«ã·ãªã¢ã«çªå·ãäœæãããã¹ã¯ãŒãã§ä¿è·ãããã¢ããªã±ãŒã·ã§ã³ãäœæããŸãã
- X-Bundlerã¯Themidaããã³WinLicenseã®ãã©ã°ã€ã³ã§ãããå€éšãã¡ã€ã«ãå®å
šãªã¢ããªã±ãŒã·ã§ã³ã«åã蟌ãããšãã§ããŸãã ããšãã°ããã«ããã¡ã€ã«ãŸãã¯* .mp3ãã¡ã€ã«ãåã蟌ãããšãã§ããŸãã ããã«ããã£ã¹ã¯äžã«ããå€éšãã¡ã€ã«ãšããŠã¢ããªã±ãŒã·ã§ã³ãããã®ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ã§ããŸãã ã¢ããªã±ãŒã·ã§ã³ã¯ããã¡ã€ã«ãThemidaã«ãã£ãŠä¿è·ãããŠããã* .exeå
ã«ããããšããç¥ããŸããã .NETã¢ããªã±ãŒã·ã§ã³ã§äœ¿çšãããã¢ã»ã³ããªãã¡ã€ã³* .exeãã¡ã€ã«å
ã«åã蟌ãããšãã§ããŸãã
- WinLicense DLL Controlã¯WinLicenseã®ãã©ã°ã€ã³ã§ãããã·ãªã¢ã«çªå·ã«åºã¥ããŠä¿è·ãªãã·ã§ã³ãå®è£
ã§ããŸãã
- CodeVirtualizerã¯å°ããªç¬ç«ããThemidaã§ãããã¢ããªã±ãŒã·ã§ã³å
ã®æå®ãããé¢æ°ãThemidaä»®æ³ãã·ã³ã®ã³ãŒãã«æä»çã«å€æã§ããŸãã ãã®ä»ã®ä¿è·ã¯æäŸããŸããïŒãããã°ãæå·åãæŽåæ§ãã§ãã¯ãªã©ããã®ä¿è·ã¯å«ãŸããŠããŸããïŒã ãã©ã€ããŒãå«ãx32ããã³x64ã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ãä¿è·ã§ããŸãã
Themida Auto-Protectæ©èœ
ãŸãããéå±ãªæ
床ãã«ã€ããŠã
- ã¢ã³ããããã¬ãŒã æšæºãããã¬ãŒãšã«ãŒãã«ã¬ãã«ãããã¬ãŒã®äž¡æ¹ã®æ€åºããµããŒããããŠããŸãã ã¢ã°ã¬ãã·ãæ€çŽ¢ã¢ãŒãããããŸããããã®å Žåãã¢ããªã±ãŒã·ã§ã³ã¯ãã¢ã¯ãã£ããªåãã·ã¢èªãã«ãŒããããããŸãã¯WineãæèŒããã³ã³ãã¥ãŒã¿ãŒã§ã®å®è¡ãæåŠããå ŽåããããŸãã
- ã¢ã³ããã³ããŒã Themidaã¯ã¢ããªã±ãŒã·ã§ã³ãåžžã«ä¿è·ããŸãã ãã®åŸã®èµ·åã§ã¢ããªã±ãŒã·ã§ã³ã®ã¡ã¢ãªããã£ã¹ã¯ã«ãã³ãããŠããä¿è·ã¯è§£é€ãããŸããïŒèª°ãçãã§ããã...ãã®ãããªåºæ¬çãªæ¹æ³ã¯é·ãéæ©èœããŠããŸããã§ããïŒ
- ãšã³ããªãã€ã³ãã®é£èªåïŒOEPïŒã Themidaã¯ãã©ã€ãã©ãªãŸãã¯ã¢ããªã±ãŒã·ã§ã³ãžã®ãšã³ããªãã€ã³ããé衚瀺ã«ããŸãã
- ãªãœãŒã¹ã®æå·åã ã¢ããªã±ãŒã·ã§ã³ã«ãªãœãŒã¹ïŒã¢ã€ã³ã³ããã¡ã€ã«ãªã©ïŒãå«ãŸããŠããå Žåããããã¯ã¢ã¯ã»ã¹æã«ã®ã¿æå·åããã³åŸ©å·åãããŸãã
- VMWare / VirtualPCã®äºææ§ã ä¿è·ãããã¢ããªã±ãŒã·ã§ã³ããã€ããŒãã€ã¶ãŒã®äžã§å®è¡ã§ããããã«ããã®ã¢ãŒããã¢ã¯ãã£ãåã§ããŸãã
- Windows APIãžã®åŒã³åºããã©ããããŸãã Themidaã¯ãã¢ããªã±ãŒã·ã§ã³ãåŒã³åºãWindows APIé¢æ°ã«é¢ããæ
å ±ãé ããŸãã ã¯ã©ãã«ãŒã¯ãå®è¡ã«å¿
èŠãªã©ã€ãã©ãªã«é¢ããæ
å ±ãå©çšã§ããŸããã
- å€æŽããã®ã¢ããªã±ãŒã·ã§ã³ã®ä¿è·ã Themidaã¯ãèµ·åæã«ã¢ããªã±ãŒã·ã§ã³ã®æŽåæ§ããã§ãã¯ããã¢ããªã±ãŒã·ã§ã³ã®å€æŽãããã³ããŒãèµ·åããªãããã«ããŸãã ä¿è·åŸã®ã¢ããªã±ãŒã·ã§ã³ã«èªç±ã«çœ²åã§ããã¢ãŒããã¢ã¯ãã£ãã«ããããšãã§ããŸãã
- å®è¡äžã®å€æŽããã¢ããªã±ãŒã·ã§ã³ã¡ã¢ãªãä¿è·ããŸã ïŒã²ãŒã ãªã©ãéçºããŠããå Žåã«äŸ¿å©ã§ãïŒã
- ã³ãŒãçªç¶å€ç°æè¡ã ã¢ããªã±ãŒã·ã§ã³ã«é¢é£ä»ããããŠãããã¹ãŠã®Themidaã«ãŒãã«ã³ãŒããå€æŽãããå¡ãã€ã¶ãããŸãã ãã®ã³ãŒããä»®æ³åææ³ã䜿çšããŠåçæããããã³ã«ïŒä»¥äžãåç
§ïŒã
- ãã¡ã€ã«ããã³ã¬ãžã¹ããªã®ç£èŠã«å¯Ÿããä¿è·ã Themidaã¯ãå€éšããã°ã©ã ãä¿è·ãããã¢ããªã±ãŒã·ã§ã³ã®ãã¡ã€ã«ãŸãã¯ã¬ãžã¹ããªãžã®ã¢ã¯ã»ã¹ã远跡ããããšãèš±å¯ããŸããã
- å§çž® ä¿è·ãé©çšãããšããã£ã¹ã¯äžã®å®è¡å¯èœãã¡ã€ã«ã®ãµã€ãºãããªã倧ãããªããŸãã ãã®ãµã€ãºãå°ããããããã«ãThemidaã¯ã¢ããªã±ãŒã·ã§ã³èªäœïŒã»ãã¥ãªãã£ã³ãŒããçµã¿èŸŒãŸããŠããïŒãšãã®ãªãœãŒã¹ã®äž¡æ¹ã®å§çž®ããµããŒãããŠããŸãã
- Themidaã¯ãDelphi / C ++ Builderã®ãã©ãŒã ãç¹å¥ãªæ¹æ³ããä¿è·ã§ããŸãã ãã©ãŒã ã®å
容ïŒå®éã«ã¯ã* .dfmãã¡ã€ã«ïŒã¯ã* .exeãããã¢ããªã±ãŒã·ã§ã³ã®å®è¡äžã«ãæœåºã§ããŸããã
説æããæ©èœã®ã»ãšãã©ãã¹ãŠããå¿
èŠã«å¿ããŠãªã³/ãªãã«ã§ããŸãã
CodeReplaceãã¯ãããžãŒ
CodeReplaceãã¯ãããžãŒã¯ãã¢ããªã±ãŒã·ã§ã³ã®äžéšãæœåºãããã®å Žæã«ãžã£ã³ã¯ã³ãŒããæ¿å
¥ããå
ã®ã³ãŒããšã»ãã¥ãªãã£ã³ãŒããæ··åããŠãã¢ããªã±ãŒã·ã§ã³ã®å¥ã®å Žæã«ä¿åããŸãã CodeReplaceã§ä¿è·ãããã³ãŒããå®è¡ãããšãäœåºŠããã§ãã¯ããåŸãæœåºãããŠåŸ©å·åãããŸãã å®è¡åŸãåã³ã¬ããŒãžã«çœ®ãæããããŸãã Themidaèªäœãã¢ããªã±ãŒã·ã§ã³ãåæãããã®ãããªä¿è·ã«é©ããŠãããšæãããæ©èœãéžæã§ããŸãã ãããããã¯ãã®å©ããåããŠèªåã§ããæ¹ãè¯ãã§ãããïŒåŸã§èª¬æããŸãïŒã
ä»®æ³ãã·ã³
Themida Virtual Machineã¯ãã¢ããªã±ãŒã·ã§ã³ãä¿è·ããæã匷åãªæ¹æ³ã®1ã€ã§ãã ãã®æ¬è³ªã¯ãã³ãŒãã®äžéšãçæãããã¢ã»ã³ãã©ã³ãŒãã§çœ®ãæããããŸãããIntelããã»ããµã«ãã€ãã£ãã§ã¯ãªããç¬èªã®åœä»€ã·ã¹ãã ãšå
éšæ§é ãæã€æœè±¡ä»®æ³ããã»ããµã®ã³ãŒãã§ãã Themidaã¯æ¯åããã®ã¢ãŒããã¯ãã£ã®èšç»ãã©ã³ãã ã«çæããŸãã ãããã£ãŠãã»ãã¥ãªãã£ã³ãŒããç解ããããšãé£ãããªããŸãã
Themidaã¯ãããã€ãã®ã¿ã€ãã®ä»®æ³ããã»ããµããµããŒãããŠããŸãã
- CISCã åºæ¬çãªä¿è·ãä¿è·ãããã³ãŒãã¯æ¯èŒçé«éã§ãã
- CISC-2ã æ¡åŒµä¿è·ãã³ãŒãã¯CISCã®å Žåãããå€ãã®ã¹ããŒã¹ãå æããŸãã å°ãé
ãã
- RISC-64ã åä»®æ³åœä»€ã¯64ããããå¿
èŠãšããä¿è·ã¯CISCãã匷åã§ãããä¿è·ãããã³ãŒãã®å®è¡ã¯é
ããªããŸãã
- RISC-128ã é«åºŠãªã¹ãŒããŒã¹ããŒããã³ã¹ãŒããŒãããã¯ãRISC-64
CISCããã»ããµã¯ãåãçš®é¡ã®è€æ°ã®ä»®æ³ããã»ããµãå®å
šãªã¢ããªã±ãŒã·ã§ã³ã«åæã«åã蟌ãããšãã§ããŸãããåœä»€ã®ã·ã¹ãã ã¯ç°ãªããŸãã ããã«ããã»ãã¥ãªãã£ãåäžããŸãããã¢ããªã±ãŒã·ã§ã³ã®å®è¡å¯èœã³ãŒãã®ãµã€ãºãå¢å ããŸãã
ãã€ãºçæã«ãããæçšãªäœæ¥æ瀺ãæå³ã®ãªããã®ãšæ··ããŠãããã«ãŒã®äœæ¥ãããã«é£ããããããšãã§ããŸãã
CodeReplaceãšåæ§ã«ãThemidaã¯ãä»®æ³ãã·ã³ã®ã³ãŒãã«å€æããããšã«ãããããã°ã©ã å
ã®ã©ã®æ©èœãä¿è·ããããéžæã§ããŸãã ãã ããèªåã§è¡ãããšããå§ãããŸãïŒä»¥äžãåç
§ïŒã
ãã®ä»
- Themidaã䜿çšãããšãPEã¹ãã£ããŒããã¢ããªã±ãŒã·ã§ã³ãé ãããšãã§ããŸããPEã¹ãã£ããŒã¯ãã¢ããªã±ãŒã·ã§ã³ã®ä¿è·å¯Ÿè±¡ã決å®ããŸãã
- ã¢ããªã±ãŒã·ã§ã³ã€ã³ã¿ãŒãã§ã€ã¹ïŒãšã©ãŒãšã·ã¹ãã ã¡ãã»ãŒãžã®ãããŠã£ã³ããŠïŒã®ããŒã«ã©ã€ãºãšã¹ã¯ãªãŒã³ã»ãŒããŒã®æ¿å
¥ã®ãªãã·ã§ã³ããããŸãïŒããã§ããä¿è·ãããã¢ããªã±ãŒã·ã§ã³ã®èµ·åæéã¯ãä¿è·èšå®ã«å¿ããŠ500ã5000ããªç§å¢å ããŸãããã®å ŽåããŠãŒã¶ãŒãããžãŒç¶æ
ã«ä¿ã€å¿
èŠããããŸãïŒã
- Themidaã¯ã³ãã³ãã©ã€ã³ç®¡çããµããŒãããŠããããããã«ãã·ã¹ãã ã«çµ±åã§ããŸãã
ããŠãæ²ããããšã«ã€ããŠå°ãã äžèšã®ãã¹ãŠã䜿çšããŠããã¢ããªã±ãŒã·ã§ã³ãç Žæããå¯èœæ§ããããŸãã ããã«ãŒãããå°é£ã«ããã«ã¯ãThemidaãã¯ãã䜿çšããŸãã ä»ãããããã«ã€ããŠè©±ããŸãã
Themidaãã¯ãã
Themidaãã¯ãã¯ãã¢ããªã±ãŒã·ã§ã³ã«åã蟌ãŸãããã€ãã·ãŒã±ã³ã¹ã§ãããThemidaã¢ããªã±ãŒã·ã§ã³ãä¿è·ãããŸã§åäœã«åœ±é¿ãäžããŸããã ãã¬ããã«ã¯ç¹å¥ãªæå³ããããŸãã å®éã圌ãã¯ããªãã®ã³ãŒãã®å
éšæ§é ã®è€éãã«ã€ããŠThemidaã«éç¥ããããå¹æçã«ãããä¿è·ã§ããããã«ããŸãã
ãã¯ãã«ã¯ãé©çšãããœãŒã¹ã³ãŒãã®éã決å®ããéå§ããŒã«ãŒãšçµäºããŒã«ãŒããããŸãã SDKã«ã¯ãã¢ã»ã³ãã©ãCãDãDelphiãããã³VisualBasic / Pure Basicçšã®æ¢è£œã®ãã¯ãããããŸãã ããããååãšããŠãã¢ã»ã³ãã©ãŒãŸãã¯ã³ãŒããžã®ãã€ãæ¿å
¥ããµããŒãããèšèªã§ããã°ã2åã§ããçŽãããšãã§ããŸãã ããã§ã¯ãç§ã«æãè¿ãDelphiæ§æã䜿çšããŸãã
泚æïŒ ãã¯ãã¯ã.NETã¢ããªã±ãŒã·ã§ã³ãŸãã¯Pã³ãŒãã«ã³ã³ãã€ã«ãããVisual Basicã¢ããªã±ãŒã·ã§ã³ã§ã¯äœ¿çšã§ããŸããã
VM
VMãã¯ãã¯ãThemidaãä»®æ³åããã³ãŒãã®é åãå¶éããŸãïŒã€ã³ã¿ãŒãã§ã€ã¹ã§èšå®ãæå®ããä»®æ³ãã·ã³ã®æ瀺ã«å€æããŸãïŒã 次ã®ããã«äœ¿çšããŸãã
{$I VM_Start.inc}
//
{$I VM_End.inc}
ãã®ãã¯ãã®ã³ãŒãã»ã¯ã·ã§ã³ãã©ããããããšããå§ãããŸããã¢ã«ãŽãªãºã ã®ç§å¯ã¯ç¹ã«éèŠã§ãã ããšãã°ãã¢ã¯ãã£ããŒã·ã§ã³ããŒã®ç¢ºèªãããŒã¿ãã¡ã€ã«ã®åŸ©å·åãã»ãã¥ãªãã£ããŒã®ç¢ºèªãªã©ã
å¶éäºé
ïŒ
- ãããã¯å
ã«çŽæ¥ãäŸå€ïŒtryãraiseïŒã䌎ãäœæ¥ã¯ãããŸããã
- ä»ã®ãã¯ãã¯ãããã¯å
ã§äœ¿çšã§ããŸããã
VM_WithLevel
ãã¯ãã¯ãã¹ãŠVMãã¯ãã«äŒŒãŠããŸãããæå®ããéã ãä»®æ³åã®ã¬ãã«ãäžããããšã§è¿œå ã®ä¿è·ãæäŸããŸãã ãŸã䜿çšãããŸãã å¿
èŠãªä»®æ³åã¬ãã«ãæå®ããã«ã¯ãDelphiã§å¯Ÿå¿ãã* .incãã¡ã€ã«ãç·šéããå¿
èŠããããŸãïŒãã®äžã®ã³ã¡ã³ããåç
§ïŒã ä»®æ³åã¬ãã«ã®é«ã䟡å€ã¯ãã³ãŒãã®åŒ·åãªè¥å€§åã«ã€ãªãããŸãã ã¬ãã«0ã§ã¯ããã¯ãã¯VMãã¯ããšåãããã«åäœããŸãã
å¶éã¯VMãã¯ãã®å Žåãšåãã§ãã
CodeReplace
ãã®ãã¯ãã¯ãäžã§èª¬æããCodeReplaceãã¯ãããžãŒã«ãã£ãŠåŠçããã³ãŒããããŒã¯ããŸãã VMãã¯ããšåãæ¹æ³ã§äœ¿çšãããŸãã
å¶éã¯VMãã¯ãã®å Žåãšåãã§ãã
ãšã³ã³ãŒã
ãã¯ãã¯ãå®è¡åã«æä»çã«æå·åããã³åŸ©å·åããå¿
èŠãããã³ãŒãã®ãããã¯ãããŒã¯ãããããã¯ãåºããšãã«æå·åããŠæ»ããŸãã VMãã¯ããšåãããã«äœ¿çšãããŸãã ãã®ãã¯ãã¯VMããã³CodeReplaceãã¯ãããã匱ãä¿è·ãæäŸããŸããããã®äžã®ã³ãŒãã¯ã¯ããã«é«éã«åäœããŸãã
å¶éäºé
ïŒ
- DLLã§äœ¿çšã§ããŸãã
- ãããã¯å
ã§ã¯ãå€æ°ã宣èšããããããã·ãŒãžã£ãçµäºãããããããšã¯ã§ããŸããïŒreturn / exitïŒ
ã¯ãªã¢
ãã®ãã¯ãã¯ãæåã®åŒã³åºãåŸã«ããã»ã¹ããåé€ãããã³ãŒããããã¯ãããŒã¯ããŸãã ãã®ãã¯ãã¯ãããã°ã©ã ãèµ·åæã«äžåºŠã ãå®è¡ããæäœã«æšå¥šãããŸãã ããšãã°ãããŒã¿ã亀æããããã®ã»ãã·ã§ã³ããŒãèšç®ããããã©ã€ã»ã³ã¹ããŒã確èªãããããŸãã VMãã¯ããšåãæ¹æ³ã§äœ¿çšãããŸãã
å¶éäºé
ïŒ
- DLLã§äœ¿çšã§ããŸãã
ä¿è·ãããŠããªã
ä¿è·åŸã«ã¢ããªã±ãŒã·ã§ã³ããåé€ããããããã¯ãããŒã¯ããŸãã ããšãã°ãä¿è·ãããŠããªãå Žåãã¢ããªã±ãŒã·ã§ã³ã¬ããŒããäœæããããã«äœ¿çšã§ããŸãã 説æãããŠãããã¹ãŠã®ãã¯ããšåæ§ã«äœ¿çšãããŸãã å¶éã¯ãããŸããã
ãã§ãã¯ä¿è·
Themidaã®ãã¢çã§ã¯ããã®ãã¯ãã¯äœ¿çšã§ããŸããã ããã¯ãã¢ããªã±ãŒã·ã§ã³ã»ãã¥ãªãã£ã·ã¹ãã ã®æ£åœæ§ãæ€èšŒããããã«äœ¿çšãããŸãã ãã®äœ¿çšæ³ã¯ãThemida SDKããã®äŸã«ãã£ãŠæããã瀺ãããŠããŸãã
procedure TForm1.Button4ClickïŒSenderïŒTObjectïŒ;
var
StatusProtectionïŒæŽæ°ã
å§ãã
{$ CheckProtection_Prolog.inc}
asm
ããã·ã¥$ 33333333
ã¹ããŒã¿ã¹ä¿è·ãããã
çµãã;
{$ CheckProtection_Epilog.inc}
StatusProtection = 33333333ãã«ã®å Žå
MessageBoxïŒ0ããä¿è·OKãããã»ãã¥ãªãã£æ€èšŒãã¯ãããMB_OK + MB_ICONINFORMATIONïŒ
ä»ã«
MessageBoxïŒ0ããã¢ããªã±ãŒã·ã§ã³ä¿è·ã«éåããŠããŸãïŒããã泚æïŒããMB_OK + MB_ICONERRORïŒ;
çµãã;
ãã¹ãŠãä¿è·ãããŠããå Žåã«ãã¯ããè¿ãå¿
èŠã®ããïŒæŽæ°/ã«ãŒãã£ãã«ã¿ã€ãã®ïŒæ°å€ãå®çŸ©ããŸãã ãã®äŸã§ã¯ã0x33333333ã ä¿è·ãããŠããå Žåãã¢ã»ã³ãã©ã®ããã·ã¥ããã³ãããåœä»€ã¯ããã°ã©ã ããåé€ãããŸãã 代ããã«ãè€éãªæ€èšŒæé ãæ¿å
¥ãããŸããããã¯ãã»ãã¥ãªãã£éåãæ€åºããªãå Žåã«ã®ã¿ãæå®ããå€æ°ïŒãã®äŸã§ã¯StatusProtectionïŒã§æå®ããçªå·ãè¿ããŸãã ã»ãã¥ãªãã£éåãæ€åºãããå Žåãçªå·ã¯ã©ã³ãã ã«ãªããŸãã
ãã¡ãããå®éã«ã¯ã瀺ãããŠããããã«ããã®ãã¯ãã¯äœ¿çšã§ããŸããã æãç°¡åãªããšã¯ããããžã§ã¯ãã§äœ¿çšãããéèŠãªå®æ°ã䜿çšããããšã§ãããã®å®æ°ã®å€ã¯ã³ã³ããã¹ãã§ããŸãæ確ã§ã¯ãªããå€æ°ã§çœ®ãæããŸãã 次ã«ãã³ãŒãå
ã®ã©ããã§ãã®æ°ããå€æ°ã§ãã®ãã¯ãã䜿çšããŸãã ä¿è·ã解é€ããããšããã®å®æ°/å€æ°ã®å€ãæ£ãããªããªããæãäºæããªãå Žæã§ã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãã·ã¥ããå¯èœæ§ãé«ããªããŸãã
ãã¯ããããã¯å
ã«ã¯ãæå®ãããã¢ã»ã³ãã©ãŒåœä»€ä»¥å€ã¯äœããããŸããã
CheckCodeIntegrity
Themidaã®ãã¢çã§ã¯ããã®ãã¯ãã¯äœ¿çšã§ããŸããã ãã®ãã¯ãã¯CheckProtectionãšéåžžã«ãã䌌ãŠãããã»ãã¥ãªãã£ã·ã¹ãã ã®å¥ã®éšåã§ã®ã¿æ©èœããŸãã ãã®äœ¿çšæ¹æ³ã¯ãŸã£ããåãã§ãã
CheckVirtualPC
Themidaã®ãã¢çã§ã¯ããã®ãã¯ãã¯äœ¿çšã§ããŸããã ãã¯ãã¯åã®2ã€ãšäŒŒãŠããŸãããã»ãã¥ãªãã£ã·ã¹ãã ããã§ãã¯ããã®ã§ã¯ãªããVirtualPCãVMWareãªã©ã®ãã€ããŒãã€ã¶ãŒã®äžã§ä¿è·ãããã¢ããªã±ãŒã·ã§ã³ãèµ·åããããã®ãã®ã§ãã ãã®äœ¿çšæ¹æ³ã¯ãŸã£ããåãã§ãã ããã°ã©ã ã€ã³ã¿ãŒãã§ã€ã¹ã®å¯Ÿå¿ãããã§ãã¯ããŒã¯ãšçµã¿åãããå¿
èŠãããå Žåãé€ããŸãã 次ã«ãä¿è·ãããã¢ããªã±ãŒã·ã§ã³ã§ãThemidaãã€ããŒãã€ã¶ãŒã®äžã§èµ·åãæ€åºããããšèŠåã衚瀺ãããVirtualPCã®äžã§Themidaä¿è·éšåãåé€ãããã¢ããªã±ãŒã·ã§ã³ã®ããªã¢ã³ããå®è¡ããããšãããšããã¯ãã«ãã£ãŠæ¯æŽãããŸãã
.NETã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£æ©èœã
Themidaã¯.NETã¢ããªã±ãŒã·ã§ã³ãä¿è·ã§ãããšããäºå®ã«ããããããã次ã®ç¹ã«çæããå¿
èŠããããŸãã
- .NETä¿è·åŸãã¢ããªã±ãŒã·ã§ã³ïŒ* .exeïŒã¯.NETã¢ã»ã³ããªã§ã¯ãªããªããéåžžã®Win32ã¢ããªã±ãŒã·ã§ã³ã«ãªããŸãïŒãã ãããã®ãã¹ãŠã®æ©èœã¯ä¿æãããŠãããããPaint.NETã®* .exeãã¡ã€ã«ã§ãã¹ããããŠããŸãïŒã ã¢ããªã±ãŒã·ã§ã³ã.NETã¢ã»ã³ããªãšããŠããŠã³ããŒãããããšã¯ã§ããªããªããŸãã ãã¡ãããããã«ããILDASMãªã©ã®ãŠãŒãã£ãªãã£ãæ©èœããªããªããŸãã
- .NETã¢ããªã±ãŒã·ã§ã³å
ã®ãã¯ãã¯ãµããŒããããŠããŸããã
- * .exeãã¡ã€ã«ã®ãã¹ãŠã®ã³ã³ãã³ããšåæ§ã«ãã¢ããªã±ãŒã·ã§ã³å
ã®ILã³ãŒãã¯æå·åãããŠããŸãããå€æŽãããŠããŸããã Themidaãä¿è·ããåã«é£èªåããŒã«ã§åŠçã§ããŸãã
- * .dllãšããŠã®åã
ã®ã¢ã»ã³ããªã®ä¿è·ã¯ãŸã ãµããŒããããŠããŸããã ãã ããX-Bundlerã䜿çšãããšãã¢ã»ã³ããªãã¡ã€ã³* .exeãã¡ã€ã«ã«ç°¡åã«çµ±åã§ããŸãã
ã©ãã¡ãšã«ãšã®çãã€ã³ã¿ãã¥ãŒ
- X-Protectorã®éçºãäžæ¢ãããThemidaããªãªãŒã¹ãããçç±ã¯äœã§ããïŒ
- ããã€ãã®çç±ã X-Protectorã¯äºææ§ã®åé¡ã§æªåãé«ãã£ãã ãããã®æ¬ ç¹ã®ãªãæ°è£œåããªãªãŒã¹ãããã£ãã®ã§ãã ããã«ãéçºããŒã ã¯å€å°å€æŽãããŸããã
- Themida64ïŒ64ãããã¢ããªã±ãŒã·ã§ã³ã®ä¿è·ã®ãµããŒãïŒã®èšç»ã¯äœã§ããïŒ
- Themida for x64ã¯ä»åŸæ°ãæã§ãªãªãŒã¹ãããè¿ãå°æ¥ãããŒã¿ãã¹ã¿ãŒããããåãåããŸãã
- Themidaã«ã¹ã¿ã ãã«ãã®å©ç¹ã¯äœã§ããïŒ
- æ®å¿µãªãããçŸæç¹ã§ã¯ãã®ãããªãµãŒãã¹ã¯æäŸããŠããŸããããç¹å®ã®äºææ§èŠä»¶ãæã€ã客æ§åãã®ãªãã·ã§ã³ãããã€ããããŸãã
- ãã«ããã¡ã€ã«ã«èšèŒãããŠããWineãšReactOSãèŠãŠããŸããã Themidaã§ä¿è·ãããã¢ããªã±ãŒã·ã§ã³ã¯ãããã®ç°å¢ã§åäœããŸããïŒ
- ã¯ãããã¬ããã§ä¿è·ãããã¢ããªã±ãŒã·ã§ã³ã¯ããããã®ç°å¢ã§æ£åžžã«åäœããã¯ãã§ãã ãããã¯ãå€ãã®ã客æ§ã®èŠä»¶ã§ãã
- Themidaã¯ãªã³ã°0ããŒã¹ã®ä¿è·ã䜿çšããŠããŸããïŒ
- ãã°ããåã«ãThemidaã®æåã®ããŒãžã§ã³ã¯ãã®ãããªä¿è·ãæäŸããŠããŸããã ãããããã°ããããŠããããªã³ã°0ã®äœ¿çšãåé€ããŠãæ°ããããŒãžã§ã³ã®Windowsãšã®äºææ§ãé«ãã代ããã«ã³ãŒãä»®æ³åã«åºã¥ããä¿è·ãå®è£
ããŸããã
- Themidaã¯éåžžã«åŒ·åãªãã¬ããã§ãã ããããExeCryptorã§å®è£
ãããã¢ãããŒãã«ã€ããŠã¯ã©ãæããŸããïŒããã«ããã³ãŒãã¯ä»®æ³ãã·ã³ã®ã³ãŒãã«ã¯ãªãããåã«å€ç°ããŠè€éã«ãªããããã»ããµã«ãã€ãã£ãã®ãŸãŸã§ãïŒã
- ExeCryptorã«ã¯ãŸã ç¬èªã®ä»®æ³ãã·ã³ããã£ããšæããŸãã ãšãã¥ã¬ãŒãã§ãããªãã³ãŒãã¯ãšãã¥ã¬ãŒããããŸããã ã§ããªããã®-x86ããŒãžã§ã³ã§å€ç°ã ãããã«ãããããã¯ç§ãèããããšã§ããã確ãã«ç§ã¯ç¥ããªãã
- Themidaã®å°æ¥ã®èšç»ã¯äœã§ããïŒ
- äžè¬ã«ãä¿è·ãããã«åŒ·åããããã®æ·±å»ãªåèšèšãèããŠããŸãã ãããããŸã第äžã«ãx64ãµããŒãããªãªãŒã¹ããããã¬ããã®ãã¹ãŠã®åŸç¶ããŒãžã§ã³ã¯x32ããã³x64ã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ããµããŒãããŸãã