jQuery曾经引领过一个时代,虽然现已没落,但是很多遗留下来的系统都用到了jQuery,其市场还是比较大的, 而笔者在做js逆向的时候发现用Chrome自带的查看元素绑定事件的功能看到的值是被jQuery包裹着一层的代码:
不容易定位到事件代码逻辑真实代码所在的位置, 这个小脚本就是解决这个问题的,提供一种简单有效的方式能够快速找到jQuery事件对应的真实代码的位置。
cc11001100-jquery-click-event-function="cc11001100_click_5"
表示此元素上有一个click类型的事件,所关联的函数的代码已经赋值到全局变量:
cc11001100_click_5
上,切换到console,粘贴cc11001100_click_5
回车:
单击跟进去,直接定位到了登录按钮的click事件所绑定的代码:
往下拉,可以看到参数mm
的加密方式:
至此梳理完毕,以比较科学的方式很轻松就定位到了加密位置。
通过hook jQuery的$.fn原型上的一些设置事件的方法来实现,目前支持的方法:
"click", "dblclick", "blur", "change", "contextmenu", "error", "focus",
"focusin", "focusout", "hover", "holdReady", "proxy", "ready", "keydown", "keypress",
"keyup", "live", "load", "mousedown", "mouseenter", "mouseleave", "mousemove", "mouseout",
"mouseover", "mouseup"
元素每被设置一个事件就会多一个属性,复制这个属性的值,对应着一个全局变量,在console上粘贴,这个就是此元素的此事件对应着的真实代码位置。
如果发现有Hook不到的情况,请在issue中反馈。
对jQuery发出的请求进行监控和Hook
如果希望有其它功能在issue区留言讨论