這里寫問題描述
最近一直在社區(qū)看到有人尋求源碼加密的,我有一個思路,不知道能不能行得通,主要是不知道破解的成本有多大,因為對 C/C++
了解不多。
使用 Phar::OPENSSL
的方式打包 PHP
源碼
魔改 Phar
擴(kuò)展,把 pubkey
內(nèi)置在擴(kuò)展中,就是直接寫死到擴(kuò)展中,然后把 Phar::extractTo
之類的函數(shù)去掉,也就是說禁止直接解包 Phar
文件,同時要保證 pubkey
不能被外部獲取
使用 @crazywhalecc
大佬的 https://github.com/crazywhalecc/static-php-cli 項目編譯純靜態(tài)的 PHP
二進(jìn)制文件
使用一些加殼的工具給 PHP
二進(jìn)制文件加殼
再學(xué)個go,不想開源的地方用go寫。然后用此項目來和php和go通訊
https://github.com/roadrunner-server/goridge
這種方案是最穩(wěn)的,魔改php的話,總會有各種不兼容問題
核心代碼用go,并在go代碼里驗證授權(quán),授權(quán)通過后再進(jìn)行數(shù)據(jù)處理后返回最終結(jié)果。php拿到結(jié)果顯示在前臺,類似于php調(diào)用redis。
go代碼編寫看這里:https://github.com/roadrunner-server/goridge#sample-of-usage
php代碼編寫看這里:https://github.com/roadrunner-php/goridge#installation
我現(xiàn)在的任務(wù)系統(tǒng)和一些涉及web3轉(zhuǎn)賬功能就是GO寫的http服務(wù),啟動webman 時,啟動go的二進(jìn)制可執(zhí)行文件,
使用時調(diào)用就是post請求127.0.0.1:xxx/
可以試試這個,我之前一直在用。https://gitee.com/lfveeker/tonyenc
舊版本的在這:https://github.com/lihancong/tonyenc