cbasil 最近的时间轴更新
cbasil

cbasil

V2EX 第 311937 号会员,加入于 2018-04-26 15:12:33 +08:00
cbasil 最近回复了
8 天前
回复了 Aura23022 创建的主题 PHP 这段代码是 PHP 混淆吗?
这个 PHP 代码使用了混淆和编码技术,使得代码看起来很复杂。为了理解这个代码的真正意图,我们需要一步一步地解码和解释它。

首先,代码的第一部分定义了一个常量,并通过 explode 函数对一个字符串进行拆分,然后将拆分后的数组元素进行 pack 处理。让我们一步一步还原这些操作。
1. 定义常量和初始化全局数组

php

if(!defined("AA___AA_A")) define("AA___AA_A","AA___AAA_");

$GLOBALS[AA___AA_A] = explode("|L|@|<", "H*|L|@|<41415F5F5F415F5F5F");

这段代码将 AA___AA_A 常量定义为"AA___AAA_",然后将字符串"H*|L|@|<41415F5F5F415F5F5F"按照"|L|@|<"分割成两个部分,存储到$GLOBALS['AA___AAA_']中。分割结果为:

php

$GLOBALS['AA___AAA_'] = array("H*", "41415F5F5F415F5F5F");

2. 定义另一个常量

php

if(!defined(pack($GLOBALS[AA___AA_A][0],$GLOBALS[AA___AA_A][1]))) {
define(pack($GLOBALS[AA___AA_A][0], $GLOBALS[AA___AA_A][1]), ord(62));
}

这里,$GLOBALS['AA___AAA_'][0] 是 "H*", $GLOBALS['AA___AAA_'][1] 是 "41415F5F5F415F5F5F". pack("H*", "41415F5F5F415F5F5F") 将十六进制字符串转换为二进制数据:

php

pack("H*", "41415F5F5F415F5F5F") => "AAA___AAA"

ord(62) 返回 62 。所以这部分代码等价于:

php

if(!defined("AAA___AAA")) define("AAA___AAA", 62);

3. 初始化数组和变量

php

$R31BuEt15 = array(12, 13, 18, 4, 16);
$R31OiRy0 = 5844;
$R31zA8J = array("Ih", "mUN");

这段代码初始化了三个数组和一个变量。
4. 调用 strpos 函数

php

$R31eFbN8I = call_user_func_array("strpos", $R31zA8J);

这相当于:

php

$R31eFbN8I = strpos("Ih", "mUN");

strpos 查找子字符串在字符串中首次出现的位置。显然,"mUN" 在 "Ih" 中不存在,所以 strpos 返回 false 。
5. 检查常量和变量的存在性

php

if($R31eFbN8I) goto R31eWjgx2;
$R318I = !defined("AA___A__A");
if($R318I) goto R31eWjgx2;
if(isset($_J3zIUZr)) goto R31eWjgx2;
goto R31ldMhx2;

这里,由于 $R31eFbN8I 是 false ,所以不会跳转到 R31eWjgx2 ,继续检查 AA___A__A 常量是否定义和 $_J3zIUZr 是否存在。这些都不满足,所以跳转到 R31ldMhx2 。
6. 定义常量和处理字符串

php

R31eWjgx2:
$R31zA8J = array("AA___A__A", "AA___A_A_");
$R31eF8I = call_user_func_array("define", $R31zA8J);
unset($R31zA8J);
goto R31x1;

R31ldMhx2:
R31x1:
$R31zA8J = array(
"|(|O|<",
"H*|(|O|<41415F5F5F5F41415F|(|O|<646566696E65|(|O|<41415F5F5F5F414141|(|O|<746F6B656E|(|O|<|(|O|<756964|(|O|<636F6465|(|O|<6D7367|(|O|<E98080E587BAE799BBE5BD95E68890E58A9FEFBC81|(|O|<E799BBE5BD95E8BF87E69C9FEFBC81|(|O|<E58F82E695B0E99499E8AFAF21"
);

上面是字符串分割操作,具体细节需要进一步处理。

总结:
这个 PHP 代码通过复杂的方式定义了一些常量和变量,然后执行了一些逻辑检查和字符串处理。具体细节需要根据这些字符串的处理方式进一步解码和解释。总体来说,这段代码的核心逻辑是使用混淆技术来隐藏其真正意图。
@zhousir5071 我达达的马蹄是美丽的错误 。 我不是归人,是个过客
93 天前
回复了 zhousir5071 创建的主题 分享发现 分享一下曾经给我带来幸福感的东西
@Cheons 那一年骑几次?
我认为换老婆比换工作好,就看能不能接受了。
如果老家有 DTMB 信号的话,DIY 一根双菱形天线就可以收看中央台和省级台。
207 天前
回复了 tbg 创建的主题 互联网 电视家凉了吗?大面积退款
最简单的是看 dtmb ,信号不强可以自己用纯铜电线 DIY 一根双菱天线。大概 30 个台左右,有部分还是高清的,不会存在卡顿的情况
+1 忙不过来了,客官请稍候
加下试试,增加睡后收入
在$num = count(scandir($this->filename));前面加上文件夹是否存在的判断
<pre>
if(!is_dir($this->filename)) return 'flag_';
</pre>
window 系统的话,直接在 pe 里面重装驱动就可以了。linux 系统应该自带驱动,直接装。
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   945 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 17ms · UTC 22:28 · PVG 06:28 · LAX 15:28 · JFK 18:28
Developed with CodeLauncher
♥ Do have faith in what you're doing.