web逆向日记-webpack加载器的hook

177 阅读1分钟

如题,该hook是在hook后,像树的先序遍历一样,得到需要加载的函数字典,函数是数组形式的也必须改成字典形式。
webpack打包后的代码我就不细说了,不懂的先去某站看看基础。
首先先打断点,我需要得到i,而i是通过webpack的加载函数得到的,将断点断在加载函数中 Snipaste_2024-07-30_01-04-56.png Snipaste_2024-07-30_01-05-19.png 接着进入加载函数中,找到里面的加载函数名,加载数组和加载key,在控制台中输入以下代码进行hook,然后跳出加载函数,断在i的下一个位置。代码如下:

//n是加载函数,e是加载数组,a是加载的KEY
window.myloadfunction = o;
window._wbpk = a.toString() + ":" + (e[a] + "") + ",";
o = function(a){
    window._wbpk = window._wbpk + a.toString() + ":" + (e[a] + "") + ",";
    return window.myloadfunction(a);
}
property_list = Object.getOwnPropertyNames(myloadfunction)
for(property_name of property_list){
    o[property_name] = window.myloadfunction[property_name]
}

根据下面的控制台,发现已经hook成功,并也有原本加载函数的属性。 Snipaste_2024-07-30_01-07-27.png Snipaste_2024-07-30_01-08-16.png 控制台输入window._wbpk,得到函数字典的代码。