小编在这里给大家推荐亲测的 sg11 解密教程,学习需要一定的 PHP 功底有些难度。在淘宝及市面上找人付高昂费用 sg11 解密 (大约 10-30 个/文件),远不如自己动手学习,请看下文!

SG11 介绍:

Sg11 是 SourceGuardian 的简写,Sg11加密的 PHP 文件运行需安装 SG11 加密组件使用,支持 WINDOW 及 LINUX 等版本。

sg11 加密号称目前最安全的组件加密,代码特征是文件中包含:sg_load

其实,这类加密,加大源码文件,影响服务器性能。如果碰到这样的加密文件是不是无法解密呢?

通过学习本教程可以99% 解密。

小编所准备的工作:PHP 扩展 VLD 、宝塔面板 PHP7.4

  • 步骤一、魔改 PHP 扩展 VLD,可直接下载魔改版,如需亲自体验修改魔改版过程 1.1-1.4 均为教程,使用已下载好魔改版直接看 1.2 即可;
  • 1.1 、下载 PHP 扩展 VLD:下载地址 https://pecl.php.net/package/vld,点击 vld-0.17.1.tgz (21.3kB) 下载至自己服务器中

  • 1.2 、这边使用的是宝塔面板为例,所上传的压缩包 tar zxvf vld-0.17.1.tgz 进行解压缩;

  • 1.3 、vld-0.17.1 中修改 vld.c 文件,
  • 1.3.1 、将 130 行 if (VLD_G(active)) { 、 132}行代码注释,并在 358 行 // nothing to do 增加 vid_dump_oparray($execute_data->func->op_array);
    return old_execute_ex(execute_data TSRMLS_DC);
    如图:

#原代码

	if (VLD_G(active)) {
		zend_compile_file = vld_compile_file;
		zend_compile_string = vld_compile_string;
 		if (!VLD_G(execute)) {
			zend_execute_ex = vld_execute_ex;
		}
	}

	if (VLD_G(save_paths)) {
		char *filename;

#修改后

if (VLD_G(active)) {
		zend_compile_file = vld_compile_file;
		zend_compile_string = vld_compile_string;
130 行此代码注释		//if (!VLD_G(execute)) {
			zend_execute_ex = vld_execute_ex;
132 行此代码注释		//}
	}

	if (VLD_G(save_paths)) {
		char *filename;
  • 1.3.2 、 358 行下增加代码

#原代码

{
	// nothing to do
}
/* }}} */

#修改后

{
358 行	// nothing to do
	vid_dump_oparray(&execute_data->func->op_array);
	return old_execute_ex(execute_data TSRMLS_DC);
}
/* }}} */
  • 1.4 、修改 srm_oparray.c 文件
  • 1.4.1 、在 23 行增加代码,如下:

#原代码

#修改后

#include "php.h"
#include "zend_alloc.h"
#include "branchinfo.h"
#include "srm_oparray.h"
#include "ext/standard/url.h"
#include "set.h"
#include "php_vld.h"

#include "zend_smart_str.h"
#include "ext/standard/php_var.h"

ZEND_EXTERN_MODULE_GLOBALS(vld)
  • 1.4.2 、在 371 行将 g 改为 f

#原代码

#修改后

  • 1.4.3 将 385 行中代码修改,387 行代码删除改为以下代码,如下:

#原代码

#修改后

 

static inline int vld_dump_zval_array(zval* value)
{
       smart_str buf = {0};
       php_var_export_ex(value, 1, &buf);
       smart_str_0 (&buf);
       ZVAL_VALUE_STRING_TYPE *new_str;
       new_str = php_url_encode(ZSTRING_VALUE(buf.s),buf.s->len);
       int ret = vld_printf(stderr, "%s", ZSTRING_VALUE(new_str));
       efree(new_str);
       smart_str_free(&buf);
       return ret;
}

static inline int vld_dump_zval_object(ZVAL_VALUE_TYPE value)
  • 1.4.4 、修改 460 行中代码

#原代码

#修改为

	switch (val.u1.v.type) {
		case IS_NULL:           return vld_dump_zval_null (val.value);
		case IS_LONG:           return vld_dump_zval_long (val.value);
		case IS_DOUBLE:         return vld_dump_zval_double (val.value);
		case IS_STRING:         return vld_dump_zval_string (val.value);
		case IS_ARRAY:          return vld_dump_zval_array (&val);
		case IS_OBJECT:         return vld_dump_zval_object (val.value);
		case IS_RESOURCE:       return vld_dump_zval_resource (val.value);
#if PHP_VERSION_ID < 70300
		case IS_CONSTANT:       return vld_dump_zval_constant (val.value);
  • 步骤二、正式进入安装步骤
  • 2.1 、进入终端命令行,运行魔改版所在的路径,这边以小编为例:
cd /www/cxszn/vld-0.17.1

再次运行 PHP7.4 所在路径

 /www/server/php/74/bin/phpize

  • 2.2 、继续运行以下代码
./configure --with-php-config=/www/server/php/74/bin/php-config --enable-vld

#运行安装 make && make install

 make && make install

#切换至 PHP74

cd /www/server/php/74/etc

#运行 dir

dir

#编辑 php.ini, 直接在宝塔面板修改或使用以下命令

vim php.ini

#php.ini 最后一行添加扩展命令

extension = vld.so

#进入宝塔面板,选择 PHP74 重载配置

#运行解密

cd /www/wwwroot/sg 解密
php i.php
php -dvld.active=1 i.php

更多内容请看视频解说!

sg11 解密视频教程一共 4 段,详细介绍了 sg11 解密方法。

sg11 解密教程学习需要一定的 PHP 功底,要不然你学习会像天书。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。