-
-
[原创]【JS逆向】使用AI分析还原__NS_hxfalcon
-
发表于: 23小时前 245
-
【JS逆向】使用AI分析还原__NS_hxfalcon
声明
本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!若有侵权,请联系删除。
前言
没错,这是一篇水文。
使用AI对某手的web端__NS_hxfalcon也就是sig4进行分析、还原,没有使用MCP(主要是这个还没玩熟练),而是手动插桩+复制日志给AI进行分析的方式,部分方法采用的是“扣代码”然后转为python的方式实现的。
案例地址(来自于小林哥的分享)
aHR0cHM6Ly9tLm0uY2hlbnpob25ndGVjaC5jb20vZi9YNUI4TXZJckpiM00xdDA=
参数定位
首先是参数定位,搜索关键词“NS_hxfalcon”,然后可以发现有两个js包含这个关键词,不确定是哪一个的话可以都打上断点。可以发现“l”就是__NS_hxfalcon,而“l”来自于“Rr”的返回。
进入Rr可以看到前面拼接了一个json对象,然后调用Ee.call的$encode。
然后跟进Ee.call可以发现在一个webpack里面,也就是在Jose里面。
将整个Jose复制下来,里面有16个模块,简单补一下环境接可以出结果了,然后验证一下可以正常请求。
弃简从繁
下面我们尝试用AI分析一下这个Jose。每个模块的作用分别是什么?模块之间的调用链路是什么?哪些位置适合进行插桩?具体的插桩方式看个人习惯,文件替换、控制台注入、手动插桩等方式都可以让AI给出对应的方案。这里我选择手动插桩。
然后将日志提供给AI进行分析,AI给出了操作码映射表、关键函数调用链等信息
然后我们将__NS_hxfalcon分为两部分,HUDR_+设备指纹作为第一部分,$HE_+哈希签名作为第二部分。先对第一部分进行分析,让AI给出手动插桩的建议。
然后依旧是复制日志继续分析、还原,第一部分就这样完成了。
接下来分析第二部分,依旧是AI给出手动插桩点或者控制台命令。
我复制日志给AI,AI给出结论和下一步操作的建议。
经过几轮“交互”过后会发现一个问题,AI会认为签名使用的是标准的Blake2b、ChaCha20,导致最终结果或多或少存在一些差异,似乎这里使用的并不是标准算法?那就让AI直接将那几段JS翻译为Python。
后续就是让AI注意一下时间戳、随机数、位运算等处理,以及对apply、push等位置进行插桩。
几轮“交互”后基本就能分析出__NS_hxfalcon的算法了。