内容简介:今年年初,本站用了某兄弟写的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正则常用的有四种操作: 验证、切分、提取、替换
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Tango with Django
David Maxwell、Leif Azzopardi / Leanpub / 2016-11-12 / USD 19.00
Tango with Django is a beginner's guide to web development using the Python programming language and the popular Django web framework. The book is written in a clear and friendly style teaching you th......一起来看看 《Tango with Django》 这本书的介绍吧!