V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
stonesirsir
V2EX  ›  问与答

js 逆向到底难在哪?

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

    最近一段时间 js 逆向比较感兴趣,作为一个新手,想向各位前辈请教一些经验!

    最近练手了一些网站,使用的方法有:

    • xhr 打断点,一步步的调试,很多根本就不会到关键的地方去,且遇到 sync 就更头疼了,根本定位不到
    • 使用 hook ,效果不错,对于 cookie 、header 的 hook 很有效,但是对于一些加密有时不好 hook
    • 使用内存漫游,直接用变量至去找第一次出现的地方,很暴力但很有效。
    • rpc ,持续调用感觉不是很方便

    目前觉得还有阻碍的地方:

    1. 在断点调试中,经常遇到跳来跳去的情况,同一个地方可能反复停止多次,看不懂,很头痛
    2. 找到的变量的生成那一步,把代码抠出来也很困难,除非遇到标准的 webpack ,ob 或者 ast 混淆还可以,但是这种很少见

    各位逆向大佬是我的姿势不对吗?求指教!

    8 条回复    2024-07-15 17:05:39 +08:00
    zhy321
        1
    zhy321  
       203 天前
    来早啦 等会再来看看
    dhb233
        2
    dhb233  
       203 天前
    个人感觉是,js 代码写起来相对容易,逆向的收益不是很明显。如果代码量非常大的情况下,那就纯粹是体力活,不是难不难的问题。如果代码是混淆之后的,是会比较麻烦,各种语言都一样,目的就是为了增加逆向的工作量
    stonesirsir
        3
    stonesirsir  
    OP
       203 天前 via Android
    @dhb233 那这么说 rpc 是最优解吗🙃
    otakustay
        4
    otakustay  
       203 天前
    先把压缩的代码格式化,然后拿其中一个函数给 ChatGPT ,跟它说这是压缩后的,帮忙还原一下试试。你可能会有惊喜
    junan
        5
    junan  
       203 天前
    op 都是怎么学的,有教程推荐吗
    stonesirsir
        6
    stonesirsir  
    OP
       201 天前 via Android
    @junan 网上找一些实战教程,跟着学哇
    hff123
        7
    hff123  
       139 天前
    我也是新手
    很多 Web 的 JS 逆向貌似都是补环境和纯算两种思路。

    补环境就是将整个生成加密参数的 js 文件或代码片段放在本地运行生成加密参数,但是过程中缺失的 BOM 和 DOM 对象还有一些 function 要自己补充。

    纯算就是加密算法还原。一般就是通过各种插桩调试,和解混淆去还原加密逻辑。

    感觉相比较而言补环境如果有一套自己的补环境框架,就是将浏览器环境中的 BOM 和 DOM 对象都补充完善,当然这些对象的属性值应该是可配置的或者可随机生成的,应该算是一个比较通用的解决方案。
    stonesirsir
        8
    stonesirsir  
    OP
       136 天前 via Android
    @hff123 感谢兄弟
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1050 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 21:22 · PVG 05:22 · LAX 13:22 · JFK 16:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.