PowerShell正则替换实战

栏目: 编程工具 · 发布时间: 6年前

内容简介:今年年初,本站用了某兄弟写的Wordpress Open Social 付费版插件,但是该插件和我的网站的另外一个QA插件有冲突,需要注释 Open Social 插件的其中一行代码。以前都是岁月静好,可是从4.0版本开始,原作者对PHP文件源码做了简易的混淆处理。把页面中的字符串转换成了16进制和8进制,导致我升级插件后找不到需要注释的代码行。都是同行,何必相互为难?我的目标就是要把PHP源文件中的字符串从16进制和8进制转换成原始字符串。

今年年初,本站用了某兄弟写的Wordpress Open Social 付费版插件,但是该插件和我的网站的另外一个QA插件有冲突,需要注释 Open Social 插件的其中一行代码。以前都是岁月静好,可是从4.0版本开始,原作者对 PHP 文件源码做了简易的混淆处理。把页面中的字符串转换成了16进制和8进制,导致我升级插件后找不到需要注释的代码行。

都是同行,何必相互为难?

我的目标就是要把PHP源文件中的字符串从16进制和8进制转换成原始字符串。

比如要把: “\x3c\151\x6e\x70\165\x74\x20\x74\x79\160\x65\x3d\x22\x68\x69\x64\x64\x65\x6e\x22\x20\x69\144\x3d\x22”

转换成:

“<input type=”hidden” id=””

字符串是以”\x或者\数字开始,\x打头的是16进制,\数字打头的是8进制

#
# 解密委托
#
$DecodeEvaluator = 
{
    param([string]$Str)

    $Str = $Str.Substring(1,$Str.Length-2)
    $tokens = $str -split '\\' | select -Skip 1
    $result =  $tokens  | foreach {
        $char = $_
        if($char -like 'x*')
        {
            [char]([convert]::ToInt32("0"+$char,16))
        }
        else
        {
            [char]([convert]::ToInt32([int]$char,8))
        }
    }

   $result = '"{0}"' -f ( $result -join '')
   $result

}

$ErrorActionPreference = 'stop'

# 读取源文件
$text = Get-Content D:\test.php -Raw

# 正在替换,并保存新文件
[regex]::Replace($text, '"(\\(x|\d)).*?"', $DecodeEvaluator) | Out-File D:\test2.php
  • PowerShell正则替换实战
    解密前
  • PowerShell正则替换实战
    解密后

× 用微信扫描并分享


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据挖掘十大算法

数据挖掘十大算法

(美)吴信东(Xindong Wu)、(美),库玛尔 ,(Vipin Kumar) / 李文波、吴素研 / 清华大学出版社 / 2013-5 / 39.00元

《世界著名计算机教材精选:数据挖掘十大算法》详细介绍了在实际中用途最广、影响最大的十种数据挖掘算法,这十种算法是数据挖掘领域的顶级专家进行投票筛选的,覆盖了分类、聚类、统计学习、关联分析和链接分析等重要的数据挖掘研究和发展主题。《世界著名计算机教材精选:数据挖掘十大算法》对每一种算法都进行了多个角度的深入剖析,包括算法历史、算法过程、算法特性、软件实现、前沿发展等,此外,在每章最后还给出了丰富的习......一起来看看 《数据挖掘十大算法》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

SHA 加密
SHA 加密

SHA 加密工具