使用fiddler抓安卓APP数据包并调试PHP程序

来源:互联网 发布:程序员个人简介 编辑:程序博客网 时间:2024/06/07 03:05

我有个这样的需求

要在安卓APP向服务器发起请求的时候调试PHP程序。

把目标分解开来,大概步骤如下

调试PHP使用ECLIPSE+XDEBUG,而XDEBUG触发断点需要get方法传递一个参数或者设置一个COOKIE,我使用的是COOKIE的方法(我认为这种方法比较好)

也就是说,要想办法让APP发起请求的时候带着COOKIE信息,因为APP开发我不熟悉,所以只能想别的办法,我的办法就是HOOK到请求,然后添加上COOKIE值

刚刚好,fiddler除了可以抓取HTTP数据包的能力之外,他也可以修改请求和响应,我需要修改的就是请求。

使用fiddler修改请求的方法有两种,一种是下断点,然后修改请求头,第二种就是写脚本。我用的是第二种方法

在fiddler  的脚本文件中的 OnBeforeRequest方法里添加

        if (oSession.HostnameIs("192.168.1.7")) {
            oSession.oRequest.headers.Add("Cookie", "XDEBUG_SESSION=ECLIPSE_DBGP");
        }

这段代码的意思是 

如果请求的目标地址是192.168.1.7主机的画,就添加一个COOKIE  ,键为XDEBUG_SESSION,值为ECLIPSE_DBGP  ,这个是我使用eclipse触发PHP断电的时候需要的COOKIE信息,到此为止,我的需求就实现了


PS:如果用火狐调试配合ECLIPSE调试php的话可以使用一个 叫做  the  easiest xdebug的插件。


参考资料:http://www.cnblogs.com/tankxiao/archive/2012/04/25/2349049.html#ScriptEditCookie

http://xdebug.org/docs/remote

http://docs.telerik.com/fiddler/KnowledgeBase/FiddlerScript/ModifyRequestOrResponse

修改主机的fiddler 脚本

        if (oSession.HostnameIs("117.34.72.xxx")) {
            oSession.host="192.168.1.7:8080";
        }


ps:经测试 通过cookie触发的xdebug模式,需要第一个cookie就是XDEBUG_SESSION 才能触发,否则不会触发调试模式

通过curl触发可以使用如下命令

curl -H "Cookie: XDEBUG_SESSION=1 "


0 0
原创粉丝点击