爱看电影,爱做梦

2006年07月27日

openbsd启动时候一些参数

类归于: Linux/bsd — kermit @ 10:00
Delaying the Boot
? boot> set timeout 60
boot>
This tells OpenBSD to boot after being idle for 60 seconds, which is not an unreasonable delay when you’re poking around the boot loader trying to figure out what you want to do! Now, let’s look at some more useful functions than slowing your system down
Booting Single-User
boot> boot -s
如果系统崩溃在mount前需要fsck
# fsck -p
# mount -a
Starting the Network in Single-User Mode
# /bin/sh /etc/netstart

Other Useful Boot Commands

If you forget which kernels you have on a system, the “ls” command lists all the files in the root directory. You can list other directories on the root partition by giving a full path, i.e., “ls /etc.”
The “boot” command by itself will boot the system immediately, without waiting for the five-second timeout. Similarly, the “reboot” command tells the system to do a warm boot.
The “help” command lists all available boot loader commands, including the less frequently used ones that we don’t discuss here. If you want truly detailed help with the boot loader, however, you should go read the boot(8) man page.
Finally, you can combine the boot flags to achieve exactly the effects you want. To boot an old kernel in single-user mode, you would do this:

boot> boot -s /bsd.old

2006年07月26日

读取 /var/log/failedlogin

类归于: Linux/bsd — kermit @ 13:29
#who -u root /var/log/failedlogin
tty00 Jul? 3 07:55
(全文完)

华为的笑话:老实人在华为

类归于: 绝对八卦新闻 — kermit @ 13:28

在华为3COM呆了一年,有付出,有收获,有很多辛酸,也有些许欢乐。一个老实人终究无法融入其中,但离开后回首,却发现不乏苦中作乐的点滴,摘录一二。
  
老实人在华为 1? 思想学习
  办事处无论多忙,办事处每月总是要组织周六日时间学习公司文化的。这天学习内容是任总正非的文章《英雄好汉站起来》。 我看了两分钟就放下了,我始终对此类文字提不起兴致。但立即被主任盯上了。
  众人都读完了,二十多人里主任第一个拎出我来:
“**, 看完了有没有什么感想?”
  有。”我认真地说
 “什么感想?”
 “写的挺好的。”我继续一脸诚恳,秘书女孩已经偷偷开始笑了。
 “这还用你说?别的呢?”
  我沉思一刻,开口说道:
  “写的比我好多了。。。。。。。。”?
  
老实人在华为 2 谈话
  
  刚去华为3com的时候,正是年底,一到这个时候,就开始考核办事处的销售业绩,一般来说,最后一个月的业绩一般要占到全年的三分之一以上。华为本身就是加班文化的产地,非常时期就更加不要讲人性化了,一 般每天都要加到12点以后。
这个时段被华为各个办事处称为冲刺时段。 偏偏这时一个销售的老婆来看他,在华为,异地化是一项基本国策, 办事处人员是不能在家庭所在地工作的,为的是能够全身心投入到工作中去。所以,小别胜新婚,那个销售兄弟自然加班的时间就短了。
这时领导看不下去了,偏偏我和那个销售关系较好,就让我去找那个销售谈话。
  我是个老实人,不懂拐弯,于是就把原话给转了过去:
  “ ** , 领导让我转告你,不要因为晚上的冲刺耽误了白天的冲刺。。。。。。”
  
老实人在华为 3 华为的名声
  
说实话,华为的员工名声不是很好。当时有一件事能充分说明。
一个中兴的工程师,在一个列车上没买到座,就跑到餐车,一边吃饭,一边调戏女服务员。半黄不黄的话说了一路,逗得小姑娘红着脸吃吃笑,等到这位西装革履的兄弟下车,拎起笔记本的时候,
小姑娘突然跟他说:“你是华为的吧。”
  由此可见,华为的名声还是很大的。当然,zte那个兄弟很不厚道的承认了。其实,华为也是这么干的,办事处内部规定,去各种娱乐场所,不得穿带有公司logo的衣服,并尽可能败坏竞争对手的声誉。 以致我第一次陪客户进夜总会,不好意思搂小姐的时候,小姐居然对我说:“你们老大说,让你不要丢你们港湾公司的脸。”
  
老实人在华为 4 华为的名声
  
  这里要推出另一个华为的老实人,我的部门经理,老实程度比我有过之而无不及。因为总是替我们几个工程师强出头,所以处处被尊称为老大。
  当时,几个兄弟聚餐,在一个比较高档的饭店里,老大刚刚因为不认同华为某些文化被领导批评,正郁闷着。不期帮我们点菜的服务员长得国色天香,老大就开始有事没事的开始跟她聊了起来。
我看出端倪,自然在点菜时能磨蹭些就磨蹭些。结果老大当天的确太过了,挺大声的问那个女孩:“你们这里的服务员是不是都像你这么漂亮啊?”引得旁边几桌人都往这边看。
一个销售急忙打圆场:“老* ,注意点,别丢咱们港湾公司的脸。”声音大小也正好能让刚才的几桌人听到。
  老大大怒,一拍桌子,吼道:“什么港湾,我们是华为的。”
  那个销售连忙拿起手机,装打电话跑了出去,我则在旁边笑的差点岔了气。
  
老实人在华为 5 华为3com的老底
  
  华为3com是华为和3com合资的公司,05年底3com买走2%的股份持股51%,成为外企。但是我们出去推销产品时,还是以国产品牌自居,打民族企业牌。
  结果有个客户消息比较灵通,当时就问我们的销售:“现在3com股份高了,利润也都被美国人拿走了大部分,我支持民族产业也不是这么支持的吧。”
  我比较老实,一看销售语塞,急忙上前说明:“*总,您放心,我们任老板有个公司,专门从华为3com往出洗钱的。。。。。。”
  销售当场面如死灰。
  
老实人在华为 6 老大的十一
  
   华为3com有个规定,手机必须24小时on call,3次关机降薪500那个十一,领导有事找老大,打了好几天,总是无法接通,但是并不能确定老大关机,所以非常恼火。上班之后,责问老大,到底。
   老大很诚恳:“家里太偏僻,没信号。”
   “那你会家干什么去了?”
   “收苞谷,苞谷都熟了,家里缺人手。”老大家是农村的。
   “那你怎么回的家?”主任很好奇。
   “可麻烦了,先坐飞机到**。。。。。。。”

2006年07月16日

Radmin服务端保持连接不断问题分析与解决 (zz)

类归于: 百家争鸣 — kermit @ 16:44

作者:grassgrass
Email:? kityest@163.com
1、问题描述
Radmin是一个绝佳的远程控制软件,用来做跳板的后门再好不过了,不过每次连过跳板后,察看跳板连线,可以仍然看见我们和跳板上Radmin的连接,只不过显示为TIME_WAIT,且一直这样。
ProtoLocal Address?Foreign AddressState
TCP?0.0.0.0:1350.0.0.0:0LISTENING
TCP?0.0.0.0:4450.0.0.0:0LISTENING
TCP?0.0.0.0:1030? 0.0.0.0:0LISTENING
TCP?127.0.0.1:1031 0.0.0.0:0LISTENING
TCP?192.168.11.1:139 0.0.0.0:0LISTENING
TCP?192.168.72.1:139 0.0.0.0:0LISTENING
TCP?192.168.168.220:1030 192.168.168.221:1034 TIME_WAIT
UDP?0.0.0.0:445*:*
UDP?0.0.0.0:1026? *:*
UDP?127.0.0.1:123?*:*
UDP?127.0.0.1:1900 *:*
UDP?192.168.11.1:123 *:*
UDP?192.168.11.1:137 *:*
UDP?192.168.11.1:138 *:*
UDP?192.168.11.1:1900*:*
UDP?192.168.72.1:123 *:*
UDP?192.168.72.1:137 *:*
UDP?192.168.72.1:138 *:*
UDP?192.168.72.1:1900*:*
UDP?192.168.168.220:123?*:*
UDP?192.168.168.220:1900 *:*
2、问题分析
初步猜测应该是setsocketopt设置超时有问题,可能是设置了无限超时?
调试Radmin服务端,下断点在setsocketopt,结果如下:
第一次断下来
71A42E30 >8BFFMOV EDI,EDI
71A42E32?55PUSH EBP
71A42E33?8BECMOV EBP,ESP
71A42E35?837D 0C 00CMP DWORD PTR SS:[EBP+C],0
71A42E39?0F84 25010000 JE WSOCK32.71A42F64
71A42E3F?8B45 10 MOV EAX,DWORD PTR SS:[EBP+10]
71A42E42?837D 0C 06CMP DWORD PTR SS:[EBP+C],6
71A42E46?8B4D 14 MOV ECX,DWORD PTR SS:[EBP+14]
71A42E49?74 75? JE SHORT WSOCK32.71A42EC0
71A42E4B?FF75 18 PUSH DWORD PTR SS:[EBP+18]
71A42E4E?51PUSH ECX
71A42E4F?50PUSH EAX
71A42E50?FF75 0C PUSH DWORD PTR SS:[EBP+C]
71A42E53?FF75 08 PUSH DWORD PTR SS:[EBP+8]
71A42E56?E8 09000000? CALL <JMP.&WS2_32.#21__setsockopt@20>
71A42E5B?5DPOP EBP
71A42E5C?C2 1400 RETN 14
71A42E5F?90NOP
71A42E60?90NOP
71A42E61?90NOP
71A42E62?90NOP
71A42E63?90NOP
71A42E64- FF25 0010A471 JMP DWORD PTR DS:[<&WS2_32.#21__setsocko>; WS2_32.setsockopt
察看堆栈:
0012F808 0096D367/CALL 到 setsockopt 来自 0096D362
0012F80C 0000007C|Socket = 7C
0012F810 0000FFFF|Level = SOL_SOCKET
0012F814 00000080|Option = SO_LINGER
0012F818 0012F844|Data = 0012F844
0012F81C 00000004\DataSize = 4
0012F820 0000FFFF
0012F824 0012F84C
0012F828/0012F850
0012F82C|009652F2返回到 009652F2 来自 0096D340
0012F830|00000080
0012F834|0012F844
0012F838|00000004
0012F83C|0012F870
0012F840|001D0406
0012F844|00010001
0012F848|0012F870
0012F84C|0000007C
0012F850]0012F884
可以看到,它设置了SO_LINGER选项,值为0×00010001
第二次断点:
71A42E30 >8BFFMOV EDI,EDI
71A42E32?55PUSH EBP
71A42E33?8BECMOV EBP,ESP
71A42E35?837D 0C 00CMP DWORD PTR SS:[EBP+C],0
71A42E39?0F84 25010000 JE WSOCK32.71A42F64
71A42E3F?8B45 10 MOV EAX,DWORD PTR SS:[EBP+10]
71A42E42?837D 0C 06CMP DWORD PTR SS:[EBP+C],6
71A42E46?8B4D 14 MOV ECX,DWORD PTR SS:[EBP+14]
71A42E49?74 75? JE SHORT WSOCK32.71A42EC0
71A42E4B?FF75 18 PUSH DWORD PTR SS:[EBP+18]
71A42E4E?51PUSH ECX
71A42E4F?50PUSH EAX
71A42E50?FF75 0C PUSH DWORD PTR SS:[EBP+C]
71A42E53?FF75 08 PUSH DWORD PTR SS:[EBP+8]
71A42E56?E8 09000000? CALL <JMP.&WS2_32.#21__setsockopt@20>
71A42E5B?5DPOP EBP
71A42E5C?C2 1400 RETN 14
堆栈:
0012F80C 0096D367/CALL 到 setsockopt 来自 0096D362
0012F810 00000078|Socket = 78
0012F814 0000FFFF|Level = SOL_SOCKET
0012F818 00000080|Option = SO_LINGER
0012F81C 0012F84C|Data = 0012F84C
0012F820 00000004\DataSize = 4
0012F824 0000FFFF
0012F828 0012F848
0012F82C/0012F850
0012F830|00965419返回到 00965419 来自 0096D340
0012F834|00000080
0012F838|0012F84C
0012F83C|00000004
0012F840|0012F864
0012F844|0012F870
0012F848|00000078
0012F84C|00010001
0012F850]0012F884
可见第一次与第二次相同
F9,没有下个断点,可见只有这两处,上网搜索SO_LINGER选项,其描述如下:

/* 当连接中断时,需要延迟关闭(linger)以保证所有数据都
   * 被传输,所以需要打开SO_LINGER这个选项//注:大致意思就是说SO_LINGER选项用来设置当调用closesocket时是否马上关闭socket
   * linger的结构在/usr/include/linux/socket.h中定义://注:这个结构就是SetSocketOpt中的Data的数据结构
   *  struct linger
   *  {
   *   int l_onoff;  /* Linger active */ //低字节,0和非0,用来表示是否延时关闭socket
   *   int l_linger; /* How long to linger */? //高字节,延时的时间数,单位为秒
   *  };
   *  如果l_onoff为0,则延迟关闭特性就被取消。如果非零,则允许套接口延迟关闭。
   *  l_linger字段则指明延迟关闭的时间
   */
更具体的描述如下:
若设置了SO_LINGER(亦即linger结构中的l_onoff域设为非零,参见2.4,4.1.7和4.1.21各节),并设置了零超时间隔,则closesocket()不被阻塞立即执行,不论是否有排队数据未发送或未被确认。这种关闭方式称为“强制”或“失效”关闭,因为套接口的虚电路立即被复位,且丢失了未发送的数据。在远端的recv()调用将以WSAECONNRESET出错。

若设置了SO_LINGER并确定了非零的超时间隔,则closesocket()调用阻塞进程,直到所剩数据发送完毕或超时。这种关闭称为“优雅的”关闭。请注意如果套接口置为非阻塞且SO_LINGER设为非零超时,则closesocket()调用将以WSAEWOULDBLOCK错误返回。

若在一个流类套接口上设置了SO_DONTLINGER(也就是说将linger结构的l_onoff域设为零;参见2.4,4.1.7,4.1.21节),则closesocket()调用立即返回。但是,如果可能,排队的数据将在套接口关闭前发送。请注意,在这种情况下WINDOWS套接口实现将在一段不确定的时间内保留套接口以及其他资源,这对于想用所以套接口的应用程序来说有一定影响。

这是网上的解释
主要是影响close socket时的动作
知道了问题的原因,我们就动手修改一下试试
0012F80C 0096D367/CALL 到 setsockopt 来自 0096D362
0012F810 00000078|Socket = 78
0012F814 0000FFFF|Level = SOL_SOCKET
0012F818 00000080|Option = SO_LINGER
0012F81C 0012F84C|Data = 0012F84C
0012F820 00000004\DataSize = 4
0012F824 0000FFFF
0012F828 0012F848
0012F82C/0012F850
0012F830|00965419返回到 00965419 来自 0096D340
0012F834|00000080
0012F838|0012F84C
0012F83C|00000004
0012F840|0012F864
0012F844|0012F870
0012F848|00000078
0012F84C|00010100//原来的00010001表示延时256秒,将延时改为1秒
F9运行,用客户端连接,连上后再断开,察看服务端连线,发现以前总是显示为TIME_WAIT的连接,现在马上消失了,至此问题解决:)
3、Radmin修改
Radmin的保护措施做的还是很不错的,它的真正的执行程序是一个RES资源,主程序只负责将其解压缩到内存中并执行,如果要修改就需要自己解压缩,修改后再自己压缩了放回去,具体怎么做我就不说了:)
提示:如果要重复我一样步骤,直接下setsocketopt是断不下来的,先下jmp eax ,断下来后F8一次,再下setsoketopt断点,好了,就提示这么多了。

2006年07月6日

话说北京公交一卡通中的陷阱(zz)

类归于: 息息相关/国家政策 — kermit @ 08:50

北京公交一卡通已经轰轰烈烈等上人们的生活舞台,几个月来,确实给我们的生活带来很大方便, 但其中有些人为的陷阱也渐渐显露出来,下面一一列举:
1、交费没有发票,只是给一张打印的小条,而这个小条还暗藏玄机,后面会详细说。真不知道公交公司这样1年会逃多少税。
2、司机行驶时刷卡器上的站和实际不一致。经常是出了始发站若干站后,司机高兴了才一下就按倒现在的站上。结果明明是十站地,而被误认为超过十站,被刷1.6元。自己乘车发现时,不知道被多刷几次了,以后每次都仔细看好,然后和售票员吵架,就为这1块钱。更有一次,坐3站地,结果下车时还是上车的站号,好像根本没走,郁闷……
3、办卡押金20元。国家有规定,像这种情况收取的押金不能高于卡的成本,于是公交公司宣称自己用的材料是环保的,成本不是正常的4元,而是20元。呵呵,我的钱也是环保材料的,每10元都能顶100元花,有人信吗?
4、办卡点多,退卡点少。昨天新闻报道的,全市300多个办卡点,而只有10个退卡处,难度可想而知。当记者亲自到退卡处办手续时,公主坟的不能办理,让去动物园。到动物园才知道,退卡还需要交回当初办理时的打印凭证。大家差不多当时就给扔了吧,因为当时办卡时没有人提示我们需要保存这个小纸条。呵呵,甭指望退那20块钱了。幸好我还留着呢,找出来一看,也傻眼了。打满了字的纸条变成了白纸,该死的公交公司竟然用热敏纸,3个月后就全部退色,变成白纸,这下好了,我的证据也就不存在了,大家都不用退了。
5、如果你的卡上有超过100元的费用,退卡时要小心了,因为公交公司为“防止恶意大额存退款,参照其他城市做法”,将会收取20%的手续费,雁过拔毛……
哪位还有我没发现的,说出来分享啊。

Copyright @ 2006-2010 houquner.com. All Rights Reserved.   京ICP备09057126号