昨天把短信侦听给完成了。主要参考了两三篇文章:看雪论坛 gsm sniffing入门 硬件篇1-2楼乌云知识库 gsm sniffing期间遇到一个问题
chmod
用法chmod [augo][+-=][srwx] *.*
或者chmod 4777 file
解释一下augo a是all=u+g+ou=userg=groupo=owner
一般情况下是r=4.w=2,x=1,所以加起来是7.
但是s是一个比较特殊的用法,就是执行的时候有root权限,如果要用数据来表示s的话,那么就是4777了。
其中第一个-还有其他情况,比如b,c,d,s,p,l分别表示unix文件中的不同文件类型。
b 块文件,c char,d dir,s socket,p pipe,l link稍微学习了一下python真是三关尽毁。
1.单引号和双引号中间的内容没有任何区别
2.有物理行和逻辑行区分,物理行中不需要分号即可表示不同的行<
3.'\'放在行末表示连接下一行
print \
i
跟
print i
是一样的!!
4.c|c++中的"&&","||","!"用的是 and,or,not来表示。
5.两个乘号表示冥,
4**3==4*4*4
6.两个除号表示取整数部分
2//3==1
7.print 1,2表示1跟2相连。这个逗号是print的唯一的动作。如果不是逗号,那么print会在行尾加上换行符。
<span style="font-size:18px;">i=2;print i,i
>>>2 2</span>
其中,2 2之间的空格是由前面 "i,"这两个元素来产生的,可以理解为是逗号产生的。这样子更容易阅读。
8.用冒号‘:’来表示块
<span style="font-size:18px;">if x==3:
...
...</span>
而且块前面的空格是必须的!
否则不能无缘无故地用空格,也就是说如果你所处的代码不是一个新的块的话,那么这行代码前面不能出现空格。
9.else elif
我觉得elif就是为了避免是用很大的缩进来设置的。
10.while和for 有个可选模块 else
总觉得有点鸡肋。这个else的区别就是如果是正常遇到终止条件退出,会执行else模块,
如果是通过break退出循环,则不会执行else模块。
11.面向对象编程中,任何类函数的参数都要有一个self参数。这个self参数不用赋值。
12.继承中,要显示地调用父类的方法,包括父类初始化的方法。
初始化是Fatherclass.__init(arg1,arg2,...)这样子来初始化,而不是Fatherclass(arg1,arg2,...)这样子来初始化
13.数组的复制
array2=array1[:]#这个表示array1复制给array2,两个不相干
array2=[2*i for i in array1]#
14.可变参数个数
def powersum(power,*args):#*args代表args是一个数组,如果**args则代表args是一个字典
for i in args
total+= pow(i,power)
print total
15.exec用来在python文件中执行python代码
exec 'print "hello" '#只能是先单引号再双引号或者先双引号再单引号,不能两个都是单引号或者两个都是双引号