UwAmp——我用过最好用的WAMP Server[修改版放出]

2014-04-07 修改版公开放出
给作者发邮件、发twitter @他,不过作者鸟都不鸟我啊。
算了,直接将我的修改版放出来给大家下载。
链接:http://pan.baidu.com/s/1oy4bk#提取密码=385a


WAMP,注意前面有个W,自然是在windows下使用。ArchLinux下面直接pacman几下就装完了,不用windows下这么麻烦。因此,在使用windows的时候,WAMP就是必不可少的了。
虽然自己手动去下载php , apache ,mysql 安装配置下也很容易,不过重复的事情做多了就会觉得麻烦了。因此,WAMP存在的必要性就有了。平常在公司开发主要是在Linux下面。不过我偶尔下在 windows下面调试东西,比如玩完游戏之后发现有个东西要修改下,此时再重启进入Linux当然是不太方便的。

试用过wamp ,  xampp 诸多 Xamp软件之后,找到一个很好用的工具:UwAmp,不过这货不是开源的。
最初我用的是Apache的好朋友:xampp,开源,也算不错了,这个工具用了两年多吧,最少。
WAMP server也用了好久,还针对它做了一些修改( http://git.ihacklog.com/repo/WampServer.git/log/ ),不过WAMP 这货也不是开源的。wampmanager.exe这货不是wampserver作者写的,而是直接没有修改源代码的情况下使用了Aestan Tray Menu(Delphi写的),这个万能托盘程序,通过修改同名exe的ini文件的读取来配置这个托盘程序的行为。 (要了解详情请见:http://tunps.com/wampserver-aestan-tray-menu ,这位兄弟的文章说得很清楚), WAMP server就是以delphi写的万能托盘程序+一堆PHP脚本(以cli方式执行)来实现的。而且,从用户体验来看,那些个配置项的切换什么的,都非 常不方便,经常容易点错。特别是PHP配置,那里拉出来比iphone 10的长度还要长……

某年某月某日,我在google上游荡,找到一个叫UwAmp的WAMP.
试用之后发现非常喜欢(也不是说非常优秀,只是说相对之绝大部分同类程序来说,它确实很不错)。无论是UI体验设计还是功能设计上,都很不错。如php版 本切换方便,可以直接点击一下鼠标从php.net官网下载新的php版本,无需手动下载解压什么的。php主要配置的修改,apache配置和虚拟机的 添加,都可以在这个小小的程序上完成。

官方的介绍:
UwAmp is a Wamp Server with Apache MySQL PHP and SQLite
优点官方也说了:
Without installation : UwAmp is available as a Zip archive, just unpack it and you can run the wamp server. UwAmp doesn't install files in the system to keep it clean.

Easy interface : UwAmp is provided with a management interface that lets you start or stop the server with one click.

Multi PHP Version : Change PHP version in one click to test compatibility and download new PHP version directly from php.net repository.

CPU Monitoring : Real time Apache and MySQL process CPU monitoring.

U3 Mode : Can be run from a USB stick.

貌似是完美的东西了?
我在试用后发现它不支持apache 2.4 + php 5.5.x以上的版本。
可是——它不是开源的!
我试图联系作者,看作者能不能把源码给我,我好修改下,让它支持apache 2.4.
不过邮件都发送过去几天了,作者一直没有回复。

好吧,软的不行,只能来硬的了。直接拿二进制代码开刀——对UwAmp.exe进行修改。
apache 2.4的最主要变化和对此WAMP程序最主要的影响是:
1.访问控制指令的变化
2.php的apache模块文件名的变化。
3.基于名称的虚拟主机,在2.4以上版本中不需要再添加NameVirtualHost "*:80"指令了

对于第1点,举例说明吧:
2.2 configuration:
Order deny,allow
Deny from all

2.4 configuration:
Require all denied
----------------
2.2 configuration:

Order allow,deny
Allow from all

2.4 configuration:
Require all granted
----------------
2.2 configuration:
Order Deny,Allow
Deny from all
Allow from example.org

2.4 configuration:
Require host example.org

这是官方文档中的例子
第2点主要是php5.5 的apache模块文件对应的名称是 php5apache2_4.dll
第3点的话,修改相关代码,使之不再自作聪明地在httpd.conf中写入NameVirtualHost "*:80" 这行配置。

其实这前面两点也可以通过曲线救国的方式实现:
对于第1点,启用access_compat_module就行了:
LoadModule access_compat_module modules/mod_access_compat.so
对于第2点,委屈一下apache , 将 php5apache2_4.dll 重命名为 php5apache2_2.dll
这样按理来说应该是行的,不过我并未测试。
用兼容2.2的方式的访问控制命令,还有就是修改2.4的模块名为2.2的,这不是我喜欢做的事。
因此,我还是以直接修改UwAmp更加彻底的方式来实现。

拖入IDA pro, 在.rdata段看到了相关的配置指令:
Order deny,allow,0Ah, 0,9,Deny from all,0Ah, 0
我只需要修改为
Require all denied,0Ah,0
就OK了。

Order deny,allow,0Ah, 0,9,Deny from all,0Ah, 0
修改为
Require all denied,0Ah,0

Allow from 127.0.0.1 localhost,0Ah,0
修改为
Require ip 127.0.0.1,0A,0
这里0Ah 即是\n 换行的ASCII码, 09 是\t,  00 是字符串的结束标志.
前面这几处只是数据的修改,实际上与这几个字符串相关的代码也是需要调整一下的。
大概看了下写配置的那个函数,接收两-三个参数,一个是字符串指针,还有一个是字符串的长度。因此,这里我们字符串的长度给它改变了,自然要按照实际的长度给它修改回去。
以Order deny,allow,0Ah, 0为例,原本是 push 11h的(字符串的长度是16+1,这个1是\n),
我们修改为Require all denied,0Ah,0后,要修正为push 13h,其它的依此类推……

然后把 a2_2_1
a_Apache2_2_dll
aChe2_2_dll
几个全局字符串变量对应的值中的2_2修改为2_4即可。此其二。
最后一项修改:通过搜索文本: meVirtualHost "
定位到aMevirtualhost这个变量.再通过交叉引用找到关键跳转,修改跳转达到目的完事。

000918_yDbq_1011704.png


000917_hgrI_1011704.png


经测试,程序不会再自行写入apache 2.4中已经deprecated的配置指令:
NameVirtualHost "*:80"

最后,还有一项需要修正:
localhost
修正为:
127.0.0.1
因为在win7以后,localhost默认都是不指向本地环回地址的。因此,直接用环回地址更安全。

还有就是session.save_path的位置 aSession_save_0 , 我给它从
N;{APACHEPATH}/sessions
修改到了
N;{TEMPPATH}/sessions
放在temp目录下,比放在apache目录下要好。

其实我还想加几个按钮的,不过貌似比较麻烦,这货是C开发的,用wxWidgets做的界面,不是VC默认的东西南北。看了下代码,窗口和按钮控制都是直接绘制的。窗口资源文件都没得。

另外:版本号从2.2.1修改为了8.8.4 ,以示与官方版的区别。
好了,改造完毕。完美支持apache 2.4 + php 5.5.x。

修改版先不放出来,我又发了一封邮件给作者了,希望能得到答复。
还有,要尊重作者的劳动,没有经过作者的允许,修改的东西还是先不放出来吧。如果对方回复了表示不给源码(这个可以理解),然后也不让我发布暴力修改版(这个……)咋办?呃呃,这个嘛,既然你不给面子,我也就不必了……

放两张图吧,没图没真相:


000919_ZZWS_1011704.png

000920_Zlkl_1011704.png

原文地址: http://ihacklog.com/post/uwamp-best-wamp-server-i-have-used.html


转载于:https://my.oschina.net/ihacklog/blog/208084

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值