xx15圈子登录逆向分析,被JEB坑惨了!
本文章仅用于信息安全逆向技术分享学习,请勿用于其他用途。包括但不爬虫,点赞等违法行为,用途违法与作者无关,并立即删除本文章,如往下看代表默认同意该声明。
样本:MDcxNeWciA==
工具:fiddler、jeb、jadx、vscode
这一次是被JEB的反编译坑惨了,往下看你就知道了。。。。
一、初窥门径
1、老规矩,配置好fiddler和手机进行抓包,发现codeSign、nonce、device、third-app-token参数被加密了
2、再抓一次包,发现codeSign、nonce参数是变化的,而device、third-app-token参数是不变的,这里直觉device是Base64加密,验证一下果然是
二、崭露头角
1、二话不说先把它扔进jeb里反编译,搜索codeSign找到一处,那应该就是这里了,点进去反编译成java看一下加密过程
2、开始兴奋了,看看k0.c函数传入了哪些参数,传入三个参数,分别是 "d79658cf304d4dfe8ba1ba52e05eb2cb",s2,v
3、其中第一参数是一个固定字符串,第二个参数是传输的参数S2,第三个参数是当前时间戳,我们跟踪一下函数,查看交叉引用看看传入的是什么
4、原来S2是post请求的请求体的{"encode":1,"password":"YTEyMzQ1Njc4\n","black_box":"","username":"15823658965"}也就是这个,感觉胜利在望
三、渐入佳境
1、进入k0.c做了什么加密操作,就是把顺序排了一下,然后经过了c.c函数
2、c.c函数就是将上述排好序的字符串进行md5加密,我们去验证一下
3、哎,为什么会不一致,这里我费了很长时间思考为什么,最后发现是JEB反编译出了错,是我太相信它了,把它扔进jadx试试
四、略有小成
1、可以看到并不是jeb编译的那样,这里的固定字符串其实是随机的UUID,而这正是nonce的值
2、而k0.c里的那个llunllun字符串其实是个g()函数,看看g做了什么
3、g函数获取了a0和b0的值将它们拼接在一起然后倒序,我们去看看a0和b0是什么
4、这里的a0和b0分别是str10和str11参数,我们继续跟踪看传入了什么
5、它俩分别是R资源里的forum_key和upload_key,去jeb搜索它俩的值,原来是94ac5cfb69e87bd7和860f50db3569e448
五、出类拔萃
1、再次去验证拼接好的数据{"encode":1,"password":"YTEyMzQ1Njc4\n","black_box":"","username":"15823658965"}b98abe7390414b18a727ab7256c98249844e9653bd05f0687db78e96bfc5ca491712499367890去MD5加密后发现与codeSign一致,最后用自吐验证思路正确
JEB 会尝试自动解析“看起来不会变的常量”功能,可以关掉:
右键选 Decompile with options 菜单进行反编译吧,会弹出一个选项对话框,反模拟器那个下位框,选择 disable
https://www.52pojie.cn/forum.php?mod=redirect&goto=findpost&ptid=1893147&pid=49549101
大佬,像那种网页上登陆才能查看的会员文档,或者是那种要关注公众号验证才能查看的文档,这种一般用什么思路破解? 一脸震撼的点下了赞 注意头发,那么晚还不睡! 苹果的程序没有搞过,先学习下 看看有什么内容 666学习一下技术 暂时还达不到的水平哈哈哈哈,学习学习 学习一下 感谢分享 可以避坑