sg11解密 sg11加密开心 sg11加密解密方法有哪些?
SG11解密,做搭建,资源下载站的多少会遇到这些问题,需要解密sg11。
SG11解码,SourceGuardian解密,sg11解密,IC10
SG11介绍:
Sg11是SourceGuardian的简写,Sg11加密的PHP文件运行需安装SG11加密组件使用,支持WINDOW及LINUX等版本。
sg11加密号称目前最安全的组件加密,代码特征是文件中包含:sg_load(...如下图:
其实,这类加密,加大源码文件,影响服务器性能。如果碰到这样的加密文件是不是无法解密呢?
通过学习本教程可以99%解密。
现网上基本上为人工解密,原理使用opcache ,ZEND_JMP等等
Zend VM引擎 确实能解密大多数组件加密的源码
SG11解密方法1:ZEND_JMP解密
D: phpjmsg11>php.exe -c php.ini phpdc .phpr en_test.php equal ZEND_JMP 1
SourceGuardian 11加密 ,SG111
IC10 PHP5.3-7.2 各版本!
SG11解密方法2:opcode解密php,通过opcode解码反解出php代码
php -dvld.active=1 index. php
通过vld拓展->opcode->php
OPCODE的功能列表
Opcode代码 | 值 | ver | 含义 |
ZEND_NOP | 0 |
| 空操作 |
ZEND_ADD | 1 |
| 加 |
ZEND_SUB | 2 |
| 减 |
ZEND_MUL | 3 |
| 乘 |
ZEND_DIV | 4 |
| 除 |
ZEND_MOD | 5 |
| 求模 |
ZEND_SL | 6 |
| 左移位 Shift Left |
ZEND_SR | 7 |
| 右移位 Shift Right |
ZEND_CONCAT | 8 |
| 字符串连接 |
ZEND_BW_OR | 9 |
| 按位或 |
ZEND_BW_AND | 10 |
| 按位与 |
ZEND_BW_XOR | 11 |
| 按位异或 |
ZEND_BW_NOT | 12 |
| 按位非 |
ZEND_BOOL_NOT | 13 |
| 逻辑非! |
ZEND_BOOL_XOR | 14 |
| 逻辑异或 XOR |
ZEND_IS_IDENTICAL | 15 |
| === |
ZEND_IS_NOT_IDENTICAL | 16 |
| !== |
ZEND_IS_EQUAL | 17 |
| == |
ZEND_IS_NOT_EQUAL | 18 |
| <>,!= |
ZEND_IS_SMALLER | 19 |
| < |
ZEND_IS_SMALLER_OR_EQUAL | 20 |
| <= |
ZEND_CAST | 21 |
| 类型强制转换,目标类型extend_value |
ZEND_QM_ASSIGN | 22 |
| ?: 操作赋值 |
ZEND_ASSIGN_ADD | 23 |
| += |
ZEND_ASSIGN_SUB | 24 |
| -= |
ZEND_ASSIGN_MUL | 25 |
| *= |
ZEND_ASSIGN_DIV | 26 |
| /= |
ZEND_ASSIGN_MOD | 27 |
| %= |
ZEND_ASSIGN_SL | 28 |
| <<= |
ZEND_ASSIGN_SR | 29 |
| >>= |
ZEND_ASSIGN_CONCAT | 30 |
| .= |
ZEND_ASSIGN_BW_OR | 31 |
| |= |
ZEND_ASSIGN_BW_AND | 32 |
| &= |
ZEND_ASSIGN_BW_XOR | 33 |
| ^= |
ZEND_PRE_INC | 34 |
| ++前自增 ++$a |
ZEND_PRE_DEC | 35 |
| --前自减 --$a |
ZEND_POST_INC | 36 |
| 后自增++ $a ++ |
ZEND_POST_DEC | 37 |
| 后自减-- $a-- |
ZEND_ASSIGN | 38 |
| 赋值= |
ZEND_ASSIGN_REF | 39 |
| 引用赋值 =& |
ZEND_ECHO | 40 |
| ECHO |
ZEND_PRINT | 41 |
| PRINT |
ZEND_JMP | 42 |
| 无条件跳转指令 |
ZEND_JMPZ | 43 |
| 条件跳转 |
ZEND_JMPNZ | 44 |
|
|
ZEND_JMPZNZ | 45 |
|
|
ZEND_JMPZ_EX | 46 |
|
|
ZEND_JMPNZ_EX | 47 |
|
|
ZEND_CASE | 48 |
| CASE操作符 |
ZEND_SWITCH_FREE | 49 |
| SWITCH |
ZEND_BRK | 50 |
| BREAK |
ZEND_CONT | 51 |
| CONTINUE |
ZEND_BOOL | 52 |
| BOOL转换 |
ZEND_INIT_STRING | 53 |
| 初始化字符串 |
ZEND_ADD_CHAR | 54 |
| 将字符加到字符串 |
ZEND_ADD_STRING | 55 |
| 将字符串加到字符串 |
ZEND_ADD_VAR | 56 |
| 将变量加到字符串 |
ZEND_BEGIN_SILENCE | 57 |
| 错误屏蔽开始 |
ZEND_END_SILENCE | 58 |
| 错误屏蔽结束 |
ZEND_INIT_FCALL_BY_NAME | 59 |
| 初始化通过名称调用函数 |
ZEND_DO_FCALL | 60 |
| 函数调用 |
ZEND_DO_FCALL_BY_NAME | 61 |
| 通过名称调用函数 |
ZEND_RETURN | 62 |
| 函数返回 |
ZEND_RECV | 63 |
| 函数声明时传递参数 |
ZEND_RECV_INIT | 64 |
| 函数声明时传递参数,用默认值初始化 |
ZEND_SEND_VAL | 65 |
| 函数调用时传递值作为参数 |
ZEND_SEND_VAR | 66 |
| 函数调用时传递变量作为参数 |
ZEND_SEND_REF | 67 |
| 函数调用时传递引用作为参数 |
ZEND_NEW | 68 |
| new 操作 |
ZEND_INIT_NS_FCALL_BY_NAME | 69 | 5.3 | 命名空间函数调用 |
ZEND_FREE | 70 |
| free操作 |
ZEND_INIT_ARRAY | 71 |
| 数组初始化 |
ZEND_ADD_ARRAY_ELEMENT | 72 |
| 添加数组元素 |
ZEND_INCLUDE_OR_EVAL | 73 |
| include/require/eval操作 |
ZEND_UNSET_VAR | 74 | 5.1 | UNSET操作 |
ZEND_UNSET_DIM | 75 | 5.1 |
|
ZEND_UNSET_OBJ | 76 | 5.1 |
|
ZEND_FE_RESET | 77 | 5.1 | FOREACH操作 |
ZEND_FE_FETCH | 78 |
| FOREACH操作 |
ZEND_EXIT | 79 |
| EXIT |
ZEND_FETCH_R | 80 |
| 这一系列OPCODE用于获取各种类型的变量地址,分别用于不同的操作。R:只读,W:只写,RW:读写。DIM – 数组OBJ – 对象 |
ZEND_FETCH_DIM_R | 81 |
|
|
ZEND_FETCH_OBJ_R | 82 |
|
|
ZEND_FETCH_W | 83 |
|
|
ZEND_FETCH_DIM_W | 84 |
|
|
ZEND_FETCH_OBJ_W | 85 |
|
|
ZEND_FETCH_RW | 86 |
|
|
ZEND_FETCH_DIM_RW | 87 |
|
|
ZEND_FETCH_OBJ_RW | 88 |
|
|
ZEND_FETCH_IS | 89 |
| 取出变量地址,用于IS*测试。IS*测试指的是对变量进行ISSET 或ISEMPTY测试。 |
ZEND_FETCH_DIM_IS | 90 |
|
|
ZEND_FETCH_OBJ_IS | 91 |
|
|
ZEND_FETCH_FUNC_ARG | 92 |
| 获取函数参数地址 |
ZEND_FETCH_DIM_FUNC_ARG | 93 |
|
|
ZEND_FETCH_OBJ_FUNC_ARG | 94 |
|
|
ZEND_FETCH_UNSET | 95 |
| 获取变量地址,用于UNSET |
ZEND_FETCH_DIM_UNSET | 96 |
|
|
ZEND_FETCH_OBJ_UNSET | 97 |
|
|
ZEND_FETCH_DIM_TMP_VAR | 98 |
|
|
ZEND_FETCH_CONSTANT | 99 | 5.0 | 取得常量地址 |
ZEND_GOTO | 100 | 5.3 | GOTO 操作 |
ZEND_EXT_STMT | 101 |
| extension statement |
ZEND_EXT_FCALL_BEGIN | 102 |
| extension function call begin |
ZEND_EXT_FCALL_END | 103 |
| extension function call end |
ZEND_EXT_NOP | 104 |
| extension noop |
ZEND_TICKS | 105 |
| TICKS函数,5.3中过时,6.0取消 |
ZEND_SEND_VAR_NO_REF | 106 |
| 参数传递 |
ZEND_CATCH | 107 | 5.0 | 异常处理捕获异常 |
ZEND_THROW | 108 |
| 异常处理抛出异常 |
ZEND_FETCH_CLASS | 109 |
| 使用对象名称获取对象指针 |
ZEND_CLONE | 110 |
| 对象克隆 |
ZEND_INIT_METHOD_CALL | 112 |
| 对象方法调用初始化 |
ZEND_INIT_STATIC_METHOD_CALL | 113 |
| 对象静态方法调用初始化 |
ZEND_ISSET_ISEMPTY_VAR | 114 |
| 标量类型变量IS*测试 |
ZEND_ISSET_ISEMPTY_DIM_OBJ | 115 |
| 数组或对象类型变量IS*测试 |
ZEND_PRE_INC_OBJ | 132 |
| 对象属性前自增 ++$obj->prop |
ZEND_PRE_DEC_OBJ | 133 |
| 对象属性前自减 --$obj->prop |
ZEND_POST_INC_OBJ | 134 |
| 对象属性后自增 $obj->prop++ |
ZEND_POST_DEC_OBJ | 135 |
| 对象属性后自减 $obj->prop-- |
ZEND_ASSIGN_OBJ | 136 |
| 对象赋值 |
ZEND_INSTANCEOF | 138 |
| instanceof操作符 |
ZEND_DECLARE_CLASS | 139 |
| 类声明 |
ZEND_DECLARE_INHERITED_CLASS | 140 |
| 继承类声明 |
ZEND_DECLARE_FUNCTION | 141 |
| 函数声明 |
ZEND_RAISE_ABSTRACT_ERROR | 142 |
| 实例化抽象类错误 |
ZEND_DECLARE_CONST | 143 | 5.3 | 常数声明 |
ZEND_ADD_INTERFACE | 144 |
| 类声明时添加接口 |
ZEND_DECLARE_INHERITED_CLASS_DELAYED | 145 |
| 声明继承类,使用delayed early binding |
ZEND_VERIFY_ABSTRACT_CLASS | 146 |
| 抽象类验证 |
ZEND_ASSIGN_DIM | 147 |
| 数组元素赋值 |
ZEND_ISSET_ISEMPTY_PROP_OBJ | 148 |
| 对象属性IS*测试 |
ZEND_HANDLE_EXCEPTION | 149 |
| 异常处理 |
ZEND_USER_OPCODE | 150 | 5.1 | 用户自定义OPCODE处理器 |
ZEND_U_NORMALIZE | 151 | 6.0 | 规范化标识符名 |
ZEND_JMP_SET | 152 | 5.3 | 无条件跳转,并设置RESULT |
ZEND_DECLARE_LAMBDA_FUNCTION | 153 | 5.3 | 声明LAMBDA函数 |
本文链接:http://78moban.cn/post/14531.html
版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!