News for the ‘随便写点’ Category

secureCRT正确显示中文

Session Options(会话选项) -> Terminal(终端) -> Appearance(显示), 将Charater(字符)选择成 UTF-8支持中文了,如果选择成default(默认),中文显示就会乱码。

Edited: 八月 21st, 2010

取一个字节的第n位

int readBit(int number,int n)

    unsigned char _a = 0×1<<n;
    return (number&_a)>>n;

}

Edited: 八月 12th, 2010

RDF相关资料

一、RDF Primer

英文版:http://www.w3.org/TR/rdf-primer/

中文版:http://zh.transwiki.org/cn/rdfprimer.htm

二、Resource Description Framework (RDF) Model and Syntax Specification

http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/

Edited: 八月 12th, 2010

ActionScript动态分析

【前言】FlashPlayer提供了mm.cfg文件供开发者开启虚拟机的代码跟踪和性能分析:

文件路径(Win32)

%USERPROFILE%\mm.cfg

%USERPROFILE%\Application Data\Macromedia\Flash Player\Logs

产生的日志文件(Win32)

【正文】

一、安装Flash Player debug版

下载:http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_sa_debug.exe

ForIE http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_ax_debug.exe

For Firefox http://download.macromedia.com/pub/flashplayer/updaters/10/flashplayer_10_plugin_debug.exe

其它版本下载:http://www.adobe.com/support/flashplayer/downloads.html#fp10

二、常用参数

TraceOutputBuffered = 1    开启Trace输出缓冲
AS3Verbose = 1                开启ABC代码执行跟踪
AS3Trace = 1                   开启AS3函数级别执行跟踪
AS3StaticProfile = 1           开启静态Profiling信息(代码和尺寸统计)
AS3DynamicProfile = 1        开启动态Profiling信息(各指令用时与统计)
LogGPU = 1                       开启GPU使用信息

三、更多的参数信息:
•参考文章: http://jpauclair.net/2010/02/10/mmcfg-treasure/

本文参照:http://www.csksoft.net/blog/

Edited: 八月 5th, 2010

tamarin获取swf文档类

[思路]根据swf_file_format_spec_v10里的说明知道 SymbolClass tag(标签)是swf符号与ActionScript 3.0类相关联的tag。而角色ID(character ID)为0的类为swf文件的主类或称文档类。而我们需要做便是分析SymbolClass tag从中读取出 ID为0的类即可。文档说明中的SymbolClass tag格式:参照http://www.adobe.com/devnet/swf/pdf/swf_file_format_spec_v10.pdf SymbolClass的介绍

NumSymbols   类的个数

Tag2     占2个字节      即character tag ID  

String   存放着我们要找的类名  

获取String的长度:

int GetStringLen()
        {   
            int i=0;
            while (readU8() != 0)
            {
                i++;
            }
            return i;
        }

获取文档类

char * handleSymbolClass(SwfParser &parser, int taglen)
    {
        int        NumSymbols;
        int        *tag;
        char    *ClassName; 
        NumSymbols=parser.readU16();

        tag = new int[NumSymbols]; 
        for(int i=0;i< NumSymbols;i++)
        {
            tag[i]=parser.readU16();

            StringPos=parser.pos;
            StringLen = parser.GetStringLen();
            ClassName = new char[StringLen];
            uint8_t *buffer = parser.swf.getBuffer();
            VMPI_memcpy(ClassName,(void *)(buffer+StringPos),StringLen); 
  
            if (tag[i] == 0)
            { 
                printf("tagid=%d\t",tag[i]); 
                printf("%s \tStringLen=%d\n",ClassName[i],StringLen); 

            }
        } 
    }

Edited: 七月 29th, 2010