内容简介:今年年初,本站用了某兄弟写的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
× 用微信扫描并分享
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 正则文本替换器 RegexReplacer v1.1 发布
- c# – 如何超越这个正则表达式替换?
- JS正则表达式替换url参数的方法
- Visual Studio 中使用正则表达式来进行查找替换
- SQL Server中利用正则表达式替换字符串的方法
- 出来混总是要还的-JS正则常用的有四种操作: 验证、切分、提取、替换
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Fluent Python
Luciano Ramalho / O'Reilly Media / 2015-8-20 / USD 39.99
Learn how to write idiomatic, effective Python code by leveraging its best features. Python's simplicity quickly lets you become productive with it, but this often means you aren’t using everything th......一起来看看 《Fluent Python》 这本书的介绍吧!
Base64 编码/解码
Base64 编码/解码
HSV CMYK 转换工具
HSV CMYK互换工具