当前位置:   article > 正文

面对js加密时破解全流程 python版_python解码index.jsc文件

python解码index.jsc文件

遇到各种密码加密,参数加密时,当加密较为复杂时,不好使用python重写加密方法。

这时候我们可以找到对应js代码,并直接调用js中的方法

流程如下:

这是一个网站发送短信验证码的页面,其参数被加密过:

定位到获取验证码的按钮

搜索找到该方法:

发现该方法中并未进行加密,推测在ajaxDirect中,还是找到该方法:

可以发现该方法为传入url后对参数进行拆分,然后单独加密:

定位到加密方法:(这里我们可以添加几个断点确定加密函数)

发现加密为AES加密,但是这都不重要,我们并不需要重写整个加密方法。

我们只需要了解一个大概,调用该方法传入了一个参数data,即为需要加密的字符串,如果需要加密则会返回加密过的字符串,否则返回原字符串。

我们分析得该加密是调用了AES中的encrypt方法,那我们也找到该js:

6000多行的js,看起来很复杂,但是我们不理他,直接在我们本地建立一个js文件并复制进去,并将我们需要调用的加密方法也复制进去:

这样一个我们自己的js就建立好了。

这时候我们可以去浏览器中测试一下是否可行:

新建一个浏览器标签进入开发者模式,在console中将我们的js复制进去,回车。

需要加密的字符串为 'post' ,输入encrypt('post'),回车:

我们发现,已经加密成功,说明我们的js是可以运行的。(这里如果发现不能运行,则需要回头查看是否有调用其他js的方法,也需要都复制到我们的js中。)

好的,现在回到我们的js文件中,在最后一行加上

console.log(encrypt('post'));

进入命令行中js文件目录下输入:(test为js文件名称。)

node test.js

便可以运行js文件了,这时我们发现有错误报出:

意思是我们的加密方法中没有找到cryptoJS,但我们在浏览器中明明是可以运行的,所以推测是由于上面定义了cryptoJS,但是作用域并不包括我们的加密函数。

所以我们可以进行一些小改造:

我们首先在第一行定义一个window作为全局定义:

随后在所有用到cryptoJS的地方,将cryptoJS改为window.cryptoJS

而我们的加密函数中也要做相应的修改:

这时候我们再次运行试试:

我们发现已经加密成功了。

随后我们在使用中只用调用该js中的方法即可:

(最后加上replace是由于原加密中有一段是替换符号。)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/喵喵爱编程/article/detail/765064
推荐阅读
相关标签
  

闽ICP备14008679号