官方说明地址:
internals:windows:stepbystepbuild_sdk_2
以php7.2为例
1.首先下载安装VS2017,安装C++扩展
![89657a75888be5b946745a31e2317ee8.png](https://i-blog.csdnimg.cn/blog_migrate/a09ec693e2d24d7555a99447339b53d4.jpeg)
2.下载php源代码
https://windows.php.net/download/
![bfbc85e58be26f583352f13138cb7451.png](https://i-blog.csdnimg.cn/blog_migrate/1840cfb40d86398e3dfd83e95a5d728e.jpeg)
3.clone php dev sdk
git clone https://github.com/Microsoft/php-sdk-binary-tools
4.环境配置
![e6c64b86dcc333acc6f3e15a065c8c07.png](https://i-blog.csdnimg.cn/blog_migrate/32663e930df7524998374dfb3bb78236.png)
执行命令 phpsdk_buildtree phpdev
创建目录结构
将php源码放入下图目录中
![1ee42f2af828bf71059f8c039d635d4d.png](https://i-blog.csdnimg.cn/blog_migrate/792e87eae87e0b915c84f768f2bb967b.png)
下载依赖包 windows.php.net - /downloads/php-sdk/deps/vc15/x64/
![2935323a91aeab9c9303a0cf1d139a21.png](https://i-blog.csdnimg.cn/blog_migrate/1f8154e171606929a7695a04ad70eb24.jpeg)
解压放入deps目录中
![cba3b2e43a6b69d777562901e9919a61.png](https://i-blog.csdnimg.cn/blog_migrate/f9907616bf74b252cd6843528b5a9131.png)
如果你网络环境比较好的话,也可以使用phpsdk_deps -u
来在线安装
5.编译php
在phpsdk-vc15-x64.bat 中启动cmd
![fa8d40bdfb6cd4556ebfd9caa828cdf4.png](https://i-blog.csdnimg.cn/blog_migrate/af87b3ae72fa437f26f31f003cdd077f.png)
cd 进入phpdev中的php源码目录
执行
buildconf
再执行
configure --help
继续执行
configure --enable-debug --enable-phpdbg
编译
nmake
编译的php文件在源码目录下
![591185c242c4ec568d8b1f0811e42e2a.png](https://i-blog.csdnimg.cn/blog_migrate/99d724e28894f0c419cc7b4fb55264b2.jpeg)
在目录下创建php文件
![68a96cfa204d0c86fc0db5754ac4f485.png](https://i-blog.csdnimg.cn/blog_migrate/b8f3a451794244ab06a6a1b75538607e.png)
php源文件下断点
![9fe91c97802d593f6eaad96542c98ea7.png](https://i-blog.csdnimg.cn/blog_migrate/1ef7ca5e2c68aac01335af4e7a41adf7.jpeg)
使用编译出来的php.exe 运行 poc.php
![906045c8a9f3160eabe7d56523f37d93.png](https://i-blog.csdnimg.cn/blog_migrate/ba76af246bd556c3b2e8f9b5527960b5.png)
vs-调试-附加到进程,附加到php.exe
![2383f07f95c7e5dd00ec77186b54967d.png](https://i-blog.csdnimg.cn/blog_migrate/dfb5299f036f8e72a09768bbb63e77e5.jpeg)
附加成功以后,在php的cmd里面按回车,继续执行程序。
成功断下!调试这个的主要目的是,有时候做ctf题目的时候,配合php源码调试可以获得到,很多隐藏的小技巧
![8afcd0a926800ae567f4d8c0d0394a71.png](https://i-blog.csdnimg.cn/blog_migrate/88154e7b67cffa1be5eef82ac7d60833.jpeg)