转自:Yes1000
以前见过很多文本文件批量替换工具,也用过很多文本文件批量替换工具,但功能都不令人满意。最严重的问题就是不支持正则表达式。
站长们肯定也有很多人用过,一般在网站被挂木马时用来替换掉挂马的代码。
如果所有的文件里挂马的代码都一样,以前那些替换工具完全可以胜任。
但是后来我发现很多网站被挂马时每个文件里挂的代码不一样,比如,文件一里挂的代码是
<script alt="541515" src=//www.bxs.cc/muma.js></script>但是文件2里木马挂的代码却是
<script alt="541525" src=//www.bxs.cc/muma.js></script>文件3里……
总之每个文件里挂的代码都有一点不一样的地方,这样就导致那些替换工具无能为力:他们只能替换普通的字符串。
当时很想有一个支持正则表达式的批量替换工具,支持正则的话上面这样挂的木马很轻松就能处理掉。但是找了很久都没有找到,要么能批量,但不支持正则;要么支持正则,但不能批量。
这几天正好在研究C#字符串和正则表达式的问题,于是研究了几天,做出了这个东西。感谢Friedl、感谢Nagel,感谢他们让我了解C#和正则表达式。


正则表达式的功能是非常强大的。就像很多读过Friedl的书的人说的一样,很多自以为很了解正则表达式的人其实只了解了一点正则表达式的皮毛,但是这点皮毛就能让你体验到正则表达式的强大。
下面给两个站长们可能用的着的例子:
正则表达式应用实例:
1.删除文件中所有引用www.bxs.cc网站的JS的脚本或框架代码
勾选正则表达式,查找字符串:
<(script|iframe) +[^>]*www.bxs.cc[^>]*>[^<]*</\1>替换为空
此正则可以删除掉任何形式的框架或JS引用了bxs.cc文件的代码。
2.删除如上文所提的JS挂马代码<script alt="541515" src=//www.bxs.cc/muma.js></script><script alt="541525" src=//www.bxs.cc/muma.js></script>
查找字符串
<script alt=\"[\d]*\" src=//www.bxs.cc/muma.js></script>替换为空
运行环境:
本软件只能运行于 Microsoft .NET Framework 2.0 或者更高版本环境