不知道大家是否使用过网络数据抓包工具WireShark,Wireshark能够捕捉出入网卡的每一帧网络包,并能够详细列出网络包的源IP地址、目的IP地址、端口号、协议类型以及数据内容等信息。在数据(Data)一栏,Wireshark按照下图样式将数据(Data)按十六进制以及字符的形式打印出来。这样的打印信息清晰而明了,下面我们就来编写一个格式化数据输出函数hexdump吧。 阅读全文
普通的TCP通信无法保证数据的安全,它随时可能被第三方截获而泄漏通信双方之间的隐私,这显然是我们不希望看到的,尤其在跟用户名、密码、个人信息息息相关的通信过程(如网上银行交易、机密文件传输等等)尤其看重数据交互的隐秘性,所以我们常常用SSL协议来建立安全保密的通信,SSL协议能够保证交互双方的数据按密文方式传输,第三方在没有私钥的情况下几乎无法破解,从而到达保密的目的。究竟SSL是如何交互数据来确保安全的,很多人却不得而知,为了解答大家的疑惑,这里详细介绍一下SSL的交互过程。 阅读全文
我们在开发程序提供接口给第三方使用时,为了隐藏函数API的实现细节,最常用的办法便是将这些函数API封装成函数库以后提供给第三方调用。而这种函数库又分为静态库与动态库,所谓静态库就是在程序编译的时候,编译器会将需要调用的函数块直接整合到目标代码中,程序运行时对其不产生依赖。而动态库编译时则不会被整合到可执行文件中,在程序运行的过程中才会从动态库中加载相应的函数。 阅读全文
想必大家都有躺在床上玩手机的时候,为了阅读方便,我们不得不恻翻手机,使得一行行的文字跟视线平行,这时候问题就来了,手机恻翻以后,由于重力感应器察觉到这一变化,屏幕上的UI界面也跟着切入了横屏模式,文字跟视线保持垂直,背离了我们希望阅读方便的目的,所以我们需要取消手机的自动横屏功能。貌似现在Symbian跟Android在“设置”内都能找到“取消自动横屏”这一功能,但运行了iOS系统的iPhone在“设置”内就找不到这一选项,让很多新手犯了愁。 阅读全文
大学时期曾看过《练习曲》,台湾一部单车环岛纪录片般的文艺电影,更加坚定了我去台湾自由行的勇气。早些天,一部国产纪录片《318国道》仿佛带着自己从上海行径到了西藏,一路上的风土人情故事让我发现原来周遭那么多人,无论平凡还是风光,都有自己的生活需要演绎,酸甜苦辣、身不由己,都无法摆脱某些与生俱来的束缚,都在按照既定轨道周而复始的运转。这让我重新审视自己的生活,多少能从他们的故事中找到一些安慰。前段日子有个交情尚浅的朋友说国内她想去的地方只有四川跟西藏,想约上我一同去西藏,我当时诧异于她的动机与勇气,问她为何那么想去西藏,她说那里离天堂最近,是个忘却烦恼的圣地。我恍然大悟般的理解了她的想法,迫于现在的工作处境与肩负的责任,恐怕那段西藏之旅得拖延到明年或者往后。 阅读全文
入冬了,北京的冬天让我这个南方孩子有了宅的理由,屋里的暖气谈不上温暖,勉勉强强不被冻着罢了,依旧要盖很厚的被子,将自己裹得严严实实方能睡得安稳。大概是天冷的缘故,最近失眠严重。好不容易睡着了,常常会梦到过去的很多场景,醒来却发现那原来是场梦,徒曾感伤与遗憾。现实中的失落在梦境中找到了一丝安慰,解脱了一时却撩起了伤疤,猛然觉着自己很可怜,只能靠一味盲目的乐观搀扶着那摇摇欲坠的灵魂。 阅读全文
Linux内核与用户空间通信的方式目前主要有9种,分别是内核启动参数、模块参数与 sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs。Netlink是一种特殊的文件描述符(套结字),为2.6.14及更高版本的Linux所特有,是一种在内核与用户应用间进行双向数据交互的便捷方式,用户态应用调用标准的套结字API 就可以使用netlink提供的强大功能,内核态需要调用专门的内核 API 来使用netlink。Netlink应用已经相当广泛,例如,Linux系统的网络防火墙分为内核态的netfilter和用户态的iptables,netfilter与iptables的数据交换就是通过Netlink机制来完成。
阅读全文
人有两张口,一张说出去,一张往肚子里咽。
人有两颗心,一颗给了你,一颗还得留给我。
朋友远淡风清,喧闹也无半点,与往日的情境大不一样。容得下两个人,容不下自己了。在生活的染缸里,惊讶地发现内心有些柔软的角落开始生出突兀的疤痕,陌生得有些晃眼。心,用清净的字眼保存在更隐秘的处所,只好无奈地舒口气。 阅读全文
在Linux下,某些涉及到底层或系统级操作的程序,如tcpdump、wireshark等,我们不得不以root(高级用户)权限运行方能正常工作,我们在设计居如此类的程序时,能否在程序内部判断程序自身是否以root(高级用户)权限运行,以便于提示用户切换到高级权限下运行呢?答案是肯定的。 阅读全文