存档
好久没写了,今天再灌一篇。 一个flash小游戏里的TEA算法,hack一把,结果发现,decompile出来的as,改成js运行后,得到的结果跟原游戏运算出的结果是不一样的。 心想难道js跟as有些差别?不得已,去下了一个adobe flash cs3。 发现自己快不会用flash了,还是flash5时学了几天,做了点皮毛,主要也是那时为了应付交了一下某堂课的作业。想起来当时那老师也很好心,这个flash作业给了我满分。 不过今天对flash cs3感觉 很不顺手了。一开始就遇到个问题 ,在cs3中如何使用外部类?直接写一个,报错误“类不能嵌套”,搜了一把是写在一个.as文件里,就写在一个TEA.as里。 加入代码 import TEA; 结果又报错,说TEA没有实现,查文档,原来说是要放到一个包(package)里。那就放吧,放完发现还是不对,最后看了一下flash自己的实现,终于整明白了。先建一个crypto的文件夹,在里面建个TEA.as,代码这样: package crypto{ //crypto要跟文件夹名一致。 public class TEA{ //TEA跟文件名即TEA.as一致。public好像不能少。 …//省略 } } OK,可以运行了,然后发现,其实另存为flash 8的文档,就可以直接用不放在包里的TEA.as!晕倒。 运行发现,这个flash得到的结果跟html里的js算出来是一样的。敢情从下载flash起,事情就白做了。 最后没办法,回到sothink swf decompiler中,仔细看,看到一个疑点: var _loc11 = 2.671213E+009; 为什么是这样呢?算法中不应有这样的代码。打开raw code,找到这一行: //96 09 00 06 ef e6 e3 41 00 00 20 37 _push 2.67121e+009 对比一下其它的_push语句,发现ef e6 e3 41 00 [...]
我的手机是N72,唉,不先进。 去年给N72写了个软件,现在发现服务器升级用不了了。于是决定改一下。原来配软件花了好久好久,现在发现不太会配了,又折腾了好久才搞定,赶快把过程记下来: 安装j2re-1_4_2_16-windows-i586-p.exe,不能装新版的或旧版的。//shit 安装WinPcap_3_1.exe,不能装新版的或旧版的。//shit 2. 安装ActivePerl-5.6.1.635-MSWin32-x86,不能装新版的或旧版的。//shit 3. 安装carbide.c++_v1.2.exe。(download from nokia) 安装s60_2nd_sdk_fp3(其它版本不能用于N72) 都装完了后,模拟器可以运行了。但是还是不能上网。记得去年折腾了好多天才搞定,现在总结只要两步走: 首先,在模拟器选项里设好IP,子网掩网,网关,DNS等信息。 然后,关掉模拟器,运行两条命令: C:\Symbian\8.1a\S60_2nd_FP3\Epoc32\Data>set EPOCROOT=\Symbian\8.1a\S60_2nd_FP3\ C:\Symbian\8.1a\S60_2nd_FP3\Epoc32\Data>perl ../tools/configchange.pl –config ethernetWithCommDB –kernel EKA1 –target winscw –variant UDEB 就可以了,注意第二条命令运行的目录不能错。 这样就可以上网了,用慢得像坨屎的carbide c++开发吧。另外这个s60_2nd_sdk_fp3还有几个大BUG,又是一坨屎啊。 最后,发现carbide用bld.inf文件导入的文件,不会生成.sis文件,又折腾了我好久才搞定!!方法,自己去修改pkg文件,然后手动调用makesis.exe,没啥别的办法。创建的工程carbide是会给生成.sis的,一旦把这个工程移除后再导入,就怎么也不会生成sis了,再一次说:shit! 生成sis文件命令: C:\Symbian\8.1a\S60_2nd_FP3\Epoc32\tools\makesis.exe myproj__.pkg output.sis -v 其中myproj__.pkg是从myproj.pkg改来,手动把其中的$(EPOCROOT)等宏展开。 最后,我的程序修正了服务器数据识别,又可以使用了。 真是够折腾的。