标题: WEB前端逆向随笔 创建: 2024-06-25 15:09 更新: 2024-06-27 08:35 链接: https://scz.617.cn/web/202406251509.txt WEB前端逆向初学者的若干备忘。 不管用啥办法,得尽早设法F12调试,否则进展困难。 正常js不太可能用eval这类狗屎函数,Ctrl-Shift-F,全局搜索eval,命中的js都需 要手工检视。 有两类常见执行debugger的方案: eval("debugger") Function("debugger")() Hook相应函数,若其参数中有debugger,做针对性处理。这只是简单示例,见招拆招。 -------------------------------------------------------------------------- Q: F12 Network面板过滤Fetch/XHR,Type列有fetch、xhr两种,啥区别? A: XHR是老技术,Fetch是基于Promise的新技术,使用起来比XHR更简洁。 -------------------------------------------------------------------------- F12 Network Fetch/XHR Initiator 调用栈回溯 -------------------------------------------------------------------------- 据此可定位 h.send(c) -------------------------------------------------------------------------- F12 Sources XHR/fetch Breakpoints -------------------------------------------------------------------------- 即XHR断点,据此可断在 h.send(c) 断下来时,可查看h,h是XMLHttpRequest对象,有不同的"event handler",比如 -------------------------------------------------------------------------- onerror onload onloadend onloadstart onreadystatechange ontimeout -------------------------------------------------------------------------- 不一定都设置有值,有值时对应"event handler",展开后有FunctionLocation,据 此可定位"event handler"。一般onload、onreadystatechange用于处理响应。 -------------------------------------------------------------------------- Event Listener Breakpoints XHR error load loadend loadstart readystatechange timeout -------------------------------------------------------------------------- 即XHR事件断点,重点关注load、readystatechange,据此可断在 h.onreadystatechange 即使js混淆过,前述众方法仍适用,不受混淆干扰。 -------------------------------------------------------------------------- Event Listener Breakpoints Script Script First Statement -------------------------------------------------------------------------- 每个