手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2025年07月的文章

Firefox插件:Firecookie

Firecookie是firefox的插件。而且它是根在firebug插件里面的。所以,要安装firecookie一定要先安装firebug。安装完Firecookie后,点击F12,在Firebug里面多了一个cookies的Tab,从里面可以看到,列出了当前应用中的cookie信息。

通过这个tab可以看到有些cookie的过期时间显 示“会话”,有些显示的是具体时间。那些显示的是“会话”的cookie就被称为是“会话cookie”,即关闭了当前浏览器后,该cookie就消失 了。那些设置了具体过期时间的cookie被称为是持久cookie,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依 然有效直到超过设定的过期时间。

有些cookie被设置为http-only,是为了防止跨站点脚本攻击(XSS),以防用户重要的cookie信息被别人窃取。这点就不深入了,网上有很多资料。

Cookie的路径用于设置可以读取一个cookie的最顶层的目录,如显示为“/”说明只要在同一个域中,所有的文件都可以访问该cookie。

这个工具可以修改cookie的值、新建cookie、清除cookie等功能。在测试的过程中可以利用这个工具修改相应的cookie的值,来测试对应功能是否正确。

你试试看就知道喽。HOHO

仅用 []()+! 就足以实现几乎任意Javascript代码

这篇文章很强悍,看到的时候我很惊讶,传说中的大吃一斤又出现了。
没办法,人啊。。。总是会想到奇怪的方法,呵呵。。
看内容吧。不多说了,很彪悍。

G Reader里Dexter同学的分享,来自sla.ckers.org的又一神作:点我测试

GReader里看不到效果的同学请自行测试下列HTML:

JavaScript代码
  1. <script language="javascript" type="text/javascript">  
  2. ([][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]()[(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]])([][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]()[(![]+[])[+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]()+[])[!+[]+!+[]]]((![]+[])[+!+[]]+(+[![]]+[])[+[]])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[+[]]+[][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]()[(![]+[])[+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]()+[])[!+[]+!+[]]]((![]+[])[+!+[]]+(+[![]]+[])[+[]])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]])  
  3. </script> 
在线转换工具

 

跟Brainfuck有的一拼。。。是挂马的好办法。。。

更新:研究了一下它实现的原理,有一个码表:

XML/HTML代码
  1.     (NaN+[]["filter"])[11]',  
  2. !   window["atob"]("If")[0]',  
  3. "   ("").fontcolor()[12]',  
  4. #   window["atob"]("0iN")[1]',  
  5. $   window["atob"]("0iT")[1]',  
  6. %   window["atob"]("0iW")[1]',  
  7. &   window["atob"]("0ia")[1]',  
  8. '   window["atob"]("0if")[1]',  
  9. (   (false+[]["filter"])[20]',  
  10. )   (false+[]["filter"])[21]',  
  11. *   window["atob"]("0ir")[1]',  
  12. +   window["atob"]("0it")[1]',  
  13. ,   window["atob"]("0iy")[1]',  
  14. -   (NaN+window["Date"]())[31]',  
  15. .   window["atob"]("1i4")[1]',  
  16. /   (true+("")["sub"]())[10]',  
  17. 0-9 ignored*/ ,,,,,,,,,,  
  18. :   window["Date"]()[21]',  
  19. ;   window["atob"]("O0")[0]',  
  20. <   ("")["sub"]()[0]',  
  21. =   ("").fontcolor()[11]',  
  22. >   ("")["sub"]()[10]',  
  23. ?   window["atob"]("0j9")[1]',  
  24. @   window["atob"]("00A")[1]',  
  25. A   (+[]+[]["constructor"])[10]',  
  26. B   (+[]+(false)["constructor"])[10]',  
  27. C   window["atob"]("00N")[1]',  
  28. D   window["btoa"](00)[1]',  
  29. E   window["btoa"](01)[2]',  
  30. F   (0+[]["filter"]["constructor"])[10]',  
  31. G   window["btoa"]("0f")[1]',  
  32. H   window["btoa"]("0t")[1]',  
  33. I   ("Infinity")[0]',  
  34. J   window["atob"]("00r")[1]',  
  35. K   window["btoa"]("(")[0]',  
  36. L   window["btoa"]("/")[0]',  
  37. M   window["btoa"](0)[0]',  
  38. N   ("NaN")[0]',  
  39. O   window["btoa"](8)[0]',  
  40. P   window["btoa"]("<")[0]',  
  41. Q   window["btoa"]("a")[1]',  
  42. R   window["atob"]("01I")[1]',  
  43. S   window["btoa"]("I")[0]',  
  44. T   window["btoa"]("N")[0]',  
  45. U   window["atob"]("01W")[1]',  
  46. V   window["atob"]("01a")[1]',  
  47. W   (true+window)[12]',  
  48. X   window["atob"]("01i")[1]',  
  49. Y   window["btoa"]("a")[0]',  
  50. Z   window["btoa"]("f")[0]',  
  51. [   (undefined+[]["filter"])[33]',  
  52. \   window["atob"]("01y")[1]',  
  53. ]   (true+[]["filter"])[40]',  
  54. ^   window["atob"](014)[1]',  
  55. _   window["atob"](018)[1]',  
  56. `   window["atob"]("02A")[1]',  
  57. a   ("false")[1]',  
  58. b   (window+[])[2]',  
  59. c   ([]["filter"]+[])[3]',  
  60. d   ("undefined")[2]',  
  61. e   ("true")[3]',  
  62. f   ("false")[0]',   
  63. g   ([]+("")["constructor"])[14]',  
  64. h   window["atob"]("aN")[0]',  
  65. i   ([false]+undefined)[10]',  
  66. j   (window+[])[3]',  
  67. k   window["atob"]("a0")[0]',  
  68. l   ("false")[2]',  
  69. m   (Number+[])[11]',  
  70. n   ("undefined")[1]',  
  71. o   (true+[]["filter"])[10]',  
  72. p   window["atob"]("cN")[0]',  
  73. q   window["atob"]("cf")[0]',  
  74. r   ("true")[1]',  
  75. s   ("false")[3]',  
  76. t   ("true")[0]',  
  77. u   ("undefined")[0]',  
  78. v   (0+[]["filter"])[30]',  
  79. w   ([]["sort"]["call"]()+[])[13]',  
  80. x   window["atob"]("eN")[0]',  
  81. y   (NaN+[Infinity])[10]',  
  82. z   window["atob"]("et")[0]',  
  83. {   (NaN+[]["filter"])[21]',  
  84. |   window["atob"]("03y")[1]',  
  85. }   (NaN+[]["filter"])[41]',  
  86. ~   window["atob"](234)[1]'  
拼接出来字符串 "eval",如何把 "eval" 变成 eval() 呢?方法是:[]["sort"]["call"]()["eval"]

其中 []["sort"]["call"]() 等于 [].sort.call() ,等价于 window,所以上面 []["sort"]["call"]()["eval"] 就等价于 window.eval

然后就是体力活了,把码表对应转换成 eval("blah blah") 这种形式就可以执行任意代码了,不同浏览器的码表不一样。 Chrome和Firefox的index就不一样。

其实这个码表还可以通过 ·toLocal*()` 函数族扩展到Unicode,比fromCharCode要简短 :D

原文来自:http://www.cnblogs.com/pandora/archive/2010/02/27/1674833.html

 

再看阿凡达

再次看阿凡达,距离上次是一个月后的事了。
上次是在曹扬影城,普通3D版的,为了这个imax 3D,老婆是念叨了很久了,正好她去莱福士,看到这个加场,就买了票,最后一排的。
12点半的电影。上完课后回家睡了一个小时,11点半起床,打车去了莱福士。
15米高, 20米宽的屏幕看起来是爽。唯一不爽的是,眼镜好象有点差。(我去之前想了想,这么大的屏幕,我应该可以不用戴眼镜吧?果然,象我这种300度以内的眼镜男,不戴眼镜也看的很清楚)
效果嘛。。比普通的3D确实有改进,普通的3D看上去,就象浮在眼前,而imax的却有点身临其境 的感觉(当然这只是自己的看法,也可能每个人确实不一样)
这么大的屏幕,原来没注意的一些细节也能够完善的表现出来了。
只是午夜场看的太累。而且又是周四。

180的票加上打车费,一下子升级到了230。。。不过还算物有所值吧。虽然这个代价大了一点

Tags: 阿凡达

思考PHP的转换?

我在写sbConfigure类的时候,还是采用了以前的Configure的解析方法,即get方法可以以字符串的形式来读取数组变量,就象这样

PHP代码
  1. sbConfigure::get("a.b.c");  
Return:
PHP代码
  1. return self::$_config['a']['b']['c'];  

但事实上,我为了这个返回,写了五六次代码了,但最终还是采用了foreach的方法

第一次我这么处理(采用了Eval),

PHP代码
  1. //...省略  
  2. $arrkeys = "[a][b][c]"  
  3. eval("\$ret = self::\$_config$arrkeys;");  
  4. return $ret;  

后来,yhustc说这样不太安全,所以我改成了foeach的方式

PHP代码
  1. //....  
  2. $arr = self::$_config;  
  3. $_err = false;  
  4. foreach($names as $name){  
  5.     if(isset($arr[$name])){  
  6.         $arr = $arr[$name];  
  7.     }else{  
  8.         $_err = true;  
  9.         break;  
  10.     }  
  11. }  
  12. if($_err == true)return ;  
  13. return $arr;  

$_err这个变量是为了防止变量在没有设定的时候仍然返回值。。。

昨天我又想用eval,但还是失败了。。。

不知道有没有更好的转换方式,查看了parse_ini_file,因为我想,ini文件中有

XML/HTML代码
  1. [test]  
  2. a.b=1  
  3. a.c=2  

有这样的返回数组。所以我在想着参考。然而仍然失望 ,又想着pack?serialize?json_decode?之类的解决方式,但还是失败了。。郁闷啊。

先记录一下,如果有更好的方法,就再次更新

 

 

 

【新闻】易语言5.0正式版隆重发布

自从汉编被铁血论坛中批斗了之后,现在新闻就少了很多了。易语言的新闻还是很少的,低调低调。。

吴涛,仿佛是CCED的主要coder?不过也算是不错了。能够挺到现在。以前是谁说的?凡是能够挺下来的,肯定都有过人之处的。不多讲,免得被和谐,看新闻吧。

易语言5.0 相对于易语言4.x更新说明
增加静态编译功能,支持挂接第三方链接器(比如VC6中的link.exe)。
静态编译后的易语言可执行程序(exe)和动态链接库(dll),运行时不再依赖任何支持库文件,文件尺寸更小(相对以前的独立编译),PE结构更合理 (取消了“易格式体”),加载速度更快,而且有效解决了“病毒误报”和“易被脱壳”的难题。

为实现静态编译,易语言编译器、核心支持库、集成开发环境(IDE)等均有重大更新,支持库开发架框有扩展性调整,绝大多数官方支持库都已针对 静态编译完成自身改造并提供静态库。

    目前绝大多数官方支持库均已支持静态编译,只有极少数不支持静态编译:vclbase.fne, jedi.fne, com.run/cominf.run/ocx.run。

    第三方支持库,由源代码作者按照静态编译技术文档(参见sdkstatic_docs)完成自身改造并提供静态库后,可支持静态编译。外部OCX 组件和COM组件,不支持静态编译。

    此次重大版本升级不影响以前的源代码(.e)和模块(.ec)。只要代码或模块中未用到“不支持静态编译”的支持库、COM/OCX等,都可以静 态编译。以前编译好的模块(.ec)甚至不需要重新编译即可直接支持静态编译。

    支持库开发框架调整是扩展性调整,比较好的做到了向前向后兼容。即,新版支持库可被旧版易语言或易程序使用,旧版支持库也可被新版易语言或易程序 使用(只是不支持静态编译)。

    静态编译后的易语言EXE/DLL之间不能再共享譬如窗口、窗口组件等类似资源,对于已经静态连接到一个EXE/DLL中的支持库,该支持库中的 数据或资源将不能再被其它EXE/DLL中所使用的同名支持库访问。这是因为代码被分别静态链接接到各个独立模块(EXE/DLL)中。

易语言5.0精简版安装包(不包括 知识库、多媒体教程)
易语言5.0完全版安装包 (包括知识库、多媒体教程)

    另附预告:易语言5.1版持续开发中,其中有关键更新,将于近期(或节后)推出测试版,敬请期待。

来源:http://www.eyuyan.com/news/2010/020102.html

另:易语言居然还有Elogo,飞扬,和英文版【对于这个,我很纳闷,其他没啥】

Tags: 易语言, eyuyan