分类 PHP 下的文章

PHP 判断是否为域名|判断是否为正确格式的域名

!!!注意这代码判断的是域名,不是 URL!!!

因为项目有需求,首先想到去 Google 搜,翻了几页,未找到能满足自己需求的代码,所以自己动手造了个轮子

要想判断一个域名格式是否正确,得先知道域名是由哪些字符串组成的

Google 查阅了一些资料,得出一下要求

PS:在下述中,“域名” 所指的是,如 nowtime.cc 中的 nowtime

  1. “域名” 只能由 大小写字母数字- 组成
  2. “域名” 不能以 - 开头或结尾
  3. “域名” 每段长度最小 1 位,最长 63 位(不包含 “域名后缀”,以 . 分段)
  4. “域名总长度” 不能超过 255 位(不包含域名后缀;不包含 .

知道要求后,就可以开始造轮子了,然后就有了以下代码:(注意这代码判断的是域名,不是 URL)

- 阅读剩余部分 -

0x00 前言

前几天去玩了 pwnhub 公开赛的题目,源码下载之后发现是 PHPJiaMi 加密。之前有分析过 phpjm 加密并写出过解密文件,所以研究下这个 PHPJiaMi。
PHP 免扩展加密的主流加密方法采用了 ascii 码 129-255 的乱码来实现变量名、函数名混淆,编辑器打开后就是一堆乱码,造成不可读。

加密流程:源码 -> 加密处理(压缩,替换,BASE64,转义)-> 安全处理(验证文件 MD5 值,限制 IP、限域名、限时间、防破解、防命令行调试)-> 加密程序成品,再简单的说:源码 + 加密外壳 == 加密程序 (该段出处)

0x01 解密准备

这里做演示,我写了 phpinfo() 然后去 http://www.phpjiami.com/ 生成加密文件,打开之后,果然都是一片乱码。
使用代码修复工具 http://zhaoyuanma.com/phpcodefix.html 将 ascii 不可见字符的变量修复成正常的变量名,再 PHP 代码美化,方便下一步分析。

- 阅读剩余部分 -