本人在逆向某网站时,遇到Dom断点打完刷新就消失的情况,这是因为这个Dom是通过js动态加载的,而不是html静态加载的。
Dom对象都是通过createElement函数,然后再对创建的对象进行setAttribute修改属性,因为本人对document的熟悉程度并不高,平时也是打静态的Dom断点属性修改和子树修改,本次也是第一次尝试对动态Dom的hook,hook的是child的属性,但我想应该是可以hook Node.prototype.setAttribute的,等试成功了再更新本文。
方法如下:
1.找个要Hook的Dom还没加载时的地方打断点。(用那个猫编程的Fiddler插件直接hook或者油猴应该会更直接点)
2.控制台输入以下代码:
_appendChild = Node.prototype.appendChild;
Node.prototype.appendChild = function(el){
console.log(el);
//这里是要断的条件,一般打开搜索看看找下唯一标识符吧。
if(el.className && el.className == 'gt_holder gt_popup'){
debugger;
}
return _appendChild.call(this, el);
}
3.断点到下一步,如果匹配上一般都是能进入这个断点的。