PHP:利用vld扩展SG11解密基础学习

什么是SG11?

• Source Guardian,一种PHP加密器,可以说是目前最好的加密方式了,多用于保护源代码不被盗取倒卖。

• 它的代码特征是文件中包含:sg_load(

• 搜索后,发现这类SG11解密方面的教程非常少,几乎没有。但也能看到有一些Decoder提供解密服务,价格基本在100-200元/文件。价格之贵,足以说明它的保密性了。

解密原理

通过安装PHP vld扩展,用操作码OP对PHP文件进行逆向解密。

[content_hide]

vld.c 文件

//if (!VLD_G(execute)) {			
//}

vld_dump_oparray(&execute_data->func->op_array);
return old_execute_ex(execute_data TSRMLS_DC);
----------------------------------------------------------------
srm_oparray.c 文件

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

static inline int vld_dump_zval_double(ZVAL_VALUE_TYPE value)
{
	return vld_printf (stderr, "%f", value.dval);
}


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;
}

case IS_ARRAY:          return vld_dump_zval_array (&val);

[/content_hide]

评论

发表回复