惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
G
Google Developers Blog
V
V2EX
美团技术团队
H
Help Net Security
月光博客
月光博客
爱范儿
爱范儿
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
U
Unit 42
大猫的无限游戏
大猫的无限游戏
Recent Announcements
Recent Announcements
A
About on SuperTechFans
博客园 - Franky
The GitHub Blog
The GitHub Blog
N
Netflix TechBlog - Medium
人人都是产品经理
人人都是产品经理
博客园 - 司徒正美
MyScale Blog
MyScale Blog
B
Blog
雷峰网
雷峰网
Y
Y Combinator Blog
云风的 BLOG
云风的 BLOG
T
The Blog of Author Tim Ferriss

webfem

Turn Videos into AI Video Prompts:把视频变成可复用创意库 写作平台字数怎么算?公众号、论文和网文的统计口径 字数、字符数和英文单词数有什么区别?一次说清统计口径 中文字数统计是否包括标点?不同场景的计算口径说明 react-virtualized AutoSizer 实现原理详解 - webfem JWT技术详解:从入门到精通 - webfem 如何在电脑上调试手机网页 - webfem react-virtualized 的用法详解 - webfem MongoDB 入门详解 - webfem react-virtualized 无限列表图片闪屏问题修复 - webfem 博客搭建-创建文章接口 - webfem WebSocket 技术详解:实时通信的利器 - webfem 小米YU7购车记-新能源购置税计算器的诞生 - webfem 手动搭建个人博客 - webfem 博客搭建-项目工程搭建 - webfem Base64编码详解:原理、应用与实践 - webfem 字数统计算法深度解析:从Unicode到实际应用的硬核技术实现 - webfem 衬线体与无衬线体:字体设计的经典对决 - webfem 如何把 小程序 转换为 VUE - webfem 性能优化-核心指标-FP - webfem MD5算法原理及其实现 - webfem 性能优化-核心指标-SI 的介绍与优化 - webfem 如何设计一个后端管理平台 - webfem
代码相似性检查机制 - webfem
yimin,2316114920@qq.com · 2025-11-12 · via webfem

背景

在某些情况下,我们可能会检查两个APP 的代码是否相似,来判断代码是否有cx的问题。但是cx方,为了规避这些问题,会做代码混淆,JS 代码混淆方法可以看下这个工具 https://webfem.com/tools/js-decode/index.html 。代码混淆之后,会大大增加我们判断相似度的难度。

基于这种情况,这里给出一种基于 AST ,查找相同代码类型的方法判断。

分析

我们给一个示例:

源代码是

const b = 2;
function add (a) {
  return a + b
}

修改一些变量之后的代码如下:

const c = 2;
function sss(r) {return r+c}

两个代码在变量名,代码规范上都不一致,人眼能一下看出来二者是一样的代码,但是通过字符串对比的方式很难去写匹配关系。如果代码一多,这个事情就进行不下去了。

那如果我们把他们都转换为 AST block,结果又是怎么样的呢

示例1的 block

示例1block

// const b = 2;
VariableDeclaration-VariableDeclarator-Identifier-Literal

示例二

示例二block

// var c = 2;
VariableDeclaration-VariableDeclarator-Identifier-Literal

同样的逻辑,通过 AST 分析之后的代码 lock 是一致的。

因此,我们可以直接将整个文档先 转换为 AST 再便利,找到所有的 节点信息。

然后再对比两个文件的节点信息的一致性,再将所有文件汇总,就行判断整个项目的一致性。

总结

本文只是提供一个检查方案,具体代码如果需要可以联系我。

原文地址:https://webfem.com/post/code-similar,转载请注明出处