¼Ò½k¡GÅý§Aªº¥N½X»·Â÷°½¿s¤§²´ - ¤¤°êWEB¶}µoªÌºôµ¸ (http://www.webasp.net) -- §Þ³N±Ðµ{ (http://www.webasp.net/article/) --- ¼Ò½k¡GÅý§Aªº¥N½X»·Â÷°½¿s¤§²´ (http://www.webasp.net/article/15/14200.htm) |
| -- §@ªÌ¡G¥¼ª¾ -- µo§G¤é´Á¡G 2004-10-26 |
| §Ú̪¾¹D¡AJava½sĶ·½µ{§Ç±o¨ìªº¬O¦r¸`½X¡AVS.NET½sĶ·½µ{§Ç±o¨ìªº¬OMSIL¡]Microsoft¤¤¶¡»y¨¥¡^¡A³oºØ½sĶ¤è¦¡ºÙ¬°¡u¤£§¹¥þ½sĶ¡v¡A¯S§O®e©ö³Q¤Ï½sĶ©Î¹ê¬I¤Ï¦V¤uµ{¡C»P¥»¾÷¥N½X¤£¦P¡A¤£§¹¥þ½sͱo¨ìªº¤¤¶¡¥N½X§¹¾ã¦a«O¯d¤FÅܶq¡B¹Lµ{¦WºÙ¡A±q¦Ó¨Ï¤Ï½sͱo¨ìªºµ{§Ç´X¥G»Pì©lµ{§Ç§¹¥þ¤@¼Ë¡A¥u¯Ê¤Öì©lµ{§ÇªºµùÄÀ¡A¨ä¾l¤º®e®t¤£¦h¥i¥Hì«Ê¤£°Ê¦aÁÙì¥X¨Ó¡C
¡@¡@¹ï©ó°Ó«~³n¥óªº¶}µoªÌ¡A°ª½è¶qªº¤Ï½sĶ¥N½X±a¨Ó¤F«Ü¤jªº·ÀI¡Gºâªk¥i¯à³QÅѨú©M§ï³y¡Aµ{§Ç¥N½X¥i¯à³Q½Æ»s©M§ó§ï¡C¡]§Y¨Ï³æ¦ì¤º³¡¨Ï¥Îªº«D°Ó«~³n¥ó¡A¥Ñ©ó¤Ï½sͳy¦¨ªº·½¥N½X¬ªº|¤]±a¨Ó«Ü¤jªº«Â¯Ù¡C¨Ò¦p¡A¥Î¤á±N«Ü®e©ö¬Ý¨ì³X°Ý¼Æ¾Ú®wªº±K½X©Îµ{§Ç´O¤JªºSQL©R¥O¡C¦P¼Ë¦a¡A¨Ï¥Î¥~³æ¦ì¦«ºÞªA°È¾¹ªººô¯¸¤]±Á{·ÀI¡A¤@¥¹¤W¸ü¤FASP.NETÀ³¥Îªº¥N½X¡A¦«ºÞ³æ¦ìªº¤H´N¥i¯àÀH·N¬d¬Ý©M§ó§ïµ{§Ç¥N½X¡^¡C ¡@¡@§óÅý¤H¾á¤ßªº¬O¡A²{¦b¶Â«È©Î¦n©_ªº¥Î¤á¯à°÷¤è«K¦a±o¨ì¦UºØ¤Ï¦V¤uµ{¤u¨ã¡CMicrosoft¥»¨´N§K¶O´£¨Ñ¤F¤@ÓMSIL¤Ï·J½s¾¹¡AºÙ¬°ILDASM¡F³o¸Ì¦³¤@Ó·½¥N½X¶}©ñªº.NET¤Ï½sͤu¨ãAnakrino¡F·íµM¡AÁÙ¦³¨ä¥L³\¦h¼t°Ó´£¨Ñ¤F°Ó«~¤Æªº¤Ï¦V¤uµ{¤u¨ã¡C ¡@¡@¤@¡B×§ïÅܶq¦WºÙ ¡@¡@¬°¨¾¤î³oÃþ¤Ï¦V¤uµ{ªº«Â¯Ù¡A³Ì¦³®Äªº¿ìªk¬O¼Ò½k¡C¡]¾Ú¡m¬ü°ê¶Ç²ÎÃã¨å¡n¡A¡u¼Ò½k¡vªº·N«ä¬O¡u¨Ï²V¶Ã¡A¨Ï½k¶î°g´b¡A¨Ï¹L©ó²V¶Ã©Î¼Ò½k¡A¨Ï±oÃø©ó·Pı©Î²z¸Ñ¡v¡^¡C¼Ò½k¤u¨ã¹B¥Î¦UºØ¤â¬q¹F¨ì³o¤@¥Ø¼Ð¡A¦ý¥Dnªº³~®|¬OÅýÅܶq¦W¦r¤£¦A¨ã¦³«ü¥Ü¨ä§@¥Îªº¯à¤O¡B¥[±K¦r²Å¦ê©M¤å¦r¡B´¡¤J¦UºØ´ÛÄF«ü¥O¨Ï¤Ï½sͱo¨ìªº¥N½X¤£¥i¦A½sĶ¡C ¡@¡@¤@Ó§Y±Nµo§GªºVisual Studioª©¥»¡]ºÙ¬°VS.NET 2003¡A¥N½X¦WºÙEverett¡^±N¶°¦¨¤@Ó¼Ò½k¤u¨ã¡AMicrosoft«ØÄ³¥Î³oÓ¤u¨ã¹ï.NET¤¤¶¡¥N½X¶i¦æ³Ì«áªº³B²z¡C³oÓ¼Ò½k¾¹¬O¥t¤@Ó¤u¨ãDotfuscatorªº©Ò¿×Liteª©¡C¥ÑPreemptive Solutions¤½¥q¥X«~ªºDotfuscator¥\¯à§ó±j¤j¡A³o®a¦ì©ó¬ü°ê«X¥è«X¦{ªF¥_³¡§J§Q¤ÒÄõªº¤½¥q³Ìªì¶}µoJava¥N½Xªº¼Ò½k§Þ³N¡CDotfuscator¼Ò½k¾¹§Q¥Î¤@¨t¦C¨ô¶Vªº§Þ³N¨Ï¤Ï¦V¤uµ{®{³ÒµL¥\¡A©ÎªÌ¦Ü¤Ö»¡¨Ï±o¤Ï¦V¤uµ{«ÜÃø¶i¦æ¡C ¡@¡@Preemptive Solutions¤½¥qµ¹¥¦×§ï¤¤¶¡¥N½X¤¤Åܶq¦WºÙªº±M§Q§Þ³N¨ú¤F¤@Ó¥s¡u¶W¸ü·PÀ³¡v¡]Overload induction¡^ªº¦WºÙ¡AVS.NET 2003±a¨ÓªºLiteª©¥u¦³³oºØ¼Ò½k¥\¯à¡C¡]¼Ò½k¾¹¥Ã»·¤£·|§ï°Êì©lªº·½¥N½X¡A¬Æ¦Ü®Ú¥»¤£»Ýn¥Î·½¥N½X§@¬°°Ñ¦Ò¡C¡^³oºØ§Þ³N¥R¤À¹B¥Î¤FVS.NET¥N½Xªº¯SÂI¡G¦P¤@Ó¼ÐÃѲťi¦P®É¹B¥Î©ó¨ã¦³¤£¦P¯S¼xªºÃþ©M¤èªk¡F¦b¤£¦Pªº¦WºÙªÅ¶¡¤¤¡AÅܶq¥i¥H¦³¬Û¦Pªº¦W¦r¦Ó¤£·|½Ä¬ð¡C ¡@¡@Dotfuscator¥R¤À¹B¥ÎVS.NET³o¨Ç²Å¸¹¾Ç¤Wªº¯SÂI¡A§âºÉ¥i¯à¦hªº²Å¸¹§ï¦¨¦r¥À¡uA¡v¡C¾Ú¸Ó¤½¥q»¡¡A¬Y¨Ç¥N½X¤j¬ù¦³33%ªº¤Þ¥Î¥i¥H§ï¦¨¡uA¡v¡AÁÙ¦³10%¥i¥H§ï¦¨¡uB¡v¡C¸g¹L¼Ò½k¾¹³o¤@³B²z¡A¤Ï¦V¤uµ{±o¨ìªº¥N½X±N«ÜÃø²z¸Ñ¡C¤U±¨Ó¬Ý¤@Ó¨Ò¤l¡C ¡@¡@¹ï¥¼¸g¼Ò½k³B²zªº¥N½X°õ¦æ¤Ï¦V¤uµ{¡G private void CalcPayroll(SpecialList employeeGroup) { while (employeeGroup.HasMore()) { employee = employeeGroup.GetNext(true); employee.updateSalary(); DistributeCheck(employee); } } ¡@¡@¦P¼Ëªº¥N½X¡A¸g¹L¼Ò½k³B²z¦A°õ¦æ¤Ï¦V¤uµ{¡G private void a(a b) { while (b.a()) { a = b.a(true); a.a(); a(a); } } ¡@¡@ÅãµM¡A¨â¬q¥N½Xªº³B²zÅÞ¿è¬Û¦P¡C¦ý¬O¡An»¡²M·¡²Ä¤G¬q¥N½X¨ì©³¦b°µ¨Ç¤°»ò·¥¨ä§xÃø¡A¬Æ¦Ün§PÂ_¥¦¥¿¦b³X°Ýþ¨Ç¤èªk¡Bþ¨ÇÅܶq¤]«Ü§xÃø¡C ¡@¡@³oºØ§ïÅÜÅܶq¦WºÙªº¥\¯à¬O¥i°t¸mªº¡A¨Ò¦p¡A°²³]§A¥¿¦bºc³y¤@ÓDLL¡A¥i¥Hn¨D¤£§ï°ÊAPI¡C¦³½ìªº¬O¡A³o¤@³B²z¹Lµ{ÅãµM¥u¬O²³æ¦a§â¤j¶qÅܶqªº¦WºÙ²ÁY¦¨³æÓ¦r²Å¡A¦ýÀò±o¤F«D±`¦nªº¼Ò½k®ÄªG¡C ¡@¡@¤G¡B¥[±K¦r²Å¦ê ¡@¡@¦r²Å¦ê¥[±K¹ï¥I¥t¤@Ó¦w¥þ°ÝÃD¡A¨ä¹ê³o¤@¦w¥þ°ÝÃD¦b¥»¾÷¥N½X¤¤¤]¦P¼Ë¦s¦b¡X¡X±q¤G¶i¨î¥N½X´£¨ú¦r²Å©M¤å¦r¬O¤@¥ó«Ü²³æªº¨Æ±¡¡C¨Ò¦p¡A¥ÎUNIXªºstrings¤u¨ã³B²z¥ô¦ó¤G¶i¨î¤å¥ó¡A¥i¥H¨³³t±o¨ì¸Ó¤G¶i¨î¤å¥ó¥]§tªºASCII¤å¥»²M³æ¡C ¡@¡@¦b³Ì²³æªº±¡§Î¤U¡A³oÓ²M³æ¥u·|¬ªÅSª©Åv«H®§©M¤G¶i¨î°õ¦æ¤å¥ó¤Þ¥Î¤Fþ¨Ç®w¡C¦ý¬O¡A¦pªGµ{§Çn³X°Ý¼Æ¾Ú®w¡A³oÓ²M³æ±N¥]§t©Ò¦³ªºSQL©R¥O¡F¦pªG¥N½X¼Ò¶ô¤¤´O¤J¤F±K½X¡A±K½X¤]±N¤£±K¡C ¡@¡@¹ï©ó¤¤¶¡¥N½X¡A¥¼¥[±Kªº¦r²Å¦êÁÙ·|±a¨Ó¤@¼hÃB¥~ªº·ÀI¡C¶Â«È̳q¹L¤ÀªR¹ï¯S©w¦r²Å¦êªº¤Þ¥Î¡A¥i¥H§PÂ_¥X±qþ¸Ì¶}©l¥N½X¨ü¨ì±K½X«OÅ@¡AµM«á¥[¤W¸É¤B¨Ï¥N½X¶¹L±K½XÅçÃÒ³¡¤À¡C ¡@¡@¬°¤F¸Ñ¨M¦r²Å¦ê©ú¤å±a¨Óªº¦w¥þ°ÝÃD¡A¤j¦h¼Æ¼Ò½k¾¹¹B¥Î¤F¥[±K¦r²Å¦êªº§Þ³N¡C¥Ñ©ó¸Ñ±K¾Þ§@»Ýn¤@©wªº¶}¾P¡A©Ò¥H¹B¦æ®É³X°Ý¦r²Å¦êªº©Ê¯àªÖ©w·|¦³©Ò°§C¡C¦³½ìªº¬O¡A¦b³o¤è±¥»¾÷¥N½X¤Ï¦Ó¤£¦û«K©y¡A¦]¬°¦pªGn¹F¨ì¦P¼Ëªº®ÄªG¡A¹ï©ó¥»¾÷¥N½X¶}µoªÌ¥²¶·¤â¤u¥[±K©M¸Ñ±K¨CÓ¦r²Å¦ê¡A¦Ó¹ï©ó¤¤¶¡¥N½X³o¨Ç¤u§@«o¥i¥H¥Ñ¼Ò½k¾¹¥N³Ò¡C ¡@¡@¤T¡BÁôÂðõ¦æ¬yµ{ ¡@¡@±±¨î¬yµ{¼Ò½k¬O¤@ºØ¥Î¨Ó»~¾É¤Ï½s;¹ªº§Þ³N¡A¥¦¦bì©lªº¥N½X¤¤´¡¤J³\¦hgoto«ü¥O¡AÁöµMµ{§Ç³Ì²×°õ¦æªº«ü¥O§Ç¦C¤´¸òì¨Óªº¤@¼Ë¡A¦ý¤Ó¦hªº¡u¨±°j°Ê§@¡v¨Ï±o¤ÀªRµ{§Ç¹ê»ÚªºÅÞ¿è¬yµ{«D±`§xÃø¡C¤U±¨Ó¬Ý¤@Ó¨Ò¤l¡C ¡@¡@¹ï¨S¦³¸g¹L±±¨î¬yµ{¼Ò½k³B²zªº¤¤¶¡¥N½X¹ê¬I¤Ï¦V¤uµ{¡G public int CompareTo(Object o) { int n = occurrences - ((WordOccurrence)o).occurrences; if (n == 0) { n = String.Compare(word, ((WordOccurrence)o).word; } return (n); } ¡@¡@¦P¼Ëªº¥N½X¡A¸g¹L±±¨î¬yµ{¼Ò½k³B²z«á¦A°õ¦æ¤Ï¦V¤uµ{¡G public virtual int a(object A_0) { int local0; int local1; local0 = this.a - (c) A_0.a; if (local0 != 0) goto i0; goto i1; while (true) { return local1; i0: local1 = local0; } i1: local0 = System.String.Compare(this.b, (c) A_0.b); goto i0; } ¡@¡@¥i¥H¬Ý¨ì¡A¸g¹L±±¨î¬yµ{¼Ò½k³B²z«á¡A¥N½X³Q´¡¤J¤F¤@Ó°°±ø¥óÀË´ú»y¥y¡A±µµÛ¤S°õ¦æ¤F¤@Ógoto«ü¥O¡C¦bgotoªº¥Øªº¦a¡Aì¨Óªº»y¥y¡]¥H¸g¹L¼Ò½k³B²z«áªº§Î¦¡¡^³Q°õ¦æ¡A±µµÛ¤S¬O¤@Ógoto»y¥y±N±±¨îÂà¨ìì¥ýªºÅÞ¿è¬yµ{¤À¤ä¡Cª`·Nwhile()´`Àô¥¼³Q°õ¦æ¡A¥¦¥u¬O°_¨ì¤@ºØ»~¾Éªº§@¥Î¡C³oÓ¥N½X¤ùÂ_«Ü¤p¡A§Y¨Ï¨S¦³ì©lªº¥N½X¥i¨Ñ¤ñ¸û©M°Ñ¦Ò¡AÃѧO¥Xµ{§Ç¹ê»Ú¬yµ{ªº¥i¯à©Ê¤´¦s¦b¡CµM¦Ó¡A¹ï©ó¤@Ó³W¼Ò¸û¤jªº¹Lµ{¡A¦pªG¨S¦³·½¥N½X¥i¨Ñ°Ñ¦Ò¡A¨º¨Ç±Mªù¥Î¨ÓÅÍ´ýµ{§Ç¥¿±`°õ¦æ¬yµ{ªº«ü¥O±N¨Ï¤ÀªR¥N½Xªº¤H¯h©ó©b©R¡A³Ì²×¤£±o¤£©ñ±ó¡C ¡@¡@¤]´N¬O»¡¡A³oºØ¼Ò½k³B²zªº®Ú¥»«ä·Q¬OÅý«ì´_ì©l¥N½XÅܱo·¥¨ä§xÃø¡A¢¨Ï¶Â«È§ïÅÜ¥D·N¡A¤]³\¬O´«°µ»´ÃP¤@ÂIªº¡A¨Ò¦p¡u¦Û¤v¼g¥N½Xºâ¤F¡v¡C ¡@¡@¹ï±±¨î¬yµ{¶i¦æ¼Ò½k³B²zn¦b¤G¶i¨î¤å¥ó¤¤´¡¤J¤@¨Ç¥N½X¡A¦]¦Ó¼W¥[¤F¤@¨Ç¹B¦æ®É¶¡¶}¾P¡C¦pªG¥N½X¹ï¹B¦æ®É¶¡ªºn¨D«D±`V¨è¡A¥i¥H¥uµ¹¨º¨Ç¯S§O«nªº³¡¤À¥[¤W³o¤@¼hÃB¥~ªº«OÅ@¡C ¡@¡@ùþ ¼Ò½k¾¹©M¤Ï½s;¹¤j®i¼½¡G ¡@¡@¡¶¼Ò½k¾¹¡G ¡@¡@LSW DotNet IL Obfuscator ¡@¡@Demeanor for .NET ¡@¡@Salamander .NET Obfuscator ¡@¡@dotfuscator ¡@¡@Aspose.Obfuscator ¡@¡@.NET IL-Obfuscator ¡@¡@Deploy .NET ¡@¡@Salamander .NET Protector ¡@¡@Thinstall ¡@¡@XenoCode ¡@¡@¡¶ ¤Ï½s;¹¡G ¡@¡@Salamander .NET Decompiler ¡@¡@Exemplar/Anakrino 1:18 | µû½× (1) |
| webasp.net |