这次的需求是修改一个 Chrome 扩展的代码,以绕过账户验证。
- 在 Chrome 商店安装 用来下载 extension 压缩包的 extension:
Chrome extension source viewer
- 使用
Chrome extension source viewer
下载需要修改的扩展,这里以翻墙回国代理红豆为例:
- 解压 zip 文件,大致浏览代码后,发现没有做模块级别的混淆压缩。首先想到的是搜索一些账户相关的关键词,例如
expired
,account
。在background.js
和commons.js
中找到了一些相关的函数。非常幸运地马上找到了目标。
function serviceDuration() { var e = v.get(),
t = (e && e.serviceDue ? e.serviceDue : 0) - d.now() + b.get(); return 0 < t ? t : 0 }
将函数的返回值改成常数就完成了目标。再次观察函数可知,如果代码做了全局级别的混淆压缩,对于这类事件判断逻辑,仍然可以搜索 time.now()
, time > 0
等关键词。
- 保存代码,用Chrome载入这个未打包的 extension。