Hacking °ü·Ã °Ô½ÃÆÇ |
---|
2000/08/06(21:37) from 203.255.160.61 | |
ÀÛ¼ºÀÚ : °ÁÙ±â (jkkang65@hanmail.net) | Á¶È¸¼ö : 4172 , ÁÙ¼ö : 169 |
[°ÁÂ] À¯´Ð½º¿¡¼ ÇØÅ·Çϱâ - [7] ÆÛ¿Â±Û |
---|
C/C++ ·Î ½ÇÇàÄڵ带 ¿ªÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Â °¡´É¼ºÀº ¾ø´Â°¡? ÀÌ FAQ´Â Bob StoutÀÌ ¾´ SNIPPET¿¡¼ ÀοëÇÑ °ÍÀÌ´Ù. ¼ûÀ» ¸ØÃßÁö ¸¶¶ó. »ý°¢À» ÇØ º¸¶ó. ¿ªÄÄÆÄÀÏ·¯°¡ ÀÛµ¿Çϱâ À§Çؼ ¸ÕÀú 1) ¸ð µç ÄÄÆÄÀÏ·¯°¡ ÃÖÀûÈ°¡ °¡Àå Àß ¼³Á¤µÇ¾úÀ» ¶§¶óµµ, µ¿ÀÏÇÑ Äڵ带 »ý¼ºÇØ¾ß ÇÏ°í, 2)¿ªÄÄÆÄÀÏ·¯°¡ ¾î¶² ÄÄÆÄÀÏ·¯ÀÌ ÀÛ¼ºÇÑ Äڵ带 ¾Ë¾Æ¾ß ÇÑ´Ù. ¸¸ÀÏ Ã¹ ¹ø° Á¶°ÇÀÌ ¸Â´Ù¸é, ¸ðµç ÄÄÆÄÀÏ·¯ º¥Ä¡¸¶Å©´Â ¼Ò¿ë¾øÀ» °ÍÀÌ´Ù. ¿Ö ³ÄÇÏ¸é ¸ðµç Äڵ尡 µ¿ÀÏÇÑ µ¿ÀÛÀ» Çϱ⠶§¹®ÀÌ´Ù. µÎ ¹ø° °æ¿ì°¡ ÂüÀ̶ó¸é, »õ·Î¿î ÄÄÆÄÀÏ·¯°¡ ³ª¿À´Â °ÍÀ» °í·ÁÇÏÀº ¸Å¿ì °Å´ëÇÑ ÇÁ·Î±×·¥ÀÌ µÇ¾î¾ß ÇÑ ´Ù. ÁÁ´Ù. ƯÁ¤ ÄÄÆÄÀÏ·¯¿¡ ´ëÇÑ Æ¯º°ÇÑ ¿ªÄÄÆÄÀÏ·¯¶ó¸é ¾î¶³±î? - BC++ 4.5¿¡¸¸ Àû¿ëµÇ´Â ¿ªÄÄÆÄÀÏ·¯¶ó¸é ¾î¶³±î? ÀÌ °æ¿ì ÃÖÀûÈ ¹®Á¦¿¡ ´ê°Ô µÈ´Ù. ¸íÈ®ÇÏ°í ÀÌÇØÇϱ⠽±°Ô ÀÛ¼ºµÈ ÄÚµå´Â ´ë°³ ºñÈ¿À²ÀûÀÌ´Ù. ÃÖ´ëÀÇ ¼º´ÉÀ» À§Çؼ ÀÛ¼º µÈ ÄÚµå´Â ´ë°³ ³ÇØÇÏ´Ù. ¿©±â¿¡ µ¡ºÙ¿© ¿ä»õ ÄÄÆÄÀÏ·¯Àº ¾î¶² ÃÖÀûȸ¦ »ç¿ë ÇÒÁö ¾Æ´ÒÁö¿¡ ´ëÇÑ ½ºÀ§Ä¡°¡ ÀÖ´Ù. ¿äÁ¡Àº Å« ÇÁ·Î±×·¥ÀÇ °æ¿ì ÃÖÀûÈ ½ºÀ§Ä¡ ¸¦ ¹Ù²ÞÀ¸·Î ´Ù¾çÇÑ ¿ÀºêÁ§Æ® ¸ðµâÀÌ »ý¼ºµÈ´Ù´Â °ÍÀÌ´Ù. ±×·¡¼ ¿ªÄÄÆÄÀÏ·¯ ´Â ¾î¶² ÃÖÀûÈ ½ºÀ§Ä¡¸¦ »ç¿ëÇß´ÂÁö ¾Ë ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÁÁ´Ù. ´õ °£´ÜÇÏ°Ô Æ¯Á¤ ÄÄÆÄÀÏ·¯ÀÇ ÃÖÀûȸ¦ ¹ø¿ªÇÏÁö ¾Ê°í °¡Àå ³í¸®ÀûÀÎ ¿ø ½Ã Äڵ带 ¿ªÄÄÆÄÀÏÇÑ´Ù°í ÇÏÀÚ. ±×·³ ¾î¶»°Ô µÇ´Â°¡? ÁÁÀº ÃÖÀûȱâ´Â ÄÚµåÀÇ ³»ºÎ°úÁ¤À» ÀçÀÛ¼ºÇϱ⠶§¹®¿¡, ¿ªÄ«ÀÏÇؼ ¾ò´Â °á°ú´Â Àб⠾î·Á¿ï »Ó¸¸ ¾Æ ´Ï¶ó, ´ëºÎºÐÀÇ °æ¿ì goto ¹®°ú ÁÁÀº ÇÁ·Î±×·¥¿¡¼´Â »ç¿ëÇؼ´Â ¾È µÉ °Íµé ·Î °¡µæ Â÷ ÀÖÀ» °ÍÀÌ´Ù. ¿©±â¼ ¿ªÄÄÆÄÀÏµÈ ¿ø½º ÄÚµå´Â ¾ò°Ô µÇ°ÚÁö¸¸ ¹«½¼ ¼Ò¿ëÀÌ Àְڴ°¡? ±×¸®°í ¿ø½Ã ¸ðµâ¿¡ ´ëÇؼ ÁÖ¸ñÇÏÀÚ. CÀÇ Æ¯¼ºÁßÀÇ Çϳª°¡ ½±°Ô À¯Áöº¸¼öÇÒ ¼ö ÀÖ´Â ¿ø½Ã ¸ðµâ(.C)·Î ÂÉ°³Á® ÀÖÁö ¾ÊÀ» °æ¿ì Àüü·Î´Â Àб⠾î·Æ°Ô µÈ´Ù ´Â °ÍÀÌ´Ù. ¿ªÄÄÆÄÀÏ·¯°¡ ±×°ÍÀ» ¾î¶»°Ô Çϰڴ°¡? ¿ªÄÄÆÄÀÏ·¯´Â ÇϳªÀÇ °Å´ëÇÑ main()ÇÔ ¼ö¸¦ ¸¸µé¾î¼ ¸ðµâ¼ºÀ» »ó½ÇÇÏ°Ô ÇÑ´Ù. ¶ÇÀº ÇÔ¼ö ÇϳªÇϳª¸¦ ÇϳªÀÇ ÆÄÀÏ·Î ¸¸µé·Á ÇÒ ¼ö ÀÖ´Ù. ÀüÀÚÀÇ °æ¿ì ¾µ¸ð ¾ø´Â °Å´ëÇÑ ÆÄÀÏÀ» »ý¼ºÇÏ°í µÎ ¹ø° ÀÇ °æ¿ì staticÀÇ ÇÔ¼ö³ª, º¯¼ö¸¦ ºÎ¸¦ °æ¿ì ¹®Á¦¸¦ ¾ß±âÇÑ´Ù. ¿ªÄÄÆÄÀÏ·¯°¡ static º¯¼ö¸¦ global·Î ¸¸µé¼öµµ ÀÖÀ¸³ª, ¿ª½Ã Çã¿ëÇÒ ¼ö ¾ø´Â °ÍÀÌ´Ù. ¸¶Áö¸·À¸·Î ´ëºÎºÐÀÇ »ó¿ë ÀÀ¿ë ÇÁ·Î±×·¥µéÀº ¼öÇà½Ã°£ÀÌ Âª¾Æ¾ß ÇÏ´Â ±â´ÉµéÀº ¾î¼Àºí¸®·Î ÀÛ¼ºÇÑ´Ù´Â °ÍÀÌ°í ÀÌ°ÍÀº C·Î ¿ªÄÄÆÄÀÏÇϱⰡ °ÅÀÇ ºÒ°¡´ÉÇÏ´Ù´Â °ÍÀÌ´Ù. ³»°¡ ¸»ÇßµíÀÌ ¼ûÀ» ¸ØÃßÁö¸¶¶ó. ¿ªÄÄÆÄÀÏÀ» °¡´ÉÇÏ°Ô ÇÏ´Â ±â¼úµéÀÌ ¹ßÀüÇÔ¿¡ µû¶ó¼ »õ·Î¿î ÃÖÀûȱâ¿Í ¾ð¾î(C++°ú °°Àº)´Â ±×°°Àº °ÍÀ» ¸¸µé±â ´õ ¾î·Æ°Ô ÇÒ °ÍÀÌ´Ù. ¿À·§µ¿¾È UNIX ÀÀ¿ëÇÁ·Î±×·¥Àº ÁöÀúºÐÇÑ ¼Ò½º ÄÚµå ÇüÅ·Π¹èÆ÷µÇ¾î(±â°è³ª ÀÐ À» ¼ö ÀÖÁö Àΰ£Àº ÀÌÇØÇÒ ¼ö ¾ø´Â - ¸ðµç °ø¹é¹®ÀÚ¿Í ÄÚ¸ÇÆ®¸¦ Áö¿ì°í º¯¼öÀÌ ¸§Àº OIOI µîÀ¸·Î ¹Ù²Ù¾î) ÀúÀÛ±ÇÀ» º¸È£ÇÏ·Á Çß´Ù. ¿ªÄÄÆÄÀÏ·¯ÀÇ °á°ú¹°µµ ÁöÀúºÐÇÑ ¼Ò½º ÄÚµå¿Í ¸¶Âù°¡Áö·Î ÀÌÇØÇϱ⠾î·Á¿ï °ÍÀÌ´Ù. MS-WindowsÀÇ Æнº¿öµå ¾ÏÈ£´Â ¾î¶»°Ô µ¿ÀÛÇϳª? ÀÌ FAQ´Â Wayne Hoxie MS Win 3.1¿¡¼ Æнº¿öµå ¿É¼ÇÀº ½±°Ô ¿ìȸÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª, À©µµ¿ì¿¡¼ ¾î¶»°Ô Æнº¿öµå¸¦ ó¸®ÇÏ´ÂÁö ±Ã±ÝÇØ ÇÏ´Â »ç¶÷µéÀÌ ÀÖÀ» °ÍÀÌ´Ù. ½ÇÁ¦ Æнº ¿öµå¸¦ ¾Æ´Â °ÍÀÌ À¯¿ëÇÑ ¸¹Àº ÀÌÀ¯°¡ ÀÖ´Ù. UNIXÀÇ root Æнº¿öµå¿Í À©µµ¿ì ÀÇ Æнº¿öµå¸¦ µ¿ÀÏÇÏ°Ô »ç¿ëÇÏ°í ÀÖ´Ù°í »ý°¢ÇØ º¸¶ó. ¾î·´ø, ¾Ë°Ô µÈ ¾Ë°í¸®ÁòÀ» Àü´ÞÇÏ°Ú´Ù. Æнº¿öµå¸¦ Ä¡°í [OK] ¹öÆ°À» ´©¸£°í ³ ´ÙÀ½ÀÇ °úÁ¤ºÎÅÍ ¼³¸íÀ» ÇÑ´Ù. ¸ðµç »ç¶÷ÀÌ(Àû¾îµµ Èï¹Ì¸¦ °¡Áö°í ÀÖ´Â) XOR ¿¬»êÀÌ ¹«¾ùÀÎÁö ¾Ë°í ÀÖ´Ù°í °¡Á¤ÇÑ´Ù. ¸ÕÀú, Æнº¿öµåÀÇ ±æÀÌ°¡ ÀúÀåµÈ´Ù. ÀÌ°ÍÀ» 'len'À̶ó°í ºÎ¸£°Ú´Ù. ÀÔ·ÂµÈ ¹® ÀÚ¿À» ¾ÏÈ£ÈÇÏ¿© ´Ù¸¥ ¹®ÀÚ¿·Î ¹Ù²Û´Ù. ¸ÕÀú ÀÔ·ÂµÈ ¹®ÀÚ¿À» 'plain text (Æò¹®)'À̶ó°í ºÎ¸£°Ú´Ù. ±×¸®°í ¾ÏÈ£ÈµÈ ¹®ÀÚ¿(µÎ¹øÀÇ °úÁ¤À» °ÅÄ¡´Âµ¥) À» 'hash1', 'hash2'¶ó°í ºÎ¸£°Ú´Ù. Æò¹®ÀÇ À§Ä¡´Â ÀÌ °úÁ¤¿¡¼ Áß¿äÇѵ¥ ÀÌ °ÍÀ» 'pos'¶ó°í ºÎ¸£ÀÚ. Çؽ³ °úÁ¤ÀÇ °¢ ´Ü°è¸¦ °ÅÄ¡°í³ª¼, ¹®ÀÚ´Â À©µµ¿ì °¡ Ưº°ÇÏ°Ô'special' »ý°¢ÇÏ´Â ¹®ÀÚ¿°ú ºñ±³µÈ´Ù. ÀÌ ¹®ÀÚµéÀº '[ ] ='¿Í ASCII 33 ÀÌÇϳª ASCII 126ÀÌ»óÀÇ ¹®ÀÚÀÌ´Ù. ÀÌ °Ë»ç ¿¬»êÀ» 'is_ok'¶ó°í ºÎ¸£°Ú´Ù. ¸ðµç ÀÎÅؽº´Â 0À» ±âÁØÀ¸·Î ÇÑ´Ù.(´Ù½Ã ¸»ÇØ 8°³ÀÇ ¹®ÀÚ Æнº¿öµå ´Â 0ºÎÅÍ 7±îÁöÀÌ´Ù.) ÀÌÁ¦, 'Æò¹®'ÀÇ Ã¹ ¹ø° ¹®ÀÚ´Â 'len'°ú xorµÇ¾î 'is_ok'·Î µé¾î°£´Ù. Á¤´ç ÇÑ ¹®ÀÚ°¡ ¾Æ´Ñ °æ¿ì, ¿ø·¡ÀÇ 'Æò¹®'ÀÇ ¹®ÀÚ·Î ´ëÄ¡µÇ¾î ´ÙÀ½ ¿¬»êÀ¸·Î ÁøÇàÇÑ ´Ù. ´ÙÀ½ ¿¬»ê¿¡¼ 'pos'¿Í xor ¿¬»êÀ» ÇÑ´Ù.(ÀÌ°ÍÀº ù ¹ø° ¿¬»ê¿¡¼´Â ¼Ò ¿ë¾ø´Â °ÍÀÌ´Ù ¿Ö³ÄÇϸé 'len'ÀÌ 0ÀÌ°í 0°ú xorµÈ °ÍÀº ±× ÀÚ½ÅÀÌ µÇ±â ¶§¹®ÀÌ´Ù.) ±×¸®°í 'is_ok'·Î º¸³»°í ¿Ã¹Ù¸¥ °ÍÀÌ ¾Æ´Ò °æ¿ì ¿ø·¡ÀÇ °ÍÀ¸·Î ´ëÄ¡ÇÑ´Ù. (¹®ÀÚ ´ç) ¸¶Áö¸· ¿¬»êÀº xor¸¦ ¾ÕÀÇ 'Æò¹®'ÀÇ ¹®ÀÚ¿Í xorÇÏ´Â °ÍÀÌ´Ù. ÀÌÀü ¹®ÀÚ°¡ ¾ø À¸¹Ç·Î,°íÁ¤µÈ °ª 42¸¦ 'Æò¹®'ÀÇ Ã¹ ¹ø° ¹®ÀÚ¿¡ ´ëÇØ »ç¿ëÇÑ´Ù. ÀÌ°Í Àº 'is_ok'·Î º¸³»Áö°í ¸¸ÀÏ OK¶ó¸é, 'hash1'ÀÇ Ã¹ ¹ø° À§Ä¡¿¡ ÀúÀåµÈ´Ù. ÀÌ °úÁ¤Àº Æò¹®ÀÇ ¸ðµç ¹®ÀÚ¿¡ ´ëÇØ ÀüºÎ ¼öÇàÇÑ´Ù. ´ÙÀ½ Æнº(pass)´Â ¸Å¿ì À¯»çÇÏ´Ù. ½ÃÀÛÁ¡ÀÌ hash1ÀÇ ¸¶Áö¸· ¹®ÀÚÀÌ´Ù. ±×¸®°í °á°ú´Â µÚ¿¡¼ ¾ÕÀ¸·Î hash2¿¡ µé¾î°£´Ù. ¶ÇÇÑ, ¸¶Áö¸· xorÇÏ´Â ½ÃÁ¡¿¡¼ ÀÌÀü ¹®ÀÚ¸¦ ÀÌ¿ëÇÏ´Â ´ë ½Å ÇöÀç ¹®ÀÚ ´ÙÀ½ÀÇ ¹®ÀÚ°¡ ÀÌ¿ëµÈ´Ù. hash1¿¡¼ ¸¶Áö¸· ´ÙÀ½¿¡ ³ª¿À´Â ¹®ÀÚ°¡ ¾øÀ¸¹Ç·Î, 42°ªÀÌ ¸¶Áö¸· ¹®ÀÚ´ë½Å¿¡ ÀÌ¿ëµÈ´Ù. 'hash2'´Â ¸¶Áö¸· ¹®ÀÚ¿ÀÌ°í À©µµ¿ì°¡ CONTROL.INI¿¡ ÀúÀåÇÏ´Â °ªÀÌ´Ù. Æнº¿öµå¸¦ º¹È£È'decrypt'Çϱâ À§Çؼ À§ÀÇ °úÁ¤À» ´ÜÁö °Å²Ù·Î ÇÏ¸é µÈ ´Ù. ÀÌÁ¦, ±â´Ù·È´ø °ÍÀÌ ¿Ô´Ù. ¿ì¸®¸¦ À§ÇØ ¾î·Á¿î ÀÏÀ» ÇØ ÁÙ C ÄÚµåÀÌ´Ù. #include "stdlib.h" #include "stdio.h" #include "string.h" int xor1(int i,int j) { int x; x=i^j; return (x>126||x<33||x==91||x==93||x==61)?i:x; } void main() { FILE *f; int i,l; char s[80],s1[80]; printf("Please enter the path to your Windows directory\n"); gets(s1); sprintf(s,"%s%scontrol.ini",s1,s1[strlen(s1)-1]=='\\'?"":"\\"); if((f=fopen(s,"rt"))==NULL){ printf("File Error : %s\n",sys_errlist[errno]); exit(0); } while(strnicmp(fgets(s1,70,f),"password",8)!=0&&!feof(f)); fclose(f); strtok(s1,"=\n"); strcpy(s,strtok(NULL,"\n")); i=strlen(s)-1; for(l=i;l>-1;l--) s1[l]=xor1(xor1(xor1(s[l],l==i?42:s[l+1]),l==i?0:l),i+1); for(l=0;l s[l]=xor1(xor1(xor1(s1[l],l?s1[l-1]:42),l?l:0),i+1); printf("The Password is: %s\n",s); } |