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

推荐订阅源

P
Proofpoint News Feed
C
CERT Recently Published Vulnerability Notes
O
OpenAI News
V
Vulnerabilities – Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
S
Schneier on Security
Latest news
Latest news
F
Full Disclosure
T
Tenable Blog
T
Troy Hunt's Blog
The Last Watchdog
The Last Watchdog
S
Secure Thoughts
L
LangChain Blog
有赞技术团队
有赞技术团队
Project Zero
Project Zero
Cloudbric
Cloudbric
爱范儿
爱范儿
GbyAI
GbyAI
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
The Exploit Database - CXSecurity.com
S
Security @ Cisco Blogs
Hugging Face - Blog
Hugging Face - Blog
Recorded Future
Recorded Future
大猫的无限游戏
大猫的无限游戏
Last Week in AI
Last Week in AI
C
Cisco Blogs
WordPress大学
WordPress大学
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V2EX - 技术
V2EX - 技术
Engineering at Meta
Engineering at Meta
Spread Privacy
Spread Privacy
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Hacker News: Ask HN
Hacker News: Ask HN
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Schneier on Security
Schneier on Security
T
Threat Research - Cisco Blogs
M
MIT News - Artificial intelligence
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
K
Kaspersky official blog
The Hacker News
The Hacker News
V
V2EX
F
Fortinet All Blogs
L
LINUX DO - 最新话题
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
N
News | PayPal Newsroom
博客园 - 三生石上(FineUI控件)
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

webfem

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,转载请注明出处