【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法

这篇具有很好参考价值的文章主要介绍了【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

作者最近在做一个收集粉币的项目,可以用来干嘛这里就不展开了😁,需要进行登录换算token从而达到监控收集的作用,手机抓包发现他是通过APP进行计算之后再请求接口的,通过官网分析可能要比APP逆向方便多,但是通过这几天的观察我并没有头绪,这篇文章草稿创建了接近一个月了,无从下笔,借助了人工智能也没有达到效果,可见它的难度不一般(也可能是我JS基础太过薄弱的原因),本次我们用一种分析方法慢慢的瓦解击破他的层层逻辑!

JS启动分析

这里从网站入手,原因如下:

  • 没有验证码
  • JS结构清晰

【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法,笔记,python,爬虫,算法,python
观察不难发现,密码是被加密的
【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法,笔记,python,爬虫,算法,python
必定是通过js进行加密的,我们查看启动器
【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法,笔记,python,爬虫,算法,python
发现有以下几个关键JS
【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法,笔记,python,爬虫,算法,python
第一感觉是,main为主方法,其他的是用来调用的,encrypt应该是用于加密的方法,通过上面的启动器证实了main.js的确是优先启动的

找到main.js搜索password
密码通过this.encrypt()进行加密的
【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法,笔记,python,爬虫,算法,python

var n = {
phone: this.phone,
verification: this.verification,
password: this.encrypt(this.password)
};

找到encrypt()方法

encrypt(n) {
return window.encrypt(this.publicKey, n)
}

需要用到一个参数publicKey
【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法,笔记,python,爬虫,算法,python
到这里我们基本搞清楚了,登录时将原密码,进行调用window.encrypt(this.publicKey, n)加密

猜想

猜测n为原密码,如何证实呢?有很多人想说观察代码的调用,这当然可以,但如果是复杂的代码或者加密的你还能看吗?
这里用了一个浏览器自带的功能本地替换,可以无视代码加密,为什么这么说,因为代码加密最后还是要被执行,不能执行的代码加密了有啥用呢??

我们找到main.js将n弹窗显示

     encrypt(n) {
      alert(n);
      return encrypt(this.publicKey, n)
      }

【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法,笔记,python,爬虫,算法,python
替换到本地启用后,我们进行登录模拟,看看有没有效果?
【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法,笔记,python,爬虫,算法,python
【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法,笔记,python,爬虫,算法,python
这里将我的登录密码弹出来了,猜想正确!

顺藤摸瓜

有了刚刚的思想,我们直接找encrypt.js,因为在main.js中最后调用了

 return encrypt(this.publicKey, n)

而在main.js中没有其他方法了 ,在encrypt.js我们找到了相关方法

 av.encrypt = function(aG, z) {
 
        var t = new N();
        t.setPublic(a(aG), "10001");
        
        return ai(t.encrypt(z))
    }

代码是否运行到这里,和刚刚一样验证一下就可以了
【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法,笔记,python,爬虫,算法,python

发现又调用了新的方法ai(t.encrypt(z))

 function ai(aG) {
        var z;
        var aH;
        var t = "";
        for (z = 0; z + 3 <= aG.length; z += 3) {
            aH = parseInt(aG.substring(z, z + 3), 16);
            t += ad.charAt(aH >> 6) + ad.charAt(aH & 63)
        }
        if (z + 1 == aG.length) {
            aH = parseInt(aG.substring(z, z + 1), 16);
            t += ad.charAt(aH << 2)
        } else {
            if (z + 2 == aG.length) {
                aH = parseInt(aG.substring(z, z + 2), 16);
                t += ad.charAt(aH >> 2) + ad.charAt((aH & 3) << 4)
            }
        }
        while ((t.length & 3) > 0) {
            t += Y
        }
        alert(t);
        return t
        
    }

我们在修改代码将t进行弹窗显示,重新来一遍整个登录过程,观察最后的加密密码是否与请求的一致

模拟登录测试

【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法,笔记,python,爬虫,算法,python
【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法,笔记,python,爬虫,算法,python
经过对比是一致的,由于我们的环境是python,接下来借助GPT进行代码转换

代码转换

通过将涉及到的函数调用方法进行罗列,通过人工智能改写

var publicKey='ANKi9PWuvDOsagwIVvrPx77mXNV0APmjySsYjB1/GtUTY6cyKNRl2RCTt608m9nYk5VeCG2EAZRQmQNQTyfZkw0Uo+MytAkjj17BXOpY4o6+BToi7rRKfTGl6J60/XBZcGSzN1XVZ80ElSjaGE8Ocg8wbPN18tbmsy761zN5S';
var n='密码'
encrypt(publicKey, n)

encrypt(aG, z) {
        var t = new N();
        t.setPublic(a(aG), "10001");
        return ai(t.encrypt(z))
    }

    function a(aI) {
        alert("经过");
        var aG = "";
        var aH;
        var t = 0;
        var z;
        for (aH = 0; aH < aI.length; ++aH) {
            if (aI.charAt(aH) == Y) {
                break
            }
            v = ad.indexOf(aI.charAt(aH));
            if (v < 0) {
                continue
            }
            if (t == 0) {
                aG += aF(v >> 2);
                z = v & 3;
                t = 1
            } else {
                if (t == 1) {
                    aG += aF((z << 2) | (v >> 4));
                    z = v & 15;
                    t = 2
                } else {
                    if (t == 2) {
                        aG += aF(z);
                        aG += aF(v >> 2);
                        z = v & 3;
                        t = 3
                    } else {
                        aG += aF((z << 2) | (v >> 4));
                        aG += aF(v & 15);
                        t = 0
                    }
                }
            }
        }
        if (t == 1) {
            aG += aF(z << 2)
        }
        return aG
    }


        function ai(aG) {
        // alert(aG);
        var z;
        var aH;
        var t = "";
        for (z = 0; z + 3 <= aG.length; z += 3) {
            aH = parseInt(aG.substring(z, z + 3), 16);
            t += ad.charAt(aH >> 6) + ad.charAt(aH & 63)
        }
        if (z + 1 == aG.length) {
            aH = parseInt(aG.substring(z, z + 1), 16);
            t += ad.charAt(aH << 2)
        } else {
            if (z + 2 == aG.length) {
                aH = parseInt(aG.substring(z, z + 2), 16);
                t += ad.charAt(aH >> 2) + ad.charAt((aH & 3) << 4)
            }
        }
        while ((t.length & 3) > 0) {
            t += Y
        }
        alert(t);
        return t
        
    }

最后

在当今数字化时代,软件开发领域正在经历着飞速的变革和增长。随着技术的不断演进,开发者们面临着越来越多的挑战,需要不断提高他们的创造力和生产力。爬虫的数据也越来越困难,从加密到鉴权封锁IP等等,在爬虫时一定要做好自身的安全问题,切勿做超越法律以外的事情

🍋我的其他作品
《记一次云之家签到抓包》
《记一次视频抓包m3u8解密过程》
《抓包部分软件时无网络+过代理检测 解决办法 安卓黄鸟httpcanary+vmos》
《Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)》
《某课抓包视频 安卓手机:黄鸟+某课app+VirtualXposed虚拟框架》

推荐专栏:

《Python爬虫脚本项目实战》

该专栏往期文章:
《【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)》

🥦如果感觉看完文章还不过瘾,欢迎查看我的其它专栏
🥦如果你也喜欢爬虫抓包分析,请关注我,我还完成过很多独立的项目:例如滇医通等等脚本,但是由于版权的原因下架了,爬虫这一类审核比较严谨,稍有不慎就侵权违规了,所以在保证质量的同时会对文章进行筛选

如果对爬虫感兴趣请收藏或者订阅该专栏哦《Python爬虫脚本项目实战》,如果你有项目欢迎联系我,我会同步教程到本专栏!

🚀Python爬虫项目实战系列文章!!
⭐⭐欢迎订阅⭐⭐

【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口文章来源地址https://www.toymoban.com/news/detail-752528.html

到了这里,关于【爬虫逆向分析实战】某笔登录算法分析——本地替换分析法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 逆向爬虫进阶实战:突破反爬虫机制,实现数据抓取

    随着网络技术的发展,网站为了保护自己的数据和资源,纷纷采用了各种反爬虫机制。然而,逆向爬虫技术的出现,使得我们可以突破这些限制,实现对目标网站的深入分析和抓取。本文将介绍逆向爬虫进阶实战的一些技巧和代码片段,帮助读者更好地理解和掌握这一技术。

    2024年02月04日
    浏览(39)
  • WebSocket爬虫与JS逆向实战

    声明:本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!由于本人水平有限,如有理解或者描述不准确的地方,还望各位大佬指教!! 练习网站: Q3JhenkgUHJvTW9ua2V5IGh0dHBzOi8vd3d3LnBhbnpob3UuZ292LmNuL3p3Z2tfMTU4NjEve

    2024年02月07日
    浏览(36)
  • 微软Bing Chat逆向爬虫实战

    最近AIGC太火了,以OpenAI为首的一批人工智能公司一次又一次的引爆科技圈的浪潮,从ChatGPT到Sora,OpenAI在一年多时间里连续发布两个重磅产品,彻底拉开了AI时代的帷幕。而作为科技巨头微软也是OpenAi的大股东,OpenAi只要出了新模型,那么微软的Bing都是第一时间集成上去,基

    2024年04月09日
    浏览(42)
  • 微软-文字转语音.语音合成--逆向爬虫实战

    gospider 是一个golang 爬虫神器,它内置了多种爬虫模块,是golang 爬虫必备的工具包 注意:这个地址中有个X-ConnectionId参数,这个参数写死或者自己生成假的都可以,这个参数不重要 这里一个发送了三次参数,三个参数中的X-RequestId 值,这个参数写死或者自己生成假的都可以,这

    2024年02月11日
    浏览(27)
  • 爬虫逆向实战(六)--猿人学第四题

    主页地址:猿人学第四题 1、抓包 通过抓包可以发现数据接口是api/match/4 2、判断是否有加密参数 请求参数是否加密? 无 请求头是否加密? 无 响应是否加密? 响应数据无加密,但是返回的却是html代码 cookie是否加密? 无 1、看启动器 查看启动器发现有一个 request 调用堆栈,

    2024年02月12日
    浏览(30)
  • 逆向爬虫技术的进阶应用与实战技巧

    在互联网的海洋中,数据是无价的财富。爬虫技术作为获取这些数据的重要手段,一直备受关注。然而,随着网站反爬虫机制的日益完善,简单的爬虫程序已经很难满足我们的需求。因此,掌握爬虫逆向技术,突破反爬虫机制,成为了爬虫开发者必须面对的挑战。 本文将带领

    2024年03月26日
    浏览(54)
  • 爬虫逆向实战(二十三)--某准网数据

    主页地址:某准网 1、抓包 通过抓包可以发现数据接口是api_to/search/company_v2.json 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现 b 参数和 kiv 参数是加密参数 请求头是否加密? 无 响应是否加密? 通过查看“响应”模块可以发现,网站返回的响应

    2024年02月11日
    浏览(38)
  • 【hacker送书第12期】爬虫逆向进阶实战

    引领技术创新,突破网络界限,《爬虫逆向进阶实战》为你揭示数据抓取的深层奥秘。这是一本超越爬虫技术的书籍,更是通往高级逆向工程世界的通行证。 作者李玺凭借丰富经验,深入浅出地阐述了网络爬虫和Python爬虫的架构设计,助您掌握构建高效、稳定爬虫系统的核心

    2024年02月04日
    浏览(43)
  • 爬虫逆向实战(二十五)--某矿采购公告

    主页地址:某矿 1、抓包 通过抓包可以发现数据接口是cgxj/by-lx-page 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个 param 的加密参数 请求头是否加密? 无 响应是否加密? 无 cookie是否加密? 无 1、看启动器 查看启动器发现里面有一个inde

    2024年02月11日
    浏览(27)
  • 21.网络爬虫—js逆向详讲与实战

    前言 : 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 📝​📝第一篇文章《1.认识网络爬虫》获得 全站热榜第一,python领域热榜第一 。 🧾 🧾第四篇文章《4.网络爬虫—Post请求(实战演示)》 全站热榜第八 。

    2024年02月02日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包