PHP代码加密技术 郭新华 PHPCON2018
2020-02-27 143浏览
- 1.PHPդᎱੂےದ —@swoole᮳ෛ
- 2.ىԭ౯ • peclਥොݎᕟ౮ާ̶ • swoole-srcᶱፓ໐ஞ౮ާ̶ • ሿձᘶຝ̶ • php-cp̵swoole-mysql-proxy̵ swoole-serialize̵swoole-compiler ᒵᶱፓ֢ᘏ̶
- 3.ԅՋԍᥝੂے • ी୩ଫአጱਞق • כಷᎣᦩԾ • क़۱ݪلጱᖅ • etc…
- 4.Ӟӻᓌܔጱੂےᔮᕹ ᖫᦲᴤྦྷ phpդᎱ ASTುဩ opcodes vmಗᤈ ᭋݻૡᑕ ဳᖫᦲ๗ᳵ੪Ꮯਧጱ ই PHP_OS opcodesਂک կ᯾
- 5.ᭋৼֺݻ ໐ஞ—ᴠྊᭋݻ
- 6.ӮኴӤဌํᏈᥴӧԧጱկ҅ݝ ํӧᏈᥴጱկ̶ • ṛᭋݻ౮(ἓਮ) • ᭋݸݻӧ(ݢᘏ)
- 7.ᭋݸݻӧڼ—ݢᴻဳ᯽ ᭋݸݻ ڍහᖫᦲݸጱᕮ֛ • ဳ$reflection->getDocComment ()
- 8.ᭋݸݻӧ—ݢႰႝੴ᮱ݒᰁ ᒧݩᤒ radius circum hash stack stack ᭋݸݻ !0 => $radius !1 => $circum உग़አᒧݩᤒጱఘ٭ • $$var_name • compact̵extractᒵڍහ • includeᬰጱݒᰁ • etc…Notice:Undefinedvariable:$_432345234
- 9.opcodes optimize separate vmಗᤈ ᭋݸݻӧ—ݢᖫᦲս۸ pass /* CSE, STRING construction */ /* Constant conversion and jumps */ /* ++, +=, series of jumps */ /* INIT_FCALL_BY_NAME -> DO_FCALL */ /* CFG based optimization */ /* DFA based optimization */ /* CALL GRAPH optimization */ /* SCCP (constant propagation) */ ս۸ /* TMP VAR usage */ ֺአک /* NOP removal */ /* Merge equal constants */ /* Adjust used stack */ /* Remove unused variables */ /* DCE (dead code elimination) */ /* Collect constants */ /* Inline functions */ /* etc…*/ • ଉᰁփඎ • ଉᰁರݖ
- 10.ଉᰁփඎ ᖫᦲս۸-ֺৼ ଉᰁರݖ • need to migrate from php72
- 11.ᭋݸݻӧ—ݢՋԍฎٖᘶ ဳفե(ٖᘶ)
- 12.ٖᘶڍහྍṈ ྍṈ1ᬦᄁ • ڍහํᶉாݒᰁ • ಘਫሿጱڍහ • ᭓୭᧣አᛔ૩ • ڍහ֛ᬦय़ • ڍහग़ா • etc… ྍṈ2॒ቘե • recv̵send̵return init fcall̵do fcall • etc… ྍṈ3ݳଚ • copyਁᶎᰁ̵ݒᰁᒵ௳מ • ݳଚopcodes • etc… ྍṈ4᧣ෆ • ॔ץjmp̵jmpz̵jmpnzᒵեጱ؇ᑏᰁ • etc…
- 13.๋ᕣጱᕮຎ ဳفե(ٖᘶ) ս۸ դᎱ֛ᑌݒय़ Ӷ०ञ ץදկᵱᥝ᯿ෛᖫᦲෆӻᶱፓ
- 14.ᭋݸݻӧ—ݢचԭllvmᖫᦲ౮bitcodeե opcode ᘉᦲ llvm IR llvm pass bitcode llvmක
- 15.——————ᕚۆړ——————-
- 16.࣯࣍դᎱ ӧᚆॡग़
- 17.ಆଘ۸ഴګၞ if(a==1) echo 1 if(a==2) echo 2 if(a==3) echo 3 echo ‘end’
- 18.ಆଘ۸ഴګၞ switch next if(a==1) next =1; else next =2; echo 1; next = 6; if(a==2) next =3; else next =4; echo 2; next = 6; if(a==2) next =3; else next =4; echo 2; next = 6; if(a==3) next =5; else next =6; echo 3; next = 6; ӧᚆ෫ᚏے ᵱᥝᕮٌݳ՜ੂے echo ’end’; return;
- 19.ץදਁᶎᰁ ٖᗝڍහ๊ݷഘ ڍහᤒ md5 _8739482343 hash ץදڍහᤒ hash zif_md5 zif_md5 ᗌᅩғಸᲙञ᯾ᶎጱڍහݷฎԤᎱ
- 20.ڢᴻ/Ⴐႝopcode כݝኸhandler opcode vmྒሾhandler handler ZEND_ECHO echo_handler ZEND_MUL ZEND_RETURN mul_handler return_handler ํԶopcodeӧᚆڢᴻ/Ⴐႝ cڍහ .....
- 21.໑ഝhandlerݍവopcode handlerጱcڍහݍവ opcode handler opcode handler opcode handler opcode handler opcode handler ..... cڍහ
- 22.ᡦכಷದ(vmp) my_vm my_opcode my_handler my_opcode my_handler my_opcode my_handler my_opcode my_handler my_opcode my_handler ..... • ളᓕzend_vm • ᛔਧԎեᵞ • ᛔਧԎහഝᕮ • ᛔ૩ਫሿଫጱhandler
- 23.ᜰե my_jmpz_handler
- 24.ਁੂےᶎᰁ ੂے ᬩᤈᥴੂ my_echo_handler ᬌڹڊᥴੂ ᬌੂےݸڊ ӧᚆॡग़
- 25.ٌ՜ • ᦶ᧣ݍ • ᴠᓫද • ᶼᴠᏈᥴ • ڣෙᰒฎᤩވೝ౼ • ےॎ
- 26.ᕮ • ಸᲙੂے௳מᭌೠݸᘏ • ीےᏈᥴᵙଶጱᑮᳵฎ෫ᴴጱ ๋ᵙጱฎੂےᚆጱᤍ
- 27.swoole compilerਧ֖—----ଫአਞقૡٍ դᎱੂے+හഝੂے+რᎱᄋ၏ಚൈ
- 28.ᵞ౮swoole compilerݎکᔮᕹ ץදphpդ Ꮁ Իgitՙପ ݎୌ ᖫᦲphp(ੂے+ ਞقಚൈ)ኞ౮ ᮱ᗟ۱ ᛔۖ۸ၥᦶ ᛔۖ۸᮱ᗟ
- 29.thanks
- 30.PHPCON ਥᗑғwww.phpconchina.com ق᮱ PPT ӥғhttps://github.com/ThinkDevelopers/PHPConChinaਥොQQᗭғ34449228̵135615537 ਥොلռݩғThinkInLAMP