您的位置:首页 > 其它

闪客工具 收集一下网上有意思的方法

2013-01-08 00:27 274 查看
今天 收集些有用的类,记录一下网上一些有用的方法。



获取一个函数名的方法:这个方法多少有点神奇,不过真的可行

private function getFunctionName(fun:Function):String{
    try{
        var k:Sprite = Sprite(fun);
    }catch(err:Error){
        var fn:String = err.message.replace(/.+::(\w+\/\w+)\(\)\}\@.+/,"$1");
        return fn==err.message?(err.message.replace(/.+ (function\-\d+) .+/i,"$1")):fn;
    }
return null;
}



获取一个swf 里面反射的类,有了这个方法,就可以尝试做一个反射类的工具,如果你觉得开发ios遇到反射的问题,那么这个方法就可以帮到你了。

这个类可以批量处理swf 对应链接名。

/**
		* 获取一个swf中的类
		* @param swfBytes
		* @return 
		* 
		*/  
		public static function getSWFClassName(swfBytes:ByteArray):Array
		{
			tagNum = 0 ;
			className = [];
			
			bytes = new ByteArray();
			bytes.writeBytes(swfBytes);
			bytes.position = 0;
			bytes.endian = Endian.LITTLE_ENDIAN ;

			var compressModal:String ;

			compressModal = bytes.readUTFBytes(3);
			if (compressModal != "FWS" && compressModal != "CWS") {
				throw new Error("不能识别的SWF文件格式");
			}
			bytes.readByte()
			bytes.readUnsignedInt();
			bytes.readBytes(bytes);
			bytes.length = bytes.length - 8;

			if (compressModal == "CWS") {
				bytes.uncompress();
			}
			bytes.position=13

			var tag:int;
			var tagFlag:int;
			var tagLength:int;

			var tagBytes:ByteArray ;
			while (bytes.bytesAvailable) {
				readSWFTag(bytes);
			}
			return className.splice(0,className.length);
		}


下面...下次抽空继续整理,该睡觉了去。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐