Tôi đang xử lý một đoạn mã khó chịu của mã bên thứ ba ở giữa cài đặt Magento, và tôi đang gặp một chút rắc rối sau các chủ đề của nó. Dưới đây là một thông báo lỗi tôi nhìn thấy:Số dòng đếm eval() của PHP như thế nào?
PHP Parse error: syntax error, unexpected ']' in /chroot/home/user/example.com/html/dev4/app/code/local/company/PluginName/Model/Module/License/Light/Performer/Reader.php(36) : eval()'d code(18) : eval()'d code(1302) : eval()'d code on line 1
tôi đã xác định sự bắt đầu của chuỗi eval() trong Reader.php
, và đó là trên dòng 36. Vì vậy, là những con số ngoặc sau đó, cũng chỉ là dòng tham chiếu đến trong vòng khối văn bản lớn? Tôi có xu hướng tin như vậy, nhưng tôi không thể tự mình hiểu ra điều đó. Nếu đó là trường hợp, rằng eval()'d code(1302)
có vẻ đặc biệt nghiêm trọng. D:
Tôi sẽ cung cấp thêm ngữ cảnh, nhưng trạng thái giấy phép của mã không phải là siêu rõ ràng, vì vậy tất cả tôi có thể đưa ra là chuỗi ba-eval() này hiện đang phá vỡ mọi thứ và lớp thứ hai nó được xây dựng như sau:
$s = "$BLOCK_OF_SCRAMBLED_TEXT"
$s2 = '';
for ($i=0;($i+0xB-1)<strlen($s);$i+=11) {
for ($k = 013-1 ; $k > -1 ; --$k) {
$s2 .= $s[$i+$k];
}
}
eval($s2);
Khi bạn sự gian lận khối bên ngoài của dòng chương trình Magento, $s2
chứa vật đáng yêu như thế nào -
if($license->getModule()->getDecode()) {
$source = base64_decode($source);
}
...
list($source) = explode("PERFORMER_CLASS_CREATED",$source,2);
$source .= " */";
ob_start();
eval($source);
ob_end_clean();
vì vậy: làm thế nào tôi có thể theo dõi chuỗi này eval()
đến điểm của mã thực sự là nguyên nhân ing vấn đề?
D: thực sự, rất rất D :. – deceze
Yeesh, mã obfuscated? Có thể bạn nên sửa "trạng thái giấy phép" và yêu cầu nhà xuất bản sửa chữa. – Hamish
Bởi "trạng thái giấy phép không rõ ràng", ý tôi là, "chúng tôi tuân thủ 100% giấy phép trong bản cài đặt của mình, nhưng tôi nghĩ rằng họ sẽ không vui khi thấy mã của họ trên SO." Chúng tôi đang đàm phán với họ về việc sửa chữa cài đặt của chúng tôi, nhưng tôi nghi ngờ họ sẽ sửa chữa kiến trúc phần mềm Chaotic Evil của họ. –