js逆向——webpack实战案例(一)

今日受害者网站:https://www.iciba.com/translate?type=text

首先通过跟栈的方法找到加密位置

我们跟进u函数,发现是通过webpack加载的

 

向上寻找u的加载位置,然后打上断点,刷新网页,让程序断在加载函数的位置

 

u = r.n(a)
c = r(46485) 

1、扣取webpack主文件

控制台输入r,跟进加载器内部,这样就进入了主文件,直接全部扣取下来

2、扣取webpack所有子文件

点击运行到下面一个断点

输入webpackJsonXXX命令,按照顺序扣取所有子文件,依次放到主文件的下面

这样就拿到了webpack的所有主文件和子文件

 

3、导出加载器,调用加密函数

新开一个网页,创建一段代码片段,将所有的主文件和子文件复制到里面

然后将加载器导出到全局,即window.bubu当中

 

接着就可以使用导出的加载器来执行加密函数

r=window.bubu;
a = r(68214)
u = r.n(a);
u()('6key_web_new_fanyi6dVjYLFyzfkFkk你好啊').toString().substring(0, 16) 

这样在浏览器环境下就得到了正确的结果

 

4、fd无环境调用加密函数  

然后进入fd无环境修修补补,也成功得到了正确的结果

 

5、简化webpack代码 

在fd当中获取webpack加载的所有代码

使用:window.code+=r+":"+e[r]+","来拿到所有的加载模块来简化代码

将加载的模块放到自执行函数的参数列表里面,发现简化后的代码只有700多行

将代码放到fd当中继续运行

遇到报错,我们这里大数组没有参数e,补充上e,然后把下面var e={}删除

报错t未定义,补上:var t={} 

 

这样使用fd插件就得到了简化运行的正确结果了

 

ok,今天的你就到此为止吧,明天还要接着🐺啊 

JavaScript逆向工程涉及到逆向分析、代码还原、代码修改等多个方面,其中Webpack作为一个重要的静态模块打包器,也是逆向工程中需要重点关注的一部分。以下是一些关于Webpack逆向的笔记: 1. Webpack的打包过程是从入口文件开始的,Webpack会递归地遍历所有依赖模块,并将它们打包成一个或多个Bundle文件。因此,逆向工程的第一步就是找到Webpack打包的入口文件。 2. 在入口文件中,Webpack会通过require或import语句加载其他模块,并递归地遍历所有依赖模块。因此,我们可以通过分析入口文件来了解应用的整体结构和模块依赖关系。 3. 在Webpack的打包过程中,每个模块都会被赋予一个唯一的标识符,这个标识符可以通过module.id来获取。因此,我们可以通过分析打包后的代码,来了解每个模块的标识符和依赖关系。 4. 在Webpack的打包过程中,Loader和Plugin是非常重要的扩展机制,它们可以对模块进行转换和优化。因此,我们可以通过分析Loader和Plugin的源代码,来了解它们的作用和实现原理。 5. 在逆向工程中,我们可以使用Webpack的source-map选项来生成源映射文件,从而方便我们进行代码还原和调试。同时,我们也可以使用Webpack的devtool选项来设置不同的调试工具,以便更好地进行逆向分析和调试。 总的来说,Webpack作为静态模块打包器,在JavaScript逆向工程中扮演着重要的角色。通过对Webpack逆向分析,我们可以更加深入地了解应用的整体结构和模块依赖关系,从而更好地进行代码还原和调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值