去掉代码中的变量名

需求

一种常见的抄袭做法是修改方法名和变量名;
如果在查重的时候去掉这些元素,就可以避免相关误差。

做法

这个问题困扰我许久了…
思考过的解决方案:

常用词库

顾名思义就是把各个语言所有的常用语法列出来并保存,这些元素以及符号之外的字符就可以认为是变量名和方法名,处理源代码是删除它们即可。
这样做有很大的问题:
1.词库过于庞大。如python语言,不可能把所有外部库里的元素都遍历并储存。
2.失误率太高。一个变量名和词库中的某个词一致或相似,难以判断是否删除。
3.如何作为整体识别。以.或空格区分?效率太低且特殊情况太多。

混淆工具

下载了proguard-master。使用混淆工具问题也很突出:
1.功能不匹配。混淆工具会对代码进行整体检查,并把相应内容随机化;仅仅是去变量名,不太合适。
2.难以应用。即便使用混淆工具处理相关代码,一般需要修改代码,这就与查重相冲突;暂时修改的话,效率又太低。
3.语言的适应性。一般的混淆工具只能适应某一种语言,难以满足需求。

汇编级别

就像IDE能够识别代码中各个元素的性质一样,如果可以跨越到汇编层面,可能会实现相应功能;
这样全面展开的话,感觉会得不偿失,耽误进度。
故暂时不予尝试。

总而言之,没有实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值