首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
V2EX  ›  JavaScript

如何读懂一个混淆过的 js 文件(变量全是 ABCDEFG)

  •  
  •   909076350 · 46 天前 · 2603 次点击
    这是一个创建于 46 天前的主题,其中的信息可能已经有所发展或是发生改变。

    rt 求助~

    22 回复  |  直到 2019-07-11 13:44:40 +08:00
        1
    wszgrcy   46 天前 via Android
    努力看。。。。然后你就发现看不懂放弃了。。。现在的 js 有两次处理,一种是压缩,就是把变量和空格减少长度,还有就是混淆,混淆过的代码,能逆向出传参能调用就算 nb 了,想读懂,估计要罢人脑升级为量子的吧
        2
    cydysm   46 天前 via iPhone
    devtools 里 overide 打断点,写 console 调试
        3
    Jirajine   46 天前 via Android   ♥ 1
    混淆而已,比编译过的 smali 都好太多了,更不用说汇编。
    起码处理一下,把格式展开,变量函数改成 var_1,func_1 这样的还好一些。
        4
    909076350   46 天前
    @wszgrcy 哭了 是一个很简单的 js (淘宝下载页的逻辑)
        5
    q8164305   46 天前 via Android
    打断点慢慢看
        6
    909076350   46 天前
    @q8164305 感谢

    @cydysm overide 好用
        7
    murmur   46 天前
    淘宝啊,淘宝的就更恶心了,字符串拆分重组是家常便饭,你能轻松读懂对得起淘宝的工程师么
        8
    murmur   46 天前
    举个简单的例子 比如 addEventListener,在淘宝里首先要拆成 add,Event,Listener,然后每一个反序为 dda,tnevE,renetsiL,这个我是真见过这么玩的,淘宝的混淆绝对不是简单的变量函数名替换,花样超出你想象
        9
    Vegetable   46 天前
    不要想着全部读懂,只去找自己关心的部分.从一小部分开始.代码拉出来格式化,尝试将混淆过的变量名改名.理清各个作用域.
    这玩意没什么套路,就是细致的一点一点看.
    你只要相信浏览器能看懂,你也能看懂,很累就是了
        10
    lc1450   46 天前
    不一定要看懂, 找关键函数被调用的地方,打断点看参数, 然后直接调用被混淆的代码
        11
    909076350   46 天前
    @murmur 哈哈哈我目前看的下载页的混淆还好 就是 abcde addeventlistener 还是在的
        12
    909076350   46 天前
    @lc1450 想找到自己想哟的那块关键代码 死活找不到 真是哭了

    @Vegetable 是的 但是找不到 自己要的那块代码疯狂打断点了现在
        13
    AurevoirXavier   46 天前   ♥ 1
    前几天做的 https://uvwvu.xyz/JavaScript/deobfuscate-JavaScript.rs
        14
    no1xsyzy   46 天前
    先过个 JSNice 再看
        15
    quadrapop   46 天前
    只能一点点看,打断点
        16
    599316527   46 天前
    一般看混淆后代码总归有特定的目的。
    先 beautify 一下,打断点,定位到要找的目标代码大概位置,然后慢慢看。
    可以用代理工具替换下,边改边看,一些局部变量,压缩后变成三元运算符,多个逗号分隔的表达式可以改写成看起来方便的代码。
        17
    PressOne   46 天前 via Android
    你预估用别人写代码的十分之一时间去读,应该可以的。打乱的代码只是读起来费时间。
        18
    murmur   46 天前
    @599316527 阿里有个代码 chrome 直接 pretty 不行,看前面写了类似((((((((((((((((((((((((((((((())))))))))))))))))))))))))这样大量无用的标签闭合,是想让 chrome 直接报错放弃美化么?
        19
    abccccabc   46 天前
    想办法格式化
        20
    Hilong   46 天前 via Android
    在 dom 上打断点试试
        21
    1010543618   46 天前
    以前尝试过找 JS 存在内存中的变量,也是想反向看代码没看明白,最后用 Memory 找到的 https://www.cnblogs.com/jffun-blog/p/8724252.html

    感觉即使是普通压缩过想读懂也是太难了
        22
    909076350   39 天前
    @no1xsyzy 感谢 还不错的样子
    @AurevoirXavier 好尴尬不能直接打开那个链接

    @599316527 感谢 jsnice 可以哈哈哈
    @1010543618 同意 只能勉强找到自己需要的代码了
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1006 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 18:35 · PVG 02:35 · LAX 11:35 · JFK 14:35
    ♥ Do have faith in what you're doing.