小编在这里给大家推荐亲测的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功底,要不然你学习会像天书。

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