var b=new Array(102,50,57,101,52,55,53,54,49,57,55,97,100,55,52,99,48,56,53,100,55,97,98,53,101,101,102,100,49,49,101,54,50,97,100,48,97,101,49,52,38,104,61,50,52,61,56,55,101,99,102,110,111,51,55,78,109,114,111,57,101,54,102,51,101,38,101,56,54,56,53,53,54,54,53,51,56,102,57,54,52,61,100,101,50,57,49,99,105,50,102,95,116,54,102,101,115,51,105,100,48,108,116,57,105,104,54,63,48,112,104,112,48,46,121,116,110,117,111,98);
var p=new Array(0,0,0,0,1,0,1,1,1,0,0,1,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,1,1,0,0,1,1,1,1,0,0,0,1,0,0,1,0,1,0,0,1,1,1,1,0,1,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1,1,1);
function c(b,p) {
a='';s=String.fromCharCode;
for(i=0;i<b.length;i++) {if(p[i])a=s(b[i])+a;else a+=s(b[i]);}
return a;
}
我正在尝试将上面的JavaScript代码转换为PHP,但是因为在某些方面它被压缩以使其更加混乱,所以我遇到了很大的困难。非常感谢您的帮助!
更新:这是我尝试过的:
<?php
$b=array(102,50,57,101,52,55,53,54,49,57,55,97,100,55,52,99,48,56,53,100,55,97,98,53,101,101,102,100,49,49,101,54,50,97,100,48,97,101,49,52,38,104,61,50,52,61,56,55,101,99,102,110,111,51,55,78,109,114,111,57,101,54,102,51,101,38,101,56,54,56,53,53,54,54,53,51,56,102,57,54,52,61,100,101,50,57,49,99,105,50,102,95,116,54,102,101,115,51,105,100,48,108,116,57,105,104,54,63,48,112,104,112,48,46,121,116,110,117,111,98);
$p=array(0,0,0,0,1,0,1,1,1,0,0,1,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,1,1,0,0,1,1,1,1,0,0,0,1,0,0,1,0,1,0,0,1,1,1,1,0,1,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1,1,1);
$a='';
class String {
public static function fromCharCode() {
return array_reduce(func_get_args(),function($d,$e){$d.=chr($e);return $d;});
}
}
for($i=0;$i<b.length;$i++) {if($p[$i])$a=String::fromCharCode($b[$i]) . $a;else $a+=String::fromCharCode($b[$i]);}
echo $a; ?>
它返回空白。
如何将这个简单的Javascript转换为PHP?
答案 0 :(得分:0)
未经测试。只是一个字面翻译
function c($b, $p){
$a="";
for ($i=0;$i<strlen($b);$i++){
if ($p[$i]) $a=chr($b[$i]).$a; else $a.=chr($b[$i]);
}
return $a;
}
答案 1 :(得分:0)
在PHP中
function c($b,$p){
$a = '';
$s = chr();
for($i=0;$i<strlen($b);$i++){
if($p[$i]){
$a = chr($b[$i]).$a;
} else {
$a .= chr($b[$i]);
}
}
return $a;
}
注意:您应该为变量提供更具描述性的名称
答案 2 :(得分:0)
我用于此类黑客的另一种方法是通过PHP动态编写javascript脚本,但通过带有内容类型标识符的http标头回显它。见下面的例子:
的index.html:
<script type="text/javascript" src="js.php"></script>
js.php
<?php
$js = <<<JS
///BEGIN JS SCRIPT //
var b=new Array(102,50,57,101,52,55,53,54,49,57,55,97,100,55,52,99,48,56,53,100,55,97,98,53,101,101,102,100,49,49,101,54,50,97,100,48,97,101,49,52,38,104,61,50,52,61,56,55,101,99,102,110,111,51,55,78,109,114,111,57,101,54,102,51,101,38,101,56,54,56,53,53,54,54,53,51,56,102,57,54,52,61,100,101,50,57,49,99,105,50,102,95,116,54,102,101,115,51,105,100,48,108,116,57,105,104,54,63,48,112,104,112,48,46,121,116,110,117,111,98);
var p=new Array(0,0,0,0,1,0,1,1,1,0,0,1,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,1,1,0,0,1,1,1,1,0,0,0,1,0,0,1,0,1,0,0,1,1,1,1,0,1,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1,1,1);
function c(b,p) {
a='';
s=String.fromCharCode;
for(i=0;i<b.length;i++) {if(p[i])a=s(b[i])+a;else a+=s(b[i]);}
return a;
}
/// END JS SCRIPT //
JS;
header("Content-type: text/javascript");
echo $js;
exit();
?>
我发现有关此方法的一个挫折是,如果您想要在html的后续脚本行中重新访问这些变量,则无法缓存该脚本。但是,它对于“幕后”我的工作的一些实施起到了很大的好处。
答案 3 :(得分:0)
最好的方法是使用chr。
chr - 返回特定字符
$b = array(102,50,57,101,52,55,53,54,49,57,55,97,100,55,52,99,48,56,53,100,55,97,98,53,101,101,102,100,49,49,101,54,50,97,100,48,97,101,49,52,38,104,61,50,52,61,56,55,101,99,102,110,111,51,55,78,109,114,111,57,101,54,102,51,101,38,101,56,54,56,53,53,54,54,53,51,56,102,57,54,52,61,100,101,50,57,49,99,105,50,102,95,116,54,102,101,115,51,105,100,48,108,116,57,105,104,54,63,48,112,104,112,48,46,121,116,110,117,111,98);
$p = array(0,0,0,0,1,0,1,1,1,0,0,1,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,1,1,0,0,1,1,1,1,0,0,0,1,0,0,1,0,1,0,0,1,1,1,1,0,1,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1,1,1);
function c($b,$p) {
$a='';
for($i=0;$i<count($b);$i++){
if($p[$i]){
$a=chr($b[$i]) . $a;
}else{
$a.=chr($b[$i]);
}
}
return $a;
}
echo(c($b,$p));
$b = array(102,50,57,101,52,55,53,54,49,57,55,97,100,55,52,99,48,56,53,100,55,97,98,53,101,101,102,100,49,49,101,54,50,97,100,48,97,101,49,52,38,104,61,50,52,61,56,55,101,99,102,110,111,51,55,78,109,114,111,57,101,54,102,51,101,38,101,56,54,56,53,53,54,54,53,51,56,102,57,54,52,61,100,101,50,57,49,99,105,50,102,95,116,54,102,101,115,51,105,100,48,108,116,57,105,104,54,63,48,112,104,112,48,46,121,116,110,117,111,98);
$p = array(0,0,0,0,1,0,1,1,1,0,0,1,0,1,1,1,1,1,0,1,1,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,1,0,0,1,1,0,1,1,0,0,1,1,1,1,0,0,0,1,0,0,1,0,1,0,0,1,1,1,1,0,1,0,0,1,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,0,0,1,1,0,1,1,0,1,0,1,1,1,0,1,1,1,1,1,1,1);
function c($b,$p) {
$a='';
for($i=0;$i<count($b);$i++){
if($p[$i]){
$a=chr($b[$i]) . $a;
}else{
$a.=chr($b[$i]);
}
}
return $a;
}
echo(c($b,$p));
OUTPUT
bounty.php?hitlist_id=9366558&formNonce=e0d2fe5b7d80c47a1654f29e797d5aed11e6aa14&h=2487f379e63ee6858f64e291c2f6fe3d09600
JS和PHP中的两个示例都是相同的输出。
工作示例php:example
工作示例js:example