遇到个debugger没法解决
(function() {var a = new Date(); debugger; return new Date() - a > 100;}())类似这样的分布在各个函数里面,修改了Function.prototype.constructor没法解决。 jsvmp的初始化是call劫持
直接针对debugger进行过滤
关于构造的函数debugger断点采用插桩和断点回溯法找到了
$bx=_$d0[$gx]内流程化构造
写字符串过滤即可
![图片.png](data/attachment/forum/202311/26/233916hwkfl131le9f3ge1.png) 网址:aHR0cHM6Ly9nYW9rYW8uY2hzaS5jb20uY24vc2NoL3NlYXJjaC0tc3Mtb24sb3B0aW9uLXFnLHNlYXJjaFR5cGUtMSxzdGFydC0wLmRodG1s jsvmp
eval的部分可以用
const oldEvla=window.eval
window.eval=function (...args){
if(args.indexOf('debugger')!==-1){
return
}
return oldEvla.call(this,...args)
}
关于匿名函数只能通过覆盖文件然后在特定位置插桩或者插桩过滤解决
更具体参阅下文
感觉这个网站挺高明的,一定要覆盖文件吗? roczyl 发表于 2023-11-27 21:56
感觉这个网站挺高明的,一定要覆盖文件吗?
覆盖文件是为了更好的分析和测试
分析出来call劫持的一步就是只需要写代码不需要覆盖文件了
有关于jsvmp的详细教程吗?就这么看,感觉还是不太懂。 roczyl 发表于 2023-11-28 09:58
有关于jsvmp的详细教程吗?就这么看,感觉还是不太懂。
下次哥哥需要解答可以接着话题继续回复
不然看不到的....
jsvmp跟传统vmp没有区别
核心思路就是对代码进行了ast
然后将变量挪到了数组管理,程序控制程度堆栈
把操作符变成了函数,同时加了ollvm等操作
只要理解vmp的加密思路就能相应的理解vmp的解密思路
https://blog.csdn.net/zjq592767809/article/details/124505259
https://cloud.tencent.com/developer/article/2208864
https://blog.csdn.net/qq_41815061/article/details/120832936
https://blog.csdn.net/zjq592767809/article/details/124066638
页:
[1]