web逆向日记——Dom的Hook

117 阅读1分钟

本人在逆向某网站时,遇到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.断点到下一步,如果匹配上一般都是能进入这个断点的。