Proguard.

Java Ŭ·¡½º ÆÄÀÏ Ãà¼Ò ¹× ObfusCator.
Áö±Ý ´Ù¿î·Îµå

Proguard. ¼øÀ§ ¹× ¿ä¾à

±¤°í

  • Rating:
  • ƯÇã:
  • GPL
  • °¡°Ý:
  • FREE
  • °Ô½ÃÀÚ À̸§:
  • Eric Lafortune
  • °Ô½ÃÀÚ À¥»çÀÌÆ®:

Proguard. ű×


Proguard. ¼³¸í

Java Ŭ·¡½º ÆÄÀÏ Ãà¼Ò ¹× ObfusCator. Proguard´Â ¹«·á Java Ŭ·¡½º ÆÄÀÏ ¼öÃà±â, ÃÖÀûÈ­ µµ±¸ ¹× ObfuscatorÀÔ´Ï´Ù. Proguard Project´Â »ç¿ëµÇÁö ¾Ê´Â Ŭ·¡½º, Çʵå, ¸Þ¼Òµå ¹× ¼Ó¼ºÀ» °¨ÁöÇÏ°í Á¦°Å ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·± ´ÙÀ½ ¹ÙÀÌÆ® Äڵ带 ÃÖÀûÈ­ÇÏ°í »ç¿ëµÇÁö ¾Ê´Â ¸í·É¾î¸¦ Á¦°Å ÇÒ ¼ö ÀÖ½À´Ï´Ù. Çʵå·Î ªÀº Àǹ̾ø´Â À̸§À» »ç¿ëÇÏ¿© ³ª¸ÓÁö Ŭ·¡½º, ÇÊµå ¹× ¸Þ¼ÒµåÀÇ À̸§À» ¹Ù²Ü ¼ö ÀÖ½À´Ï´Ù. °á°úÀûÀ¸·Î jars´Â ¿ªÇÐÀûÀ¸·Î ÀÛ¾ÆÁö°í ´õ Èûµé¾îÇÕ´Ï´Ù. ´õ ÀÛÀº ½ºÅ丮Áö ¿ä±¸ »çÇ×, ³×Æ®¿öÅ©°£¿¡ ÀÀ¿ë ÇÁ·Î±×·¥ÀÌ ºü¸¥ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ºü¸¥ Àü¼Û, ºü¸¥·Îµå ¹× ´õ ÀÛÀº ¸Þ¸ð¸® Footprints.ProguardÀÇ ¸ÞÀÎ ÀåÁ¡ÀÌ ´Ù¸¥ Java Obfuscators¿Í ºñ±³ÇÏ¿© ÄÄÆѽº ÅÛÇø´ ÀÏ °ÍÀÔ´Ï´Ù. ±â¹Ý ±¸¼º. ¸î °¡Áö Á÷°üÀû ÀÎ ¸í·É ÁÙ ¿É¼Ç ¶Ç´Â °£´ÜÇÑ ±¸¼º ÆÄÀÏÀÌ ÀϹÝÀûÀ¸·Î ÃæºÐÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ´ÙÀ½ ±¸¼º ¿É¼ÇÀº JAR¿¡ÀÖ´Â ¸ðµç ¾ÖÇø´À» º¸Á¸ÇÕ´Ï´Ù. -keepkeep * extends java.applet.AppleTthe »ç¿ëÀÚ ¼³¸í¼­´Â »ç¿ë °¡´ÉÇÑ ¸ðµç ¿É¼ÇÀ» ¼³¸í ÇÏ°íÀÌ °­·ÂÇÑ ±¸¼º ½ºÅ¸ÀÏÀÇ ´õ ¸¹Àº ¿¹¸¦ º¸¿©ÁÝ´Ï´Ù .Proguard´Â ºü¸¨´Ï´Ù. ¸î ¸Þ°¡ ¹ÙÀÌÆ®ÀÇ ÇÁ·Î±×·¥ ¹× ¶óÀ̺귯¸®¸¦ ó¸®ÇÏ´Â µ¥´Â ½Ã°£ÀÌ ¼Ò¿äµË´Ï´Ù. °á°ú ¼½¼Ç¿¡¼­´Â ¿©·¯ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ëÇÑ ½ÇÁ¦ ¼öÄ¡¸¦ Á¦°øÇÕ´Ï´Ù .Proguard´Â ¼±ÅÃÀû ±×·¡ÇÈ »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º°¡ÀÖ´Â ¸í·É ÁÙ µµ±¸ÀÔ´Ï´Ù. ¶ÇÇÑ Ant ¹× J2ME Wireless Toolkit ¿ë Ç÷¯±×ÀÎÀÌ Á¦°øµË´Ï´Ù. Proguard´Â Java Ŭ·¡½º ÆÄÀÏ ¼öÃà, ÃÖÀûÈ­ µµ±¸ ¹× ObfuscatorÀÔ´Ï´Ù. Ãà¼Ò ´Ü°è´Â »ç¿ëµÇÁö ¾Ê´Â Ŭ·¡½º, Çʵå, ¸Þ¼Òµå ¹× ¼Ó¼ºÀ» °¨ÁöÇÏ°í Á¦°ÅÇÕ´Ï´Ù. ÃÖÀûÈ­ ´Ü°è´Â ¸Þ¼ÒµåÀÇ ¹ÙÀÌÆ® Äڵ带 ºÐ¼®ÇÏ°í ÃÖÀûÈ­ÇÕ´Ï´Ù. ³­µ¶ È­ ´Ü°è´Â ªÀº Àǹ̾ø´Â À̸§À» »ç¿ëÇÏ¿© ³ª¸ÓÁö Ŭ·¡½º, ÇÊµå ¹× ¸Þ¼ÒµåÀÇ À̸§À» ¹Ù²ß´Ï´Ù. °á°úÀûÀ¸·Î »ý¼º µÈ Ç׾Ƹ®´Â ÀÛ¾ÆÁö°í reverse-engineer.proguard¸¦ »ç¿ëÇÏ¿© ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼­ ¹Ì»ç¿ë Çʵå¿Í ¸Þ¼Òµå¸¦ ³ª¿­ÇÏ°í Ŭ·¡½º ÆÄÀÏÀÇ ³»ºÎ ±¸Á¶¸¦ ÀμâÇÏ´Â µ¥ »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. Proguard´Â ÀϹÝÀûÀ¸·Î ÀÔ·Â Ç׾Ƹ® (¶Ç´Â ÀüÀï, ±Í, ZIP ¶Ç´Â µð·ºÅ͸®)¸¦ ÀнÀ´Ï´Ù. ±×·± ´ÙÀ½ À̵éÀ» Ãà¼Ò, ÃÖÀûÈ­ ¹× ³­µ¶½Ãŵ´Ï´Ù. ±×·± ´ÙÀ½ °á°ú¸¦ Çϳª ÀÌ»óÀÇ Ãâ·Â Ç׾Ƹ® (¶Ç´Â ÀüÀï, ±Í, zip ¶Ç´Â µð·ºÅ丮)¿¡ ¾¹´Ï´Ù. ÀÔ·Â JARÀº ¼±ÅÃÀûÀ¸·Î ÀÚ¿ø ÆÄÀÏÀ» Æ÷ÇÔ ÇÒ ¼ö ÀÖ½À´Ï´Ù. Proguard´Â ÀÔ·Â Ç׾Ƹ®¿¡¼­ Ãâ·Â JAR±îÁö ¸ðµç ºñ Ŭ·¡½º ¸®¼Ò½º ÆÄÀÏÀ» º¹»çÇÕ´Ï´Ù. ±×µéÀÇ À̸§°ú ³»¿ëÀº º¯°æµÇÁö ¾Ê½À´Ï´Ù. ÀÔ·Â Ç׾Ƹ®ÀÇ ¶óÀ̺귯¸® Ç׾Ƹ® (¶Ç´Â ÀüÀï, ±Í, zips ¶Ç´Â µð·ºÅ丮)°¡ ÁöÁ¤µË´Ï´Ù. ±×·± ´ÙÀ½ ÀûÀýÇÑ Ãà¼Ò, ÃÖÀûÈ­ ¹× ³­µ¶ È­¿¡ ÇÊ¿äÇÑ Å¬·¡½º °èÃþ ¹× ´Ù¸¥ Ŭ·¡½º Á¾¼Ó¼ºÀ» À籸¼º ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶óÀ̺귯¸® Ç׾Ƹ®´Â Ç×»ó º¯ÇÏÁö ¾Ê½À´Ï´Ù. ´ç½ÅÀº ¿©ÀüÈ÷ ÃÖÁ¾ ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ Å¬·¡½º °æ·Î¿¡ ³Ö¾î¾ßÇÕ´Ï´Ù. ¾î¶² Äڵ尡 º¸Á¸µÇ¾î¾ßÇÏ´Â Äڵ带 °áÁ¤ÇÏ°í ¾î¶² Äڵ带 »èÁ¦Çϰųª ³­µ¶ È­ÇÏ´ÂÁö È®ÀÎÇÏ·Á¸é Äڵ带 Çϳª ÀÌ»óÀÇ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ ÁöÁ¤ÇؾßÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÁøÀÔ Á¡Àº ÀϹÝÀûÀ¸·Î ÁÖ¿ä ¹æ¹ý, ¾ÖÇø´, Midlet µî Ŭ·¡½ºÀÔ´Ï´Ù. * ¼öÃà ´Ü°è¿¡¼­ Proguard´ÂÀÌ ¾¾¾Ñ¿¡¼­ ½ÃÀÛÇÏ¿© ¾î¶² Ŭ·¡½º ¹× Ŭ·¡½º ±¸¼º¿øÀ» »ç¿ëÇÏ´ÂÁö Àç±Í ÀûÀ¸·Î °áÁ¤ÇÕ´Ï´Ù. ´Ù¸¥ ¸ðµç Ŭ·¡½º¿Í Ŭ·¡½º ¸â¹ö°¡ »èÁ¦µË´Ï´Ù. * ÃÖÀûÈ­ ´Ü°è¿¡¼­ Proguard´Â Äڵ带 ÃÖÀûÈ­ÇÕ´Ï´Ù. ´Ù¸¥ ÃÖÀûÈ­ Áß, ÁøÀÔ Á¡ÀÌ ¾Æ´Ñ ¼ö¾÷ ¹× ¹æ¹ýÀ» ÃÖÁ¾ÀûÀ¸·Î ¸¸µé ¼ö ÀÖÀ¸¸ç, ÀϺΠ¹æ¹ýÀº ÀζóÀÎ µÉ ¼ö ÀÖ½À´Ï´Ù. * ³­µ¶ È­ ´Ü°è¿¡¼­ Proguard´Â ÁøÀÔ Á¡ÀÌ ¾Æ´Ñ Ŭ·¡½º ¹× Ŭ·¡½º ±¸¼º¿øÀÇ À̸§À» ¹Ù²ß´Ï´Ù. ÀÌ Àüü ÇÁ·Î¼¼½º¿¡¼­ ¿£Æ®¸® Æ÷ÀÎÆ®¸¦ À¯ÁöÇÏ¸é ¿ø·¡ À̸§À¸·Î ¿©ÀüÈ÷ ¾×¼¼½º ÇÒ ¼ö ÀÖ½À´Ï´Ù. µ¿ÀûÀ¸·Î ÀÛ¼ºµÇ°Å³ª È£ÃâµÇ´Â ÄÚµåÀÇ ¸ðµç Ŭ·¡½º ¶Ç´Â Ŭ·¡½º ¸â¹ö (Áï, À̸§º°·Î)¸¦ ÀÔ·Â Æ÷ÀÎÆ®·Î ÁöÁ¤ÇؾßÇÕ´Ï´Ù. ÀÌ·¯ÇÑ »ç·Ê¸¦ ÀÚµ¿À¸·Î °áÁ¤ÇÏ´Â °ÍÀº ÀϹÝÀûÀ¸·Î ºÒ°¡´ÉÇÏÁö¸¸ ÀϺΠ¼ö¾÷À̳ª ÇÐ±Þ ±¸¼º¿øÀ» À¯ÁöÇÏ´Â °ÍÀÌ ³ªÅ¸³ª´Â °æ¿ì Proguard´Â ¸î °¡Áö Á¦¾ÈÀ» Á¦°øÇÕ´Ï´Ù. ÀûÀýÇÑ °á°ú¸¦ ¾òÀ¸·Á¸é Àû¾îµµ ó¸®ÁßÀÎ Äڵ忡 Àͼ÷ÇØ Á®¾ßÇÕ´Ï´Ù .Proguard´Â class.forname ( "someclass")°ú someclass.class ±¸Á¶¸¦ ÀÚµ¿À¸·Î ó¸®ÇÕ´Ï´Ù. ÂüÁ¶ µÈ Ŭ·¡½º´Â ¼öÃà ´Ü°è¿¡¼­ º¸Á¸µÇ°í ¹®ÀÚ¿­ Àμö°¡ ³­µ¶ È­ ´Ü°è¿¡¼­ ¿Ã¹Ù¸£°Ô ±³Ã¼µË´Ï´Ù. º¯¼ö ¹®ÀÚ¿­ Àμö°¡ ÀϹÝÀûÀ¸·Î °¡´ÉÇÑ °ªÀ» È®ÀÎÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÕ´Ï´Ù (¿¹¸¦ µé¾î, ±¸¼º ÆÄÀÏ¿¡¼­ ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù). ¾ð±ÞÇßµíÀÌ, Proguard´Â "(someclass) class.forname (º¯¼ö) .newinstance¿Í °°Àº ±¸¼ºÀ» ³ëÆ®ÇÕ´Ï´Ù. () ". À̵éÀº Ŭ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º°¡ SOMECLASS ¹× / ¶Ç´Â ÇØ´ç ±¸ÇöÀ» º¸Á¸ÇØ¾ß ÇÒ ¼ö Àִٴ ǥ½Ã ÀÏ ¼ö ÀÖ½À´Ï´Ù. ±×·± ´ÙÀ½ ±×¿¡ µû¶ó ±¸¼ºÀ» Àû¿ë ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸±¸®½º¿¡¼­´Â »õ·Î¿î ±â´É : ¡¤ »õ·Î¿î ǪÀÌ ·Ñ ÃÖÀûÈ­°¡ Ãß°¡µÇ¾ú½À´Ï´Ù. ¡¤ ÃÖÀûÈ­ÀÇ ¹Ì¼¼ÇÑ ±¸¼ºÀ»À§ÇÑ ¿É¼Ç -Optimizations Ãß°¡. ¡¤ OPD ¿É¼Ç - ³­µ¶ È­ µÈ Ŭ·¡½º¿¡ ÇØ´çÇÏ´Â ¹®ÀÚ¿­ »ó¼ö¸¦ Àû¿ëÇϱâÀ§ÇÑ ADAPTCLASSSTRINGS. ¡¤ ÁöÁ¤µÈ ÆÐÅ°Áö À̸§ÀÌ ³­µ¶ È­µÇÁö ¾Êµµ·Ï À¯ÁöÇϱâ À§ÇØ ¿É¼ÇÀ» Ãß°¡ÇÕ´Ï´Ù. ¡¤ Ãâ·Â Ç׾Ƹ®¿¡ ÁöÁ¤µÈ µð·ºÅ丮 Ç׸ñÀ» À¯ÁöÇϱâÀ§ÇÑ ¿É¼Ç -keepDirectory¸¦ Ãß°¡Çß½À´Ï´Ù. ¡¤ È®Àå ¿É¼Ç -dontnote ¹× -dontwarn ¸Þ¸ð ¹× °æ°íÀÇ ¼¼ºÐÈ­ µÈ ±¸¼ºÀ» À§ÇØ ¡¤ Ãß°¡ ¿É¼Ç - ½ºÅà ÃßÀûÀ» ±¸¹® ºÐ¼®Çϱâ À§ÇØ ´ëü Á¤±Ô Ç¥Çö½ÄÀ» ÁöÁ¤Çϱâ À§ÇØ retace¿¡¼­ regex¸¦ Ãß°¡ÇÕ´Ï´Ù. ¡¤ ³­µ¶ È­¸¦ ±â¹ÝÀ¸·Î ÀÚ¿ø ÆÄÀÏÀÇ À̸§À» È®ÀåÇß½À´Ï´Ù. ¡¤ JSE ¿ë IBMÀÇ JVM¿¡¼­ ¹ö±×¸¦ ÇÇÇÏ°í ÃÖÀûÈ­ ´Ü°è. ¡¤ ÃÖÀûÈ­ ´Ü°è¿¡¼­ ArrayIndexOutOfBoundsExceptionÀ» ÇÇÇϽʽÿÀ. ¡¤ º¸Á¸µÇÁö ¾ÊÀº ÁÖ¼®ÀÌÀÖ´Â °íÁ¤ ±¸¼º. ¡¤ »ï¿ø ¿î¿µÀÚ°¡ Æ÷ÇÔ µÈ ÁÖÀåÀÌÀÖ´Â ¼öÆÛ ÄÁ´öÅÍÀÇ È£Ãâ Á¤ºñ¸¦ °íÁ¤ÇÕ´Ï´Ù. ¡¤ µµ´Þ ÇÒ ¼ö¾ø´Â ¿¹¿Ü 󸮱âÀÇ °íÁ¤ ó¸®. ¡¤ ¹Ýº¹Àû ÀÎ ¹æ¹ý ÀζóÀÎ °íÁ¤. ¡¤ JDK 1.4 ¶Ç´Â ÀÌÀü ¹öÀüÀ¸·Î ÄÄÆÄÀÏ µÈ Å« ½Ãµµ ºí·ÏÀ¸·Î µÑ·¯½ÎÀÎ ¸¶Áö¸·À¸·Î ºí·ÏÀÇ °íÁ¤ µÈ ºí·ÏÀÇ °íÁ¤ µÈ ºí·Ï. ¡¤ JDK 1.4 ¶Ç´Â ÀÌÀü ¹öÀüÀ¸·Î ÄÄÆÄÀÏ µÈ º¹ÀâÇÑ ÃÖÁ¾ ºí·ÏÀÇ °íÁ¤ ÃÖÁ¾È­. ¡¤ À͸í Ŭ·¡½º À̸§ÀÇ °íÁ¤ ³­µ¶ È­, µÑ·¯½Î´Â ¸Þ¼¼µ¥½º ¼Ó¼ºÀÌ À¯ÁöµÇ´Â °æ¿ì. ¡¤ ÀÏ¹Ý À¯ÇüÀÇ ³»ºÎ Ŭ·¡½º À̸§ÀÇ °íÁ¤ ³­µ¶ È­. ¡¤ Ư¼ö ¹®ÀÚ°¡ Æ÷ÇÔ µÈ UTF-8 ¹®ÀÚ¿­ÀÇ °íÁ¤ µðÄÚµù. ¡¤ Ŭ·¡½º¸¦ º´ÇÕ ÇÒ ¶§ µð¹ö±× Á¤º¸¿Í ÁÖ¼®ÀÇ °íÁ¤ µÈ º¹»ç. ¡¤ ¾Ë·ÁÁöÁö ¾ÊÀº ¼Ó¼º¿¡¼­ ¾²´Â °ÍÀ» °íÁ¤Çß½À´Ï´Ù. ¡¤ ½ºÇø´ ¶óÀÎÀÌÀÖ´Â ¸Å´ÏÆ佺Ʈ ÆÄÀÏÀ» ¼öÁ¤Çß½À´Ï´Ù. ¡¤ ¾÷µ¥ÀÌÆ® µÈ ¹®¼­ ¹× ¿¹Á¦.


Proguard. °ü·Ã ¼ÒÇÁÆ®¿þ¾î