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

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

评论 (0)