ãã®èšäºã®ç®çã¯ã.NETã¢ããªã±ãŒã·ã§ã³ã®ä¿è·ã®æ¹æ³ãšæ©èœãæ€èšããä¿è·ã€ã³ã¹ããŒã«ããã»ã¹ã®æ倧éã®èªååã«éç¹ã眮ãããšã§ãã ãããã£ãŠãããã«ã.NETã¢ããªã±ãŒã·ã§ã³ã®ä¿è·ã«é¢ä¿ãããšã³ãããŒãæ©èœã®ã¿ãæ€èšããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ããã»ã¹ãèªååãããšãã芳ç¹ããèŠããšãSentinel LDK APIé¢æ°ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒãã¬ãã«ã§ã»ãã¥ãªãã£ãå®è£ ããã®ãæè¯ã®éžæè¢ã§ãã ãã®å®è£ ã§ã¯ãéçºè ã¯ãããŸãã¯ãã®ã¯ã©ã¹ãŸãã¯ã¡ãœãããã©ã®ããã«ä¿è·ããããç¬èªã«æ±ºå®ãããããžã§ã¯ããåæ§ç¯ãããšãã«ãœãŒã¹ã³ãŒãã«å€æŽãå ããããå Žåãä¿è·ãå®è£ ããããã«ä»¥åã«è¡ããããã¹ãŠã®äœæ¥ã¯ãå€æŽãå¿ èŠãšããã«èªç¶ãªæ¹æ³ã§èªåçã«èæ ®ãããŸãã ãã ãã.NETãã©ãããã©ãŒã ã®æ©èœã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®å®è¡äžã®ã³ãŒãã®åçæå·åãã³ãŒãæŽåæ§å¶åŸ¡ããã€ãºä¿è·ãšã³ã³ãŒãã䜿çšããã³ãŒãå埩ãªã©ããã€ãã£ãã³ãŒãã§äœ¿çšã§ããå€ãã®ä¿è·ææ³ã䜿çšã§ããŸããã ããããããããã¹ãŠå®çŸããããšã¯å¯èœã§ãããCïŒã§ã®äœæ¥ã¯å¿«é©ã§ã¯ãªãå¯èœæ§ãé«ããªããŸãããããã匷åãªãèšèªã§ã®ã·ã¹ãã ããã°ã©ãã³ã°ãCILã³ãŒãã§ã®äœã¬ãã«ã®äœæ¥ã䜿çšæžã¿ã®ã¡ã³ããã³ã¹ãšæŽæ°ã®å¿ èŠæ§ãã®ãã©ãããã©ãŒã ã®æ°ããããŒãžã§ã³ããªãªãŒã¹ããããšããªã©ã.NETå ã§å€æŽããã£ãå Žåã®äœæ¥æ¹æ³ã
äžæ¹ããã³ãžä»ãä¿è·ã䜿çšã§ããŸãã ããã«ãããå®è£ ã«å¿ èŠãªæéãå€§å¹ ã«ççž®ãããéçºè ã®è³æ Œã¯ããã»ã©é«ããªãå ŽåããããŸãïŒä»ã®ããã°ã©ãã³ã°èšèªã®ç¥èãCILã®ç¥èãªã©ã¯å¿ èŠãããŸããïŒã ãã ããããã§ããã¹ãŠãã¯ã©ãŠãã¬ã¹ãšããããã§ã¯ãªããä¿è·ã®ã€ã³ã¹ããŒã«ãå®å šã«èªååããããšã¯å°é£ã§ãã æåã«ãéåžžã®äœ¿çšæã®ãã³ãžä»ãä¿è·ã®äœ¿çšã«ã€ããŠè©³çŽ°ã«æ€èšãããã®åŸãããããã¹ãŠãå¯èœãªéãèªååããæ¹æ³ã«ã€ããŠèããŸãã Sentinel LDK APIã䜿çšããã«æåã¯å®å šã§ãªãã¢ããªã±ãŒã·ã§ã³ãäœæããEnvelopeã䜿çšããŠã¢ã»ã³ããªãåŠçãããšããŸãã ãã®å Žåãå®å šãªã¢ããªã±ãŒã·ã§ã³ãäœæããæè¡çãªãµã€ã¯ã«ã¯æ¬¡ã®ããã«ãªããŸãã
1ïŒVisual Studioãªã©ã®éçºç°å¢ã§ã®å®å šã§ãªãã¢ã»ã³ããªã®æ§ç¯ã
2ïŒEnvelopeãšã®ã€ã³ã¿ã©ã¯ãã£ããªäœæ¥äžã«æ§ç¯ãããã¢ã»ã³ããªã®ä¿è·ã
2çªç®ã®æ®µéã詳ããèŠãŠãEnvelopeãæäŸã§ããã»ãã¥ãªãã£æ¹æ³ãèŠãŠã¿ãŸãããã ä¿è·ããã»ã¹ã¯ã次ã®æäœã§æ§æãããŸãã
1. EnvelopeãåããŠããŠã³ããŒãããåŸã空ã®ãããžã§ã¯ãã衚瀺ãããŸãã å®å šãªã¢ã»ã³ããªãæ©èœããããŒã®ã·ãªãŒãºãããã«ç€ºããŸãïŒå³1ãåç §ïŒã
å³ 1-ããŒã·ãªãŒãºã³ãŒãã®éžæ
2.ä¿è·ã®å¯Ÿè±¡ãšãªããããžã§ã¯ãã«å«ãŸãããã¹ãŠã®ã¢ã»ã³ããªã«é©çšãããäžè¬çãªä¿è·ãã©ã¡ãŒã¿ãŒãèšå®ããŸãïŒå³2ãåç §ïŒã
å³ 2-äžè¬çãªã»ãã¥ãªãã£èšå®ã®èšå®
ãã©ã¡ãŒã¿ã®ç®çã¯æ¬¡ã®ãšããã§ãã
⢠æååã®æå·å -#USããŒãã«æ ŒçŽãããŠãããã¹ãŠã®ããŒã¿ã®æå·åãããã«ã¯ãéçºè ããœãŒã¹ã³ãŒãã§å®çŸ©ãããã¹ãŠã®æååãUNICODEæšæºã«å«ãŸããŠããŸãã ããã§ãããšãã°ã.NET Reflectorã§ã¯ãæå·åãããŠããªãæååãå«ãã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã
ãããŠãæå·åããããã®ã§ã¯ïŒ
⢠å®æçãªããã¯ã°ã©ãŠã³ããã§ã㯠-æå®ãããééã§ã®ããŒã®ããã¯ã°ã©ãŠã³ãããŒãªã³ã°ã
⢠å§çž®ã®é©çš -ã¢ã»ã³ããªã§ä¿è·ãããŠãããšããŒã¯ãããã¯ã©ã¹ããã³ã¡ãœããã®æ¬äœãé 眮ãããšãã®å§çž®ã å®éã«ã¯ãä¿è·ã®æµæã«ã¯åœ±é¿ããŸãããããšãã°ã.NET Reflectorã¯ããã®ãªãã·ã§ã³ã®ãã©ã¡ãŒã¿ãŒã«é¢ä¿ãªãããã®å§çž®ãã€ã³ãã空çœã§ããããšãèªèããŸããã
⢠ã·ã³ãã«ã®é£èªå-ã¯ã©ã¹åãã¡ãœããããã£ãŒã«ããªã©ã®ã·ã³ããªãã¯æ å ±ãå«ã#StringsããŒãã«æ ŒçŽãããããŒã¿ã®é£èªå ãªãœãŒã¹åãå€æŽãããŠããªãå Žåãå®å šãªé£èªåãŸãã¯éšåçãªè¡šç€ºãå¯èœã§ãã
é£èªååã®ããã°ã©ã ã¯ã©ã¹ïŒ
é£èªååŸïŒ
3. 1ã€ãŸãã¯è€æ°ã®æ¢è£œã®ã¢ã»ã³ããªãEnvelopeãŠãŒãã£ãªãã£ã®ãããžã§ã¯ãã«å«ããŸãïŒå³3ãåç §ïŒã
å³ 3-ãããžã§ã¯ããžã®ã¿ãŒã²ãããã¡ã€ã«ã®è¿œå
4.ãããžã§ã¯ãã«å«ãŸããåã¢ã»ã³ããªã«å¯ŸããŠããã¹ïŒãœãŒã¹ãã¡ã€ã«ã®ååŸå Žæãšä¿è·å¯Ÿè±¡ãã¡ã€ã«ã®é çœ®å ŽæïŒãããŒã䜿çšæ¹æ³ã䜿çšããã©ã€ã»ã³ã¹ãèšå®ããŸãïŒå³4ãåç §ïŒã
å³ 4-ã¢ã»ã³ããªãã©ã¡ãŒã¿ãŒã®èšå®
5.å¿ èŠã«å¿ããŠãç¹å®ã®ã¢ã»ã³ããªããšã«ãäžè¬çãªãã®ãšéè€ããç¬èªã®ä¿è·ãã©ã¡ãŒã¿ãŒãèšå®ãïŒå³5ãåç §ïŒãä¿è·ã¡ã«ããºã ã®åäœããã詳现ã«æ§æã§ããŸãïŒå³6ãåç §ïŒã
å³ 5
å³ 6
å³ã®ãã©ã¡ãŒã¿ãŒ 5ã¯ãã§ã«ãã©ã°ã©ã2ã§æ€èšãããŠããŸãã å³ã®é¢å¿ã®ãããã©ã¡ãŒã¿ïŒä¿è·ã®èŠ³ç¹ããïŒ 6ã次ã®ããšã«æ³šæããŠãã ããã
⢠LOCKING_TYPE-ãã®ã¢ã»ã³ããªã®ä¿è·ãæ©èœããããŒã®ã¿ã€ããå®çŸ©ããŸãã å¯èœãªãªãã·ã§ã³ïŒ
ããã§ïŒ
-HL-ããŒããŠã§ã¢ããŒ
-SL-UserMode-ãã©ã€ããŒãªãã§åäœã§ãããœãããŠã§ã¢ããŒ
-SL-AdminMode-ãã©ã€ããŒãšé£åãããœãããŠã§ã¢ããŒ
-SL-SL-UserMode + SL-AdminMode
⢠MIN_CODE_SIZE -CILã¡ãœããã³ãŒãã®æå°ãµã€ãºïŒãã€ãåäœïŒãã°ã«ãŒãæäœã®å Žåãã¯ã©ã¹å šäœãä¿è·å¯Ÿè±¡ãšããŠããŒã¯ãããŠããå Žåãªã©ãEnvelopeã«ãã£ãŠä¿è·ãããããšããå§ãŸããŸãã
6.äœæ¥ã®äžã§æãæéã®ãããéšåãæ®ã£ãŠããŸã-ä¿è·ããã¯ã©ã¹ãšã¡ãœããã決å®ãïŒå³7-1ïŒãéžæããã¯ã©ã¹/ã¡ãœããããšã«ãä¿è·ã¡ã«ããºã ã®ãã©ã¡ãŒã¿ãŒãèšå®ããŸãïŒå³7-2ïŒïŒ
å³ 7-ã¡ãœãããšã¯ã©ã¹ã®ä¿è·ã®ç®¡ç
ä¿è·ããã¯ã©ã¹ãŸãã¯ã¡ãœãããéžæããã«ã¯ããŠã£ã³ããŠ1ã§ååã®æšªã«ãããã§ãã¯ããã¯ã¹ããªã³ã«ããŸããåæã«ããŠã£ã³ããŠ2ã«ã¯ãéžæãããªããžã§ã¯ãã®çŸåšã®ä¿è·èšå®ã衚瀺ãããŸãã ä¿è·ãã©ã¡ãŒã¿ãŒã®å²ãåœãŠïŒ
⢠æ©èœID-ããŒã®ã©ã€ã»ã³ã¹çªå·ã ç°ãªãã¯ã©ã¹/ã¡ãœããã«ã€ããŠã¯ãããããåå¥ã«ã©ã€ã»ã³ã¹ãããŠããå Žåãç°ãªãå ŽåããããŸãã
â¢ é »åºŠ -ä¿è·ãããã¯ã©ã¹/ã¡ãœããã®ããŒããã§ãã¯ãããé »åºŠ ã å¯èœãªãªãã·ã§ã³ïŒ
ããã§ïŒ
- ããã°ã©ã ããšã«1å-ã¢ããªã±ãŒã·ã§ã³ã®å šæéã«1å
- ã¯ã©ã¹ã€ã³ã¹ã¿ã³ã¹ããšã«1å- ã¯ã©ã¹ã®ã€ã³ã¹ã¿ã³ã¹ãäœæãããã³ã«
- æ¯å -åã³ã³ãããŒã«ãã¹ã§å®å šãªã³ãŒããééãã
â¢ã·ã³ãã«ã®é£èªå-ã·ã³ãã«æ å ±ã®é£èªåã¯ãä¿è·ã®å¯Ÿè±¡ãšããŠããŒã¯ãããŠããªãå Žåã§ããã¡ãœããã«é©çšã§ããŸãã ããŒã«é¢é£ä»ããããŠããŸããã å¯èœãªãªãã·ã§ã³ïŒ
ããã§ïŒ
- ã°ããŒãã«å®çŸ©ãäœ¿çš -ã·ã³ãã«ã®é£èªåãã©ã¡ãŒã¿ãŒã®çŸåšã®å€ã䜿çšãããŸãã2ç¯ããã³5ç¯ãåç §ããŠãã ããã
- æå¹ -ã°ããŒãã«èšå®ã«é¢ä¿ãªããé£èªåã¯åžžã«å®è¡ãããŸãã
- ç¡å¹ -ã°ããŒãã«èšå®ã«é¢ä¿ãªããé£èªåã¯å®è¡ãããŸããã
⢠ã³ãŒãã®é£èªå -CIL ã³ãŒãã® control_flow-obfuscationã¯ãä¿è·ã®å¯Ÿè±¡ãšããŠããŒã¯ãããŠããªãå Žåã§ããã¡ãœããã«é©çšã§ããŸãã ããŒã«é¢é£ä»ããããŠããŸããã ããã¯ãIDAã³ãŒãã¹ãããããé£èªååŸã«ã©ã®ããã«èŠãããã§ãã
ãããŠãããã¯é£èªååŸã®é¢æ°ã®ã³ã³ãããŒã«è»¢éã°ã©ãã§ãïŒ
é£èªåã¯ãã³ãŒãã1ã€ã®åœä»€ã«åŸã£ãŠæåéãã«ç Žæããããããã¹ãŠãæ··åšãããšããäºå®ã«æ確ã«èŠãããŸãããŸããå®è¡ã®åã®é åºãç¶æããããã«ãååœä»€ã®åŸã«ããžã£ã³ãåœä»€ïŒopcode brïŒãç®çã®ã¢ãã¬ã¹ã«è¿œå ã§æ¿å ¥ãããŸãã æããã«ããã®æ¹æ³ã§ä¿è·ãããé¢æ°ã®é床ã¯å€§å¹ ã«äœäžããå¯èœæ§ããããã³ãŒãã®ãµã€ãºã¯å€§å¹ ã«å¢å ããå¯èœæ§ããããŸãã ãããã£ãŠããã®ä¿è·æ¹æ³ã¯æ³šæããŠäœ¿çšããŠãã ããã
⢠ã³ãŒãã®æå·å -AESã¢ã«ãŽãªãºã ã䜿çšããŠãããŒãä»ããŠéžæããã¡ãœããã®CILã³ãŒããæå·åããŸãã ãã®ä¿è·æ¹æ³ã§ã¯ãå ã®CILã³ãŒããã¡ãœããã®æ¬äœããæœåºãããããŒã䜿çšããŠæå·åãããæå·åããã圢åŒã§ã¢ã»ã³ããªãªãœãŒã¹ã«é 眮ãããŸãã 代ããã«çãã¢ããã¿ãæ¿å ¥ãããããŒãã埩å·åãåçã³ã³ãã€ã«ãããã³ä¿è·ãããã¡ãœããã®ã³ãŒããžã®å¶åŸ¡ã®è»¢éãæäŸãããŸãã ã¡ãœããã®å®äºåŸããã®ã³ãŒãã¯ã¡ã¢ãªããåé€ãããŸãã ããã¯ãIDAã®ä¿è·ãããã¡ãœããã®æ¬äœãã©ã°ã¡ã³ããã©ã®ããã«èŠãããã§ãã
ã¯ã©ã¹åŒã³åºãåœä»€[mscorlib] System.Reflection.Emit.DynamicMethodã¯ãã¡ã¢ãªå ã§ã³ã³ãã€ã«ãããå®è¡ããããã®åŸåé€ãããåçã¡ãœãããå®çŸ©ããã³è¡šããŸãã åœä»€callvirtã€ã³ã¹ã¿ã³ã¹ãªããžã§ã¯ã[mscorlib] System.Reflection.MethodBase :: Invokeã¯ãã¡ãœãããæ£åžžã«ã³ã³ãã€ã«ããããšãã¡ãœããã«å¶åŸ¡ãæž¡ããŸãã ãã®ä¿è·æ¹æ³ã¯ãå®éã«ã¯ä¿è·ãããã³ãŒãã®é床ã«åœ±é¿ãäžãããããªããŸãšããªèä¹ æ§ãæäŸããŸãã
7.å¿ èŠãªãã¹ãŠã®ã¯ã©ã¹/ã¡ãœãããä¿è·å¯Ÿè±¡ãšããŠããŒã¯ãããããäœæ¥çµæããããžã§ã¯ããã¡ã€ã«ãšããŠä¿åãã[ä¿è·]ãã¿ã³ãã¯ãªãã¯ããã ãã§ãã ãã®çµæãå®å šãªã¢ã»ã³ããªãåŸãããŸãã ä»äºã®çµããã
ããã»ã¹ã®èªååã®åé¡ã«æ»ããŸãããã æããã«ãç§ãã¡ãè¡ã£ãã°ããã®äœæ¥ã¯äžååã«èªååãããŠããŸãã ã¯ããç§ãã¡ã¯ãããžã§ã¯ãã®åœ¢åŒã§è¡ã£ããã¹ãŠãä¿åããŸããã次ã«ã¢ã»ã³ããªãä¿è·ããå¿ èŠããããšãã¯ãããã«Envelopeã«ããŒãããŠäœ¿çšã§ããŸãã ãã ãã以åã®ããã«ãå®å šãªã¢ããªã±ãŒã·ã§ã³ãäœæããæè¡ãµã€ã¯ã«å šäœã¯ãç°ãªãããã°ã©ã ã§å®è¡ããã2ã€ã®ççµåã¹ããŒãžã§æ§æãããŠããŸãã ããããæ¥ç¶ããŠãä¿è·ãéçºè ã«ãšã£ãŠééçãªããã»ã¹ã«ããŠã¿ãŸãããã ãããè¡ãã«ã¯ãenvelope.comãšåŒã°ããEnvelopeã®ã³ã³ãœãŒã«ããŒãžã§ã³ã䜿çšããŸãïŒæ¡åŒµåãæããªãã§ãã ãããããã¯éåžžã®exeãã¡ã€ã«ã§ãããå€ä»£ã®ms-dosããã®æšæ¶ã§ã¯ãããŸããïŒã ãããã£ãŠãâhã¹ã€ããã§éå§ãããšã次ã®ããšãéç¥ãããŸãã
Visual Studioã®ãæ§ç¯åŸã®ã€ãã³ãã段éã§ã-pã¹ã€ãããæå®ããŠãŠãŒãã£ãªãã£ã䜿çšããŸãã ããšãã°ã次ã®ããšãã§ããŸãã
envelope.comã§ã®ãã¹ãŠã®äœæ¥ã¯ããããžã§ã¯ããã£ã¬ã¯ããªã«ããã次ã®ã³ãã³ããå«ãenvelope.cmdããããã¡ã€ã«ã«è»¢éãããŸãã
..\..\LDK\VendorTools\VendorSuite\envelope.com -n --protect %1
move /Y %2.protect %2
ãã¹ãŠãæ£ããæ©èœããããã«ã¯ãenvelope.comãŠãŒãã£ãªãã£ã§ãã£ã¬ã¯ããªãžã®æ£ãããã¹ãæå®ããå¿ èŠãããïŒããã®ããã«ãçžå¯Ÿãã¹ã§ã¯ãªã絶察ãã¹ã䜿çšã§ããŸãïŒãåºåãã¡ã€ã«ã®æ¡åŒµåãå€æŽããŠEnvelopeã®ä¿è·ãããžã§ã¯ããå°ãå€æŽããå¿ èŠããããŸã移åã³ãã³ããæ£åžžã«æ©èœããããã«ïŒ
ãã®ãŠãŒãã£ãªãã£ã¯ãVisual Studioã®åºåãŠã£ã³ããŠã®ãã°ã§ç¢ºèªã§ããŸãã
Visual Studioç°å¢ã§ã¢ã»ã³ããªãäœæããããã»ã¹ãå®äºãããšãäžèŠãªãžã§ã¹ãã£ãªãã§ããã«ä¿è·ãããã¢ããªã±ãŒã·ã§ã³ãåãåããŸãã
ããŸããã£ãããã§ãããã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒãã«å€§ããªå€æŽãå ããããå Žåã¯ã©ããªããŸããïŒ ããšãã°ãä¿è·ããæ°ããã¯ã©ã¹/ã¡ãœããã衚瀺ãããå Žåãå€ãã¯ã©ã¹/ã¡ãœãããåé€ãããããæ¢åã®ã¯ã©ã¹/ã¡ãœãããä¿è·ããæ¹æ³ãå€æŽããäºå®ã§ããïŒ åŸæ¥ã®æ¹æ³ã§ã¯ãã»ã¯ã·ã§ã³6ã§èª¬æããããã«ãä¿è·ãããžã§ã¯ããEnvelopeã§éãã环ç©ããããã¹ãŠã®å€æŽãè¡ãå¿ èŠããããŸããããã¯æ²ããããšã§ããã¢ããªã±ãŒã·ã§ã³ãœãŒã¹ã³ãŒãã«ããããªå€æŽãå ããŠããä¿è·ããã»ã¹ã®èªååãçµäºããããã§ãã
ãã ãããœãŒã¹ã³ãŒãã®ãã®ãããªå€æŽã®æŽæ°ãèªååããããšã¯å¯èœã§ãã ããã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒãã§ã«ã¹ã¿ã å±æ§ã䜿çšããŠå®è¡ã§ããŸãã ã«ã¹ã¿ã å±æ§ã䜿çšããä¿è·ã®ãªããžã§ã¯ãã¯ãç¹å®ã®å±æ§ã»ããã®å Žæã«å¿ããŠãã¡ãœãããã¯ã©ã¹ããŸãã¯ã¢ã»ã³ããªå šäœã«ãªããŸãã ãªããžã§ã¯ãä¿è·ã«äœ¿çšå¯èœãªå±æ§ã®ãªã¹ãã¯ãã»ã¯ã·ã§ã³6ã§èª¬æãããŠããã¯ã©ã¹/ã¡ãœããã®ä¿è·ãã©ã¡ãŒã¿ãŒã®ã»ãããå®å šã«ç¹°ãè¿ããŠããŸãã䜿çšå¯èœãªå±æ§ã®ãªã¹ãã¯æ¬¡ã®ãšããã§ãã
⢠ä¿è· -ã¿ã€ãBOOLãå¯èœãªå€-TRUE / FALSEã¯ãããŒã䜿çšããŠãªããžã§ã¯ããä¿è·ããå¿ èŠããããã©ããã瀺ããŸãã
⢠FeatureId-ã¿ã€ãintãå¯èœãªå€-[0; 65535]ã¯ããªããžã§ã¯ããä¿è·ããããã«äœ¿çšãããã©ã€ã»ã³ã¹çªå·ïŒæ©èœIDïŒã瀺ããŸãã Protect == TRUEã®å Žåã«ã®ã¿åãå ¥ããããŸãã
⢠æå·å -ã¿ã€ãBOOLãå¯èœãªå€-TRUE / FALSEã¯ããªããžã§ã¯ãã®CILã³ãŒããæå·åããå¿ èŠããããã©ããã瀺ããŸãã Protect == TRUEã®å Žåã«ã®ã¿åãå ¥ããããŸãã
⢠CodeObfuscation-ã¿ã€ãBOOLãå¯èœãªå€-TRUE / FALSEããªããžã§ã¯ãCILã³ãŒãã®control_flowé£èªåãè¡ããã©ããã瀺ããŸãã Protectã®å€ã«é¢ä¿ãªãåãå ¥ããããŸãã ãã®ä¿è·æ¹æ³ã¯ãä¿è·ãããã³ãŒãã®é床ãäœäžãããŸãã
â¢ é »åºŠ -EnvelopeMethodProtectionFrequencyåæåã¯ãä¿è·ããããªããžã§ã¯ãã®ã©ã€ã»ã³ã¹ããã§ãã¯ãããé »åºŠã瀺ããŸãã Protect == TRUEã®å Žåã«ã®ã¿åãå ¥ããããŸãã å¯èœãªå€ïŒ
-CheckOncePerApplicaton-ã¢ããªã±ãŒã·ã§ã³æäœäžã®åäžãã§ãã¯ã
-CheckOncePerInstance-ãªããžã§ã¯ãã®åã€ã³ã¹ã¿ã³ã¹ã®åäžãã§ãã¯ã
-CheckEveryTime-ã³ã³ãããŒã«ããªããžã§ã¯ãã³ãŒããééãããã³ã«ç¢ºèªããŸãã
⢠SymbolObfuscation-åæåEnvelopeSymbolObfuscationã¯ãä¿è·ãªããžã§ã¯ãå ã®ã·ã³ãã«æ å ±ãé£èªåããæ¹æ³ã瀺ããŸãã Protectã®å€ã«é¢ä¿ãªãåãå ¥ããããŸãã å¯èœãªå€ïŒ
-ObfuscateSkip-ãã¹ãŠã®èšå·æ å ±ã®é£èªåã®å®å šãªçŠæ¢ã
-ObfuscateForce-ãã¹ãŠã®ã·ã³ããªãã¯æ å ±ã®åŒ·å¶é£èªåã
-ObfuscateDefault-ãããªãã¯åãããã³ä»®æ³ä¿®é£Ÿåãšä¿è·ä¿®é£Ÿåãæã€ãªããžã§ã¯ããé€ãããã¹ãŠã®èšå·æ å ±ã®é£èªåãå®è¡ããŸãã
EnvelopeããœãŒã¹ã³ãŒãããå±æ§ãååŸããã«ã¯ãusingãã£ã¬ã¯ãã£ãã䜿çšããŠãAladdin.HASP.Envelopeããã³Aladdin.HASP.EnvelopeRuntimeåå空éãå«ããå¿ èŠããããŸãã åœç¶ãããã®åã«ããã¡ã€ã«Aladdin.HASP.Envelope.DLLããã³Aladdin.HASP.EnvelopeRuntime.DLLãVisual Studioãããžã§ã¯ãã®ãªã³ã¯ã«è¿œå ããå¿ èŠããããŸãã ãããã®ãã¡ã€ã«ãä¿è·ãããã¢ããªã±ãŒã·ã§ã³ãšå ±ã«é åžããå¿ èŠã¯ãããŸãã;ãããã¯ã¢ã»ã³ããªã«ä¿è·ãã€ã³ã¹ããŒã«ãã段éã§ã®ã¿å¿ èŠã§ãã 以äžã¯ãã«ã¹ã¿ã å±æ§ã䜿çšãããœãŒã¹ããã®ä¿è·ã®äŸã§ãã
äžè¬çã«ãã¢ã»ã³ããªä¿è·ã«é¢é£ãããã¹ãŠã®å€æŽã¯ã2ã€ã®ã«ããŽãªã«åé¡ã§ããŸãã
1.ãŸãã«ããçºçããªãã°ããŒãã«ãªå€æŽã ãã©ã°ã©ã1ãã5ã§èª¬æãããŠããããã«ããœãŒã¹ã³ãŒããããããã管çããããšã¯äžå¯èœã§ãã
2.ä¿è·å¯Ÿè±¡ã®ã¯ã©ã¹/ã¡ãœããã®å€èŠ³ãŸãã¯åé€ã«é¢é£ãããœãŒã¹ã³ãŒãã®å€æŽã¯ãã¯ããã«é »ç¹ã«çºçããŸãã ãã©ã°ã©ã6ã§èª¬æããŸããããã§ãEnvelopeã§ä¿è·ãããžã§ã¯ããç·šéããªããŠãããœãŒã¹ã³ãŒããããã®ãããªå€æŽãå®å šã«æŽæ°ã§ããŸãã
ãããŠä»ãäžèšã®ãã¹ãŠãèŠçŽãããšãSentinel LDK APIã䜿çšããå Žåãšåæ§ã«ãéçºè ã¯ãœãŒã¹ã³ãŒãããã®ä¿è·ãå®å šã«å¶åŸ¡ããŠãããšèšããŸãã äžé£ã®ããŒã®å€æŽãã¢ã»ã³ããªåã®å€æŽãããŒã®ããã¯ã°ã©ãŠã³ãããŒãªã³ã°ã®ããã¯ã°ã©ãŠã³ãããŒãªã³ã°ã®èšå®ãªã©ãã°ããŒãã«ãªå€æŽãããå Žåã«ã®ã¿ãã»ãã¥ãªãã£ãããžã§ã¯ããEnvelopeã«ã¢ããããŒããããã©ã¡ãŒã¿ãŒãä¿®æ£ããå¿ èŠããããŸãã