目录
前言
有的时候做题要求匹配某个参数,在进行MD5加密后,开头、结尾或者是中间某段被指定要等于某几个字符,例如这道题:
<?php
highlight_file(__FILE__);
if(isset($_POST['password'])&&isset($_POST['e_v.a.l'])){
$password=md5($_POST['password']);
$code=$_POST['e_v.a.l'];
if(substr($password,0,6)==="c4d038"){
if(!preg_match("/flag|system|pass|cat|ls/i",$code)){
eval($code);
}
}
}
这里要求 password 在进行 MD5 加密后,开头六个字符是 c4d038 ,本身不算很难的逻辑,但是每次使用都需要重新编辑脚本,不如写成GUI程序,一劳永逸。
原理
循环增加数字,从1开始,对该数字进行MD5加密,判断是否符合要求。
软件介绍
![软件图标](https://img-blog.csdnimg.cn/f0eb892a5e064297ad05145c42f30bea.png)
软件的本体就是一个34.4MB的exe可执行程序,打开软件,界面如下:
![软件界面](https://img-blog.csdnimg.cn/b5c1fc1c573e4a2fa215558119ede448.png)
在左上第一个框内输入需要匹配的字符,左上第二个框填入开始是匹配开始的位置索引(从1开始),填写好参数后,点击右上开始,即开始运行,内部十个线程,速度跑满,下方进度条记录进度。
软件一共有三个模式,分别是匹配开头,匹配结尾以及匹配包含,匹配开头和匹配结尾没什么好介绍的,见名知意,但是匹配包含需要稍作讲解。
![可选模式](https://img-blog.csdnimg.cn/ed37ca27c9734798a93177f5568a4cc3.png)
- 匹配开头:匹配以设定字符开头
- 匹配结尾:匹配以设定字符结尾
- 匹配包含:
- 当索引为-1,即为任意位置,只要包含即匹配
- 当所有为其他数,例如为3,即加密后第三位开始要与设定字符相匹配
下载地址
百度网盘下载https://pan.baidu.com/s/1NHiWghb0xgkVL_AZkYNl3A?pwd=dbcl