1.0.0 • Published 4 years ago

hard_scan v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

硬编码扫描

pipeline status coverage report

使用

$ hard_scan --help

hard_scan <命令>

命令:
  hard_scan dir [path]                 扫描目录
  hard_scan file [path]                扫描文件
  hard_scan text [language] [content]  扫描文本

Options:
  --version  显示版本号                                                   [布尔]
  --help     显示帮助信息                                                 [布尔]

本地调试

  1. npm install && npm run build
  2. ./bin/index.js --help

方案

考虑到代码中大部分硬编码的数据类型,都是字符串,所以思路是提取源码中所有的字符串,再用正则匹配出硬编码部分

基于TextMate语法,可以对源码实现标记化,实现提取所有字符串常量。

语言支持

  • Java
  • Objective-C
  • JavaScript / TypeScript
  • Golang
  • Python

新增语法

准备好语法文件(.json/.tmLanguage/.plist),放到grammars文件夹中即可。

也可以提ISSUE。

关于效率

由于域名的规则,与PSM和类名很相似,无法单纯通过正则过滤。

目前会在识别出域名后,dns解析一下,解析成功的判断为域名。但这是一次网络请求,会导致效率较低。

1.0.0

4 years ago