boost-asio安装以及动静态混编

最近项目中打算使用boost,尝试下载安装。。。

1、下载boost1_51_0的压缩包,解压。

2、进入解压后的目录并运行./bootstrap.sh。

3、booststrap.sh运行完毕之后会提示你运行./b2。官方文档是./b2 install –prefix=PREFIX在这里可以指定编译好的boost库的安装路径。  这里编译asio库需要的,./b2 –with-system –with-thread –with-date_time –with-regex –with-serialization stage

4、建立链接到include和lib  ln -s /usr/include/boost_1_52_0/boost /usr/include/boost  ln -s /usr/include/boost_1_52_0/stage/lib /usr/lib/boost

5、 使用(静态编译system库,其他动态编译)  g++ -o server chat_server.cpp -L/usr/lib/boost -Wl,-Bstatic  -lboost_system -Wl,-Bdynamic  g++ -o client chat_client.cpp -L/usr/include/boost_1_52_0/stage/lib/   -Wl,-Bstatic -lboost_system  -lboost_date_time -lboost_thread  -Wl,-Bdynamic -lpthread

[ZT]IIS错误404已被我解决(iis与.netFrameWork安装顺序不一致)

在win2003下搭建IIS并安装net2.0后运行aspx网站代码提示”HTTP 错误404 – 文件或目录未找到”郁闷了两天多,今天终于被我搞定了。

在这之前网上许多人都提到了以下提到的几点解决方法,但对我这种情况都无效,网上只提到用户访问权限与IIS默认禁止支持asp这两点。但最后我才发现一个很简单的原因,是net2.0安装有问题,因为win2003在默认情况下没有安装IIS,我当时是先安装的net2.0再安装的IIS,结果在IIS的站点的”web服务扩展”这一项中只显示有ASP.NET V1.1并不是ASP.NET V2.0,也就是说net2.0没有起作用,而我要运行的网站程序是基于net2.0开发的,因为在网上有网友发出的解决办法图片中都显示是ASP.NET V2.0,我就纳闷了自己明明安装的是net2.0为什么不显示2.0反而显示是1.1,所以就想起当时的安装顺序来,IIS的出的要比net早的多,只能是net基于IIS服务来为其提供支持,后来从官方网站和搜索的结果来看都推荐先安装IIS后安装net2.0,这正验证的我观点,重新将net2.0与IIS都卸载掉并重新安装IIS,再安装net2.0再重启再一看,正常”web服务扩展”这一项中除了ASP.NET V1.1外多了个ASP.NET V2.0,再设置IIS运行aspx网页一切正常,错误404宣告解除。    所以在此我将出现此错误的解决方法个人认为是比较全面的,整理如下:  继续阅读“[ZT]IIS错误404已被我解决(iis与.netFrameWork安装顺序不一致)”

任务栏左下角图标添加方法

因为windows本身没有提供这样的停靠API,自然也没有提供有效排序依据,所以需要三方联合制定一套系统注册规则来保证。在三方的技术团队通力合作下,参照windows下很多系统API的调用规则,设立如下规则:

在注册表 HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorer下建立一个项:StartButtonDock,然后顺次注册子项来记录安装先后。 继续阅读“任务栏左下角图标添加方法”

一个老中医几十年的心血(民间秘方)

震惊世界的中国秘方一个老中医几十年的心血民间秘方,里面的方子都是一个老中医几十年的心血~~很强~~一定要看
  
  说
  1本报告所用药物,以食物为主,绝对无毒。
  2为使读者易懂,剂量单位均用旧制,如:斤、两、钱等,有的用碗,是指一般性中碗。
  3所用药物凡带有*记号的一般可到中药店买,药店都有。
  4报告中所讲的醋,就是一般食用醋,如果用白醋的,报告中另有注明。
  5报告中所讲的白酒,是指50度以上的白酒。
  6有些疾病治疗期间需忌口,是指用药期间如不忌口,则会影响疗效。 7本报告共三部分,每部分最后均附有防病保健知识,本报告是一专家用了近十年时间,翻阅了大量的医疗保健知识书刊,结合古代民间流传已久的传统秘方整理出来的宝贵资料。它汇聚了古今诸多名方、妙方、秘术,不仅能为百姓带来方便,是每个家庭必备的报告资料,而且,对一些中西医专业医生来讲,也是很有参考价值的。

继续阅读“一个老中医几十年的心血(民间秘方)”

Linux 系统文件描述符继承带来的危害

[ 目录 ]

0×00 背景

0×01 POC

0×02 深入利用

0×03 解决方案及后话
0×00 前言
在初学linux编程的时候,都会知道这样一个概念:当你用fork建立一个子进程,父进程的所有内容会被“完完整整”的复制到子进程中。子进程是父进程的一个clone体,除了pid不同,其余一切相同。

再试想一下这样的场景:在Webserver中,首先会使用root权限启动,以此打开root权限才能打开的端口、日志等文件。然后降权到普通用户,fork出一些worker进程,这些进程中再进行解析脚本、写日志、输出结果等进一步操作。

然而这里,仔细思考一下,就会发现隐含一个安全问题:子进程中既然继承了父进程的FD,那么子进程中运行的PHP或其他脚本只需要继续操作这些FD,就能够使用普通权限“越权”操作root用户才能操作的文件。

0×01 POC
为了验证这个想法,我们做了一个POC。测试环境apache2.2.4+mod_php 5.2.14

首先我们查看任意一个apache的worker进程的fd:
[root@testplat ~]# pidof httpd

11117 21009 10472

[root@testplat ~]# cd /proc/21009/fd

[root@testplat fd]# ls -alh

继续阅读“Linux 系统文件描述符继承带来的危害”

linux gdb调试工具简介

http://xqzhao.blogchina.com/3456709.html
一:列文件清单
1. List
(gdb) list line1,line2
二:执行程序
要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符()和外壳通配符(*、?、[、])在内。
如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。
利用set args 命令就可以修改发送给程序的参数,而使用show args 命令就可以查看其缺省参数的列表。
gdb)set args –b –x
(gdb) show args
backtrace命令为堆栈提供向后跟踪功能。
Backtrace 命令产生一张列表,包含着从最近的过程开始的所以有效过程和调用这些过程的参数。 继续阅读“linux gdb调试工具简介”