• ÇÁ¸®Ä«¿îÅÍ
  • Ç÷¡½ÃºÏ
  • ÇÁ¸®º¸µå
  • Àü±¤ÆÇ
  • À¥°øºÎ¹æ
  • Ä¿¹Â´ÏƼ
ºÒ·¯µéÀÌ´Â swf ÀÇ Á¤º¸¸¦ º¸±â 2008.08.03 20:40
±Û¾´ÀÌ : ¿î¿µÀÚ Á¶È¸ : 837 Ãßõ : 0

³Ê¹« °­Á¸¦ ¾ÈÇß´õ´Ï ¹Ì¾ÈÇÑ°¨ÀÌ µì´Ï´Ù.

¿À´ÃÀº ±âº»°­ÁÂÁß¿¡ ¹ÙÀÌÆ®¸¦ ´Ù·ç´Â ºÎºÐ¿¡ ´ëÇØ °£´ÜÈ÷ ¾Ë¾Æº¸°Ú½À´Ï´Ù.

¿¹Á¦´Â ¸®ÆÛ·±½ºÀÇ ¿¹Á¦¸¦ µé°ÍÀÌ°í Ãß°¡»çÇ׿¡ ´ëÇÑ ºÎºÐµµ ¸î°³ ÀÖ°Ú½À´Ï´Ù.

package {
    import flash.display.Sprite;
    import flash.errors.*;
    import flash.events.*;
    import flash.net.URLRequest;
    import flash.net.URLStream;

    public class byte extends Sprite {
        private static const ZLIB_CODE:String = "CWS";
        private var stream:URLStream;

        public function byte() {
            stream = new URLStream();
            var request:URLRequest = new URLRequest("http://mfiles.naver.net/62b3578999c1af183147/data27/2007/10/6/101/test7.swf");
            configureListeners(stream);
            try {
                stream.load(request);
            } catch (error:Error) {
                trace("Unable to load requested URL.");
            }
        }

        private function configureListeners(dispatcher:EventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        }

        private function parseHeader():void {
            trace("parseHeader");
            trace("isCompressed: " + isCompressed());
            trace("version: " + stream.readByte());
        }

        private function isCompressed():Boolean {
            return (stream.readUTFBytes(3) == ZLIB_CODE);
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
            parseHeader();
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:Event):void {
            trace("progressHandler: " + event);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
    }
}

-----------------°á°ú---------------------

openHandler: [Event type="open" bubbles=false cancelable=false eventPhase=2]
progressHandler: [ProgressEvent type="progress" bubbles=false cancelable=false eventPhase=2 bytesLoaded=51873 bytesTotal=51873]
httpStatusHandler: [HTTPStatusEvent type="httpStatus" bubbles=false cancelable=false eventPhase=2 status=200]
completeHandler: [Event type="complete" bubbles=false cancelable=false eventPhase=2]
parseHeader
isCompressed: true
version: 9

 

 

------------------------------

ÀÌ ¿¹Á¦´Â http»ó¿¡ ¿Ã¶ó°¡ÀÖ´Â swf¸¦ Àоîµé¿©¼­ Ç÷¡½ÃÀÇ ¹öÁ¯°ú ±âŸ Á¤º¸¸¦ ¾ò¾î¿À´Â ¿ªÇÒÀÔ´Ï´Ù.

Ç÷¡½Ã swfÆÄÀÏÀº ÀÌÁøÆÄÀÏÀ̱⶧¹®¿¡ http¿¡¼­ ÀоîµéÀÌ°ÔµÇ¸é °ð¹Ù·Î º¼¼ö°¡ ¾ø½À´Ï´Ù.

http¿¡¼­ ´Ù¿î·Îµå¹Þ´Â°ÍÀ» ½ºÆ®¸®¹ÖÀ̶ó°íÇϴµ¥ ¿ÏÀüÇÏ°Ô ´Ù¿î·Îµå°¡ µÇ¾î¾ß ºñ·Î¼Ò ÆÄÀÏÀÌ µÇ°ÔµË´Ï´Ù.

ÀÎÅͳÝÀÌ Ãʱ⠳ª¿Ã¶§ ¿ø°Å¸®»ó¿¡¼­ µ¥ÀÌÅ͸¦ ÁÖ°í¹Þ±â À§ÇÑ°ÍÀ̾ú°í ±×¼Óµµ´Â Áã¾àÀ̾ú½À´Ï´Ù.

Áö±ÝÀº °ÅÀÇ ½Ç½Ã°£Ã³·³ È­¸é»ó¿¡ ¹Þ¾Æº¸°íÀÖÀ¸´Ï º° Â÷À̸¦ ¸ø´À³¢°ÚÁö¸¸ ÀÌ·± ¿¹Á¦¸¦ µé¾îº¾½Ã´Ù.

À¯ÀúµéÀÌ ¸¸µç swfÆÄÀÏÀ» ¿Ã¸®´Â »çÀÌÆ®°¡ Àִµ¥ Ç÷¡½Ã¹öÁ¯º°·Î °Ô½ÃÆÇÀÌ ÀÖ°í ´Ù¸¥ ¹öÀüÀº ¿Ã¸±¶§ºÎÅÍ Â÷´ÜÇؾ߰ڴٴ »ý°¢Àΰæ¿ì¸¦ µéÀÚ¸é swf¸¦ À¯Àú°¡ ¿Ã¸®±âÀü¿¡ ¹Ì¸® ÇØ´ç swfÀÇ ¸Ó¸®ºÎºÐÀÎ Çì´õ¸¸ Àо¾î ¹öÁ¯ÀÌ Æ²¸®¸é ¾÷·Îµå¸¦ Áß´ÜÇÒ¼öÀÖ½À´Ï´Ù.

ÀÌ·±½ÄÀ¸·Î ÀÀ¿ëÇÑ´Ù¸é ¿©·¯°¡Áö º¸¾ÈºÎºÐÀ» Àû¿ëÇÒ¼öµµÀÖ½À´Ï´Ù. ÀÏ´Ü Àâ¼Ò¸®´Â Áý¾îÄ¡¿ì°í º»·ÐÀ¸·Î µé¾î°¡ÁÒ.

 

À§¿¡ »¡°£»ö ºÎºÐÀÇ CWSÀÇ Á¤Ã¼°¡ ¹»±î.

Ç÷¡½Ã´Â ¸®Æ²¿£µð¾È ¹æ½ÄÀ¸·Î ÀÌÁø µ¥ÀÌÅ͸¦ ±âº» Ãë±ÞÇÕ´Ï´Ù.

¸®Æ²¿£µð¾ÈÀ̶õ ±âº»ÀûÀ¸·Î 16ºñÆ® ÄÄÇ»ÅͺÎÅÍ ÇöÀç±îÁöµµ ¾²ÀÌ°íÀִµ¥ ÇϳªÀÇ ´ÜÀ§°¡ 16ºñÆ®·Î ´Ù·ç¾îÁö°íÀÖ°í ÀÌ°ÍÀ» 16Áø¼ö·Î ³ªÅ¸³»±âÀ§Çؼ­´Â 8ºñÆ®°¡ 1byteÀε¥ 1byte´Â ¿µ¹®ÀÚ 1°³¸¦ ³ªÅ¸³¾¼öÀÖ½À´Ï´Ù. 16ºñÆ®À̹ǷΠ2°³ÀÇ ¹®ÀÚ¸¦ ÇϳªÀÇ ´ÜÀ§·Î ¹­¾î Ç¥ÇöÇϴµ¥ ¹ÙÀÌÆ®¸¦ ³ª¶õÈ÷ ºÙ¿©¼­ Ç¥ÇöÇÏ´Â ¹æ½ÄÀ» ºò¿£µð¾ÈÀ̶óÇÏ°í ¹Ù²Ù´Â°ÍÀ» ¸®Æ²¿£µð¾ÈÀ̶ó°íÇÕ´Ï´Ù. ÇÏ¿©°£ ±×·±°Ô ÀÖ½À´Ï´Ù --;;

swf¸¦ óÀ½ ÀÐ¾î ³»°ÔµÇ¸é 3°³ÀÇ ¹ÙÀÌÆ®¿¡ ½Ã±×³ÊÃĶó´Â°ÍÀ» ³Ö¾î³õ¾Ò½À´Ï´Ù.

 0x465753 ¶ó´Â 16Áø¼ö¸¦ ¸ÕÀú ¸¸³ª°ÔµÇ´Âµ¥ ¹®ÀÚ·Î ¹Ù²Ù¸é FWS¶ó´Â°ÍÀ¸·Î ¹Ù²ò´Ï´Ù. º¸Åë Ç÷¡½Ã¿Ã¸®±âÀü¿¡ ¾ÐÃàÇؼ­ ¿Ã¸®´Âµ¥

¾ÐÃàÀ» ÇϰԵǸé CWS (16Áø¼ö·Î´Â 0x435753 )ÀÔ´Ï´Ù.

±×·¯´Ï CWS·ê ¸¸³ª¸é ¾ÐÃàµÈ swf ÀÌ°í FWS¸¦ ¸¸³ª¸é ¾ÐÃà¾ÈµÈ swf¶ó´Â °á·ÐÀÌ ³³´Ï´Ù.

À§¿¡¼­´Â ¾ÐÃàµÈ swf°¡ µÇ°Ú±º¿ä.

±×´ÙÀ½ÀÇ ¹ÙÀÌÆ®´Â ¹öÁ¯ÀÔ´Ï´Ù. ´Þ¶û ÇѹÙÀÌÆ®·Î µé¾îÀÖ½À´Ï´Ù. ¾Æ¸¶ 100³âµÚ¸é µÎ¹ÙÀÌÆ®¸¦ ¾µÁö¸ð¸£°ÚÁö¸¸ ±×¶§±îÁö Çö¾÷¿¡ Á¾»çÇϽôºÐÀº ±Ø¼Ò¼ö 1000¾ïºÐÀÇ 1Á¤µµÀÏ°Ì´Ï´Ù. °ÆÁ¤ÇÏÁö¸¶½Ã°í »ç»ÓÈ÷ ÇѹÙÀÌÆ®¸¸ Àо½Ã¸éµË´Ï´Ù.

stream.readByte()

¶ó´Â°ÍÀ¸·Î ÇѹÙÀÌÆ®¸¦ ´õ Àоîµå¸®¸é ¹öÁ¯Á¤º¸°¡ ³ª¿É´Ï´Ù.

 

 

´ÙÀ½Àº Ãß°¡ÀûÀÎ »çÇ×ÀÔ´Ï´Ù.

16ºñÆ® ´ÜÀ§·Î ó¸®Çϱ⶧¹®¿¡ ÀÏ´Ü Àоîµå¸°°ªÀº

0000 0000 0011 0100        0000 0000 0000 0000 ÀÌ·±½ÄÀ¸·Î swf¿¡ ÀúÀåµÇ¾îÀÖ°í ÀÌ°ÍÀ» Ç÷¡½Ã ¹æ½ÄÀÎ ¸®Æ²¿£µð¾ÈÀ¸·Î ¹Ù²Ù¸é

16 Áø¼ö 0x00000048·Î º¯È¯µË´Ï´Ù. ÀÌ°ªÀº °è¼Ó º¯Çϴµ¥ swf ÆÄÀÏÀÇ ³¡ ÁÖ¼Ò¸¦ °¡¸®Å°°íÀÖ½À´Ï´Ù.

±×·¯¹Ç·Î ÃÑ ¿ë·®À» ¸»ÇÕ´Ï´Ù. ·Î´õ°¡ ÃÑ¿ë·®À» ±¸Çس¾¼öÀִ°ÍÀÌ ÀÌ°ÍÀ» ÂüÁ¶Çϱ⶧¹®ÀÌÁÒ.

±×´ÙÀ½À¸·Î´Â ½ºÅ×ÀÌÁö »çÀÌÁîÀÌ´Ù.

Ç÷¡½Ã´Â TwipÀ̶ó´Â ´ÜÀ§¸¦ »ç¿ëÇϴµ¥ 1Twip =0.05Çȼ¿ÀÌ´Ù.

1Çȼ¿Àº ±×·¯¹Ç·Î 20 Æ®À¬ÀÌ µÈ´Ù.

À̺κÐÀº RectÇü ÀÚ·á·Î ÀúÀåµÇ¾îÀִµ¥

NBits ¶ó°í µÇ¾îÀÖ°í UB[¼ýÀÚ]¶ó°í µÇ¾îÀÖ´Ù.

¼ýÀÚ¶ó´Â°ÍÀº ºñÆ®ÀÇ ¼ö¸¦ ³ªÅ¸³»°íÀִµ¥ °¹¼öÀ̹ǷΠ¹«ºÎÈ£ Á¤¼ö°¡µÈ´Ù. ±×´ÙÀ½ ³ª¿À´Â °ªµéÀ» ÇØ´ç ºñÆ®ÀÇ °¹¼ö ´ÜÀ§·Î Àо¶ó´Â°ÍÀÌ´Ù.

¼ýÀÚ ºñÆ®¾¿ ²÷¾îÀо¸é Nbits ¶ó´Â°ÍÀÌ µÇ´Âµ¥ ÀÌ°ÍÀº ´ÙÀ½¿¡ ³ª¿À´Â°ªµéÀÌ ºÎÈ£ÀÖ´Â Á¤¼ö°¡ Nbit¸¸Å­°ø°£¿¡ µé¾îÀÖÀ½À» ³ªÅ¸³½´Ù.

ÀÌ°á°ú°ªÀÇ ³à¼®µéÀº ¸®Æ²¿£µð¾ÈÀÌ Àû¿ëµÇ¾î µé¾î°¡ÀÖÁö ¾ÊÀ¸¹Ç·Î ±×´ë·Î  NºñÆ®¾¿ ²÷¾îÀо´Ù. 5°¡µÉÁö 12°¡µÉÁö ¾ó¸¶ÀÏÁö ¸ð¸¥´Ù.

ÀÏ´Ü NºñÆ®´ÜÀ§·Î 4¹øÀ» Àо¾ßÇϴµ¥

ù¹ø°°¡ Xmin°ª µÎ¹ø°´Â Ymax°ª ¼¼¹ø°´Â Ymin°ªÀÌ´Ù ³×¹ø°´Â Ymax°ªÀÌ´Ù.  ³ª¸ÓÁö´ÜÀ§¿¡ ³²´Â ¹ÙÀÌÆ®´Â ¾È¾²¹Ç·Î ¹«½ÃÇÑ´Ù.

°¢ °ªº°·Î ÀÌÁø¼ö¸¦ ½ÊÁø¼ö·Î Àо¸é (ex : 2000) À̵Ǵµ¥ Æ®À¬´ÜÀ§ 1Çȼ¿ÀÌ 20Æ®À¬ÀÌ´Ï  2000 / 20 =Çȼ¿ À̳ª¿À´Âµ¥ 100À̳ª¿À¹Ç·Î ÀÌ°ÍÀº 100 Çȼ¿À» ÀǹÌÇÑ´Ù.

±×´ÙÀ½À¸·Î´Â Àç»ý·üÀÌ ³ª¿Â´Ù. ÇÁ·¹ÀÓ¼öÀÌ´Ù.

 

±×´ÙÀ½À¸·Î´Â ÇÁ·¹ÀÓÀÇ °¹¼ö¸¦ º¸¿©ÁØ´Ù.

...

Çì´õ°¡ »ó´çÈ÷ ¸¹Àº Á¤º¸¸¦ º¸¿©ÁÖ°íÀִµ¥

ÀÌ¹Ì ÀÌ Çì´õ¸¦ º¸¿©ÁÖ´Â ·Î´õ°¡ Ç÷¡½Ã¿¡ Á¸ÀçÇÏ°íÀִµ¥ ±»ÀÌ ¿Ö¾²´Â°¡ÇÑ´Ù¸é

¾Æ±î ¸»Çѵ¥·Î ½ºÆ®¸®¹ÖÀÏ »óÅÂÀ϶§ Á¦¾î¸¦ ÇÒ¼öÀÖ´Â ºÎºÐÀÌ ´õ Á¸ÀçÇϴ°ÍÀÌ´Ù.

°í±Þ »ç¿ëÀÚ¶ó¸é ±× »ç¿ëºÎºÐÀ» ÃÖ´ëÇÑ È®ÀåÇÒ¼öÀÖ¾î¾ßÇϱ⶧¹®¿¡

ÀÌ·± ±â¹ýÀ» ¾µ¼öµµÀÖÀ½À» ¾Ë¾Æ¾ßÇÑ´Ù.

ÀλýÀº ª½À´Ï´Ù.
±×·¯¹Ç·Î ´Ù¸¥ »ç¶÷ÀÌ ¿ä±¸ÇÏ´Â »îÀ» »ì¸é¼­ ½Ã°£À» ³¶ºñÇؼ­´Â ¾È µË´Ï´Ù.
µ·°ú ¸í¿¹¸¦ ¾òÁö ¸øÇÏ´õ¶óµµ ³¡±îÁö ÀÚ½ÅÀÇ ±æÀ» °íÁýÇϽʽÿÀ
¸ñ·Ï À­±Û ¾Æ·§±Û
³»¾Ë FREECOUNT.NET ÇÁÄ«³Ý »ý±ä³¯ 2003.12.20 Ȩ | Ä«¿îÅÍ | Ç÷¡½ÃºÏ | ÇÁ¸®º¸µå | Àü±¤ÆÇ | À¥°øºÎ¹æ | Ä¿¹Â´ÏƼ | ÂÊÁöÇÔ