微信小游戏代码包侵权的避开技巧(含处理脚本代码)

2020年7月更新:针对本文的需求,开发了代码混淆插件,详情请见微信小游戏代码包侵权解决方案升级版

随着微信小游戏平台的普及和完善,越来越多的游戏开发者加入到微信小游戏开发队伍中,很多公司开发者一个团队就开发了几十款游戏。

目前,微信小游戏同质化严重,大多是一套代码,换换皮肤就变成了一款新游戏。更有甚者,有些开发者直接反编译别人的游戏包进行简单修改,变成自己的产品申请上架。严重损害著作权所有人的利益和平台规则。

为了遏制和打击这种现象,微信小游戏平台有一个环节是机审,审查代码包的相似度,如果代码包相似度超过一定的比例就会被判定为“代码包侵权”,审核不予通过。

这本身是好事,但是却产生了大量“误杀”行为。很多公司开发团队用同一套自己研发的游戏引擎开发出不同的产品,申请上线的时候会判定为“侵权”。这就郁闷了,自己侵权自己。

虽然微信官方说可以申诉,但是时间不受控制,这不是一个上策。更好的方式是修改代码,混淆代码,让其看起来和别的项目不像,不要触发微信代码机审的“黑机关”。

好了,废话了半天,该上菜了!希望各位读者收获满满!

混淆代码的思路:

1、修改所有代码Class 类名称不要重复

2、修改全部全局属性、和至少 1/3的方法名称不要重复(这部分可以写程序去批量改)

3、打乱那些基类、工具类里面的方法顺序, 举例 Class A里面有 Function B、C、D,在不同项目里面改乱顺序,项目1里面的 Class A中顺序是B、D、C;项目2里面的 Class A中顺序是D、C、B;

4、如果定义了 package包名,包名也改掉;

5、每个类里面 随机插入一些废代码(注意,不是直接复制独立的废代码文件到项目中,这种方式无效)

6、如果是白鹭引擎,记把exml里面的代码也改改,各种重用的组件比如按钮、Class名称和文件名都改一下。

7、如果是 Laya 2.0项目,class 前面 不要用default 定义。

按照以上思路,修改到位,经过作者30+款产品上线的经验,通过率99.99%

以上修改思路是有一定工作量的,而且是枯燥的,所以最好写代码脚本去处理,作者一般是手动+自动相结合的方式去混淆代码,以下代码实现了部分混淆代码的功能:

/* 为项目添加干扰代码,主要做这几件事:
1、修改每个类里面的私有方法,添加一个随机数
2、在代码里面随机一行插入一个随机命名的方法体
3、在代码里面随机一行插入一行没有意义的代码
*/
const LINENUM = 20;
const LINENUM_RADOM = 13;

var fs = require('fs');
var path = require('path');

var filterFils = ["Base64", "ThemeAdapter","AssetAdapter", "Platform", "wxgamesdk"];//忽略文件
var filterDirs = ["xxxx"];//忽略目录
var traceName = "xxxx";//添加的干扰代码
var funString = '_xxxx_fun(){ console.log("';//添加的方法体
var root_Url = "D:/code/project/src";//项目diam路径

fileDisplay(path.resolve(root_Url));

/**
 * 文件遍历方法
 * @param filePath 需要遍历的文件路径
 */
function fileDisplay(filePath){
	//根据文件路径读取文件,返回文件列表
	fs.readdir(filePath,function(err,files){
		if(err){
			console.warn(err)
		}else{
			//遍历读取到的文件列表
			files.forEach(function(filename){
				//获取当前文件的绝对路径
				var filedir = path.join(filePath,filename);
				//根据文件路径获取文件信息,返回一个fs.Stats对象
				fs.stat(filedir,function(eror,stats){
					if(eror){
						console.warn('获取文件stats失败');
					}else{
						var isFile = stats.isFile();//是文件
						var isDir = s
  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星星之Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值