能力值:
( LV1,RANK:0 )
|
-
-
2 楼
6666
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
up
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
大佬威武!
|
能力值:
( LV1,RANK:0 )
|
-
-
5 楼
膜拜大佬
|
能力值:
( LV1,RANK:0 )
|
-
-
6 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
7 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
8 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
9 楼
大佬威武!
|
能力值:
( LV1,RANK:0 )
|
-
-
10 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
11 楼
大佬好,其实没有必要ast,xhs的ob混淆有相同的形式,找到stack和栈顶指针,然后拼接并搜索对这个变量进行赋值的位置,观察是否包含运算符,如果包含就进行插桩,不包含就跳过。这样就可以跳过ast还原,直接开始分析日志了,而且有了日志之后也不用和vmp进行纠缠。 不过这个方法的难点在于如何识别apply,我在这一步只能依靠AI,2333 不过如果非得想个办法的话,其实也能解 因为我们观察apply存在于开头的一个很长的字符串数组 然后下面存在一个自执行函数 我们可以剥离出这两个单独执行获取apply所在的真实index 然后转16进制之后到vmp里面进行搜索,搜索格式为解密函数(index),这样就能找到apply的位置了 再往下深究,一般vmp apply处会进行判定,究竟是js自带的函数还是vmp的虚拟函数,这也是一个识别的点位(但是我感觉很难,我识别不出来)
PS:感谢大佬,我一开始分析的时候AST还原了外层ob,然后跟到这儿发现又有一个ob,瞬间不想分析了,得亏看了您的文章,发现不用解混淆也能直接分析,才又有了信心哈哈哈哈,不过归根结底还是我对vmp和ob不熟练
最后于 2026-3-19 16:18
被利叶增辉编辑
,原因:
|
能力值:
( LV1,RANK:0 )
|
-
-
12 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
13 楼
666666666
|
能力值:
( LV1,RANK:0 )
|
-
-
14 楼
66666
|
能力值:
( LV1,RANK:0 )
|
-
-
15 楼
感谢分享,认真学习。
|
能力值:
( LV1,RANK:0 )
|
-
-
16 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
17 楼
&
|
能力值:
( LV1,RANK:0 )
|
-
-
18 楼
学习!!!
|
能力值:
( LV1,RANK:0 )
|
-
-
19 楼
666666666666666
|
能力值:
( LV1,RANK:0 )
|
-
-
20 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
21 楼
666
|
能力值:
( LV3,RANK:30 )
|
-
-
22 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
23 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
24 楼
666
|
能力值:
( LV1,RANK:0 )
|
-
-
25 楼
666
|
|
|