实践证明,无法实现,依然可以用反编译编译出来。
目前我的做法是,编译后,用压缩工具比如UPX压缩,然后篡改文件头,算是简单加密。
应用时,用一个专门恢复文件头的程序进行解密,然后再执行正常程序。
当然了,所有程序都封装成Dll,中间有加密过程,也算是那啥,不过,要看你的程序值不值了。
cmd运行命令:
cocos luacompile -s src/ -d out/ -e -k testKey123456 -b testSign12345 --disable-compile
提示:
D:\zm\Testcocos luacompile -s src/ -d out/ -e -k testKey123456 -b testSign12345 --disable-compile
通过 luacompile 命令对 lua 文件进行 XXTEA 加密以及编译为字节码的处理。
编译为字节码的功能基于 LuaJIT v2.0.3,所以目前编译成字节码的文件不适用于 iOS 64
位设备。
正在处理 lua 文件。
编译完成。
编译成功:我把 out 目录的名字换成了 src ,原 src 目录改名叫 src_org
vs 中 加入 这一句:
stack-setXXTEAKeyAndSign("testKey123456", strlen("testKey123456"), "testSign123456", strlen("testSign123456"));
lua是开源软件,所以可以自己定制。加密的简单的方式是将lua翻译的字节码加密,在执行字节码之前将其解密后执行即可。
接入系统与XX特色前置的通讯报文采用报文体MAC签名,签名用来识别来源的合法性和报文体是否遭篡改或破坏。MAC签名值生成的步骤如下:
经过咨询同事,公司crypt库中有现成的MD5加密方法;
果断复用!!!
验证:将字符串“123456” 按标准md5算法 后应该是 E10ADC3949BA59ABBE56E057F20F883E
crypt库中与MD5相关的有3个:
验证1:-- 不一致
验证2: -- 一致可用
调用加密机SM4算法加解密数据
关键code
--对数据每两位进行字节压缩
--对压缩后的数据转为字节
--解码:获取的前16字节
--解码:获取的前17-32字节转为byte