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