【技术文章】 有赞JS分析新手教程

  • 【技术文章】 有赞JS分析新手教程已关闭评论
  • 445
  • A+
所属分类:易语言

非原创,转载

我本人是新手,此教程也仅用于新手间互相交流,高手请轻喷

下面直接进入正题

1、首先打开登录页面,地址:https://login.youzan.com/sso/index?service=kdt,并打开F12浏览器开发工具,随意输入一些内容点击登录,然后在工具里找到post包

【技术文章】 有赞JS分析新手教程

2、右下角红框里就是我们找到的POST所发送的数据,这里可以看出其中只有password被加密了,其它的都是明文传送的

【技术文章】 有赞JS分析新手教程

3、在搜索栏里输入password进行搜索

【技术文章】 有赞JS分析新手教程

4、搜索结果第一项是global.JS,这个和jquery类似是一种JS支持库,我们一般用不到,因此先从第二个和登录相关的login.js入手,后面的css和debugger直接忽略

【技术文章】 有赞JS分析新手教程

5、login.js中有两个结果,第一个结果如下,结合上下文可以看出这里是用于判断输入是否为空的,因此不是它,继续看下一个

【技术文章】 有赞JS分析新手教程

6、显然第二个结果里也没有什么可用的信息

【技术文章】 有赞JS分析新手教程

7、既然没有找到有用的信息,我们就在login.js里继续搜索看能不能找到什么。搜索password,挨个往下翻就会找到几个和encrypt相关的函数,我们猜测它们应该和密码的加密相关,因此在这里及前后下一些断点,然后再次回到登录界面登录

【技术文章】 有赞JS分析新手教程

8、输入正确的验证码,点击登录后,发现会断在这里,然后按F10单步向下运行,运行到encrypt函数后按F11单步进入

【技术文章】 有赞JS分析新手教程

9、这里不要急,先分析下。根据浏览器工具所提示的内容可以清晰的看出,在login函数中,新建了一个t变量,它是一个json对象,包含了captcha,mobile,password等内容,其中password的内容就是我们输入的密码,然后将t作为值传入了encryptPassword这个函数中

【技术文章】 有赞JS分析新手教程

10、这里可以看到在encryptPassword中使用encrypt函数对我们的密码进行了加密,因此encrypt函数就是我们要找的最终目标

【技术文章】 有赞JS分析新手教程

11、按F11继续单步走,就会走到encrypt函数这里。看图中的分析,圆圈中的所圈的t说明整个main函数只调用了一个aes函数,t后面那些都是aes函数的子函数或方法

【技术文章】 有赞JS分析新手教程

12、继续往上翻到第298行就可以找到aes函数了,因为main函数是直接调用的aes函数,因此我们在使用的时候将aes函数里的内容拿出来直接用,然后所main函数简单改写下就可以了

【技术文章】 有赞JS分析新手教程

13、从第299行声明变量i开始,一直到1011行的括号就是所有我们需要的aes函数的内容,将其和main函数复制出来粘贴进JS调试工具中,给main函数改一个你喜欢的名字

【技术文章】 有赞JS分析新手教程

14、改完的效果如下,这样就可以直接放入易语言使用了

【技术文章】 有赞JS分析新手教程

温馨提示:本代码来源于精易论坛,点击跳转

 

weinxin
微信公众号
更多文章请关注我的微信公众号
ClownSir