发布文章内容,只为自己自学逆向分析做一个记录,方便以后加以巩固学习逆向分析。
本人为逆向学习小白,所以发布的内容都是简单的逆向分析。大佬请高抬贵手!
1、分析的登陆网站地址
http://www.4399/
2、使用工具
chrome浏览器
鬼鬼调试工具
3、Post抓包登陆分析
测试账号 Steven2020 测试密码 a123456
post请求数据
loginFrom: uframe
postLoginHandler: default
layoutSelfAdapting: true
externalLogin: qq
displayMode: popup
layout: vertical
appId: www_home
gameId:
css:
redirectUrl:
sessionId:
mainDivId: popup_login_div
includeFcmInfo: false
level: 0
regLevel: 4
userNameLabel: 4399用户名
userNameTip: 请输入4399用户名
welcomeTip: 欢迎回到4399
sec: 1
password: U2FsdGVkX19YFAsLRgevHGPDmepyljKyqx7DCR3LGFs=
username: Steven2020
多次抓包可以发现,只有password 加密,其余的可以固定
4、password解密
打开开发者工具,全局搜索 password 搜索到很多的包含password的js文件;
通过一个个的排查,发现,定义password或者使用的password的地方都没有加密的代码出现;
再一次观察发现一个点,在请求登陆的后,会有一个 cryptojs-aes.js 文件出现,明显可以看到是 AES的加密;
那么换一种方式去搜索,搜索 encryptAES 或者 AES 等关键词,最终在 validation.js 中找到 加密的点
怪不得搜搜不到,_psdv 才是最终的password的变量;然后进入 encryptAES 函数
发现这个是定义的地方,接着 进入 CryptoJS.AES.encrypt 中;
可以看到 整个文件名 为cryptojs-aes.js 那么整体的文件都是和AES 有关的;
偷个懒,就不去分析AES里面的 是什么加密模式 和 IV的偏移 了;
直接全部复制到调试工具中,然后 把原先 定义encryptAES 函数的也扣过来;
调试测试 返回数据为 U2FsdGVkX18xgeNVkSQZKifFRzoHpOKkxVx5Zp9iktE=
数据一致,齐活!
然后在易语言中调试测试
发布文章内容,只为自己自学逆向分析做一个记录,方便以后加以巩固学习逆向分析。
本人为逆向学习小白,所以发布的内容都是简单的逆向分析。大佬请高抬贵手!
1、分析的登陆网站地址
http://www.4399/
2、使用工具
chrome浏览器
鬼鬼调试工具
3、Post抓包登陆分析
测试账号 Steven2020 测试密码 a123456
post请求数据
loginFrom: uframe
postLoginHandler: default
layoutSelfAdapting: true
externalLogin: qq
displayMode: popup
layout: vertical
appId: www_home
gameId:
css:
redirectUrl:
sessionId:
mainDivId: popup_login_div
includeFcmInfo: false
level: 0
regLevel: 4
userNameLabel: 4399用户名
userNameTip: 请输入4399用户名
welcomeTip: 欢迎回到4399
sec: 1
password: U2FsdGVkX19YFAsLRgevHGPDmepyljKyqx7DCR3LGFs=
username: Steven2020
多次抓包可以发现,只有password 加密,其余的可以固定
4、password解密
打开开发者工具,全局搜索 password 搜索到很多的包含password的js文件;
通过一个个的排查,发现,定义password或者使用的password的地方都没有加密的代码出现;
再一次观察发现一个点,在请求登陆的后,会有一个 cryptojs-aes.js 文件出现,明显可以看到是 AES的加密;
那么换一种方式去搜索,搜索 encryptAES 或者 AES 等关键词,最终在 validation.js 中找到 加密的点
怪不得搜搜不到,_psdv 才是最终的password的变量;然后进入 encryptAES 函数
发现这个是定义的地方,接着 进入 CryptoJS.AES.encrypt 中;
可以看到 整个文件名 为cryptojs-aes.js 那么整体的文件都是和AES 有关的;
偷个懒,就不去分析AES里面的 是什么加密模式 和 IV的偏移 了;
直接全部复制到调试工具中,然后 把原先 定义encryptAES 函数的也扣过来;
调试测试 返回数据为 U2FsdGVkX18xgeNVkSQZKifFRzoHpOKkxVx5Zp9iktE=
数据一致,齐活!
然后在易语言中调试测试