python之app逆向破解headers中的Authorization 身份验证 AES

这篇具有很好参考价值的文章主要介绍了python之app逆向破解headers中的Authorization 身份验证 AES。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

下载好app 贝壳 2018-5-2 版本

1.还是先抓包

注册入口python之app逆向破解headers中的Authorization 身份验证 AES

2.用jadx-gui打开

直接用jadx-gui打开,因为没有加壳
并搜索关键字Authorizationpython之app逆向破解headers中的Authorization 身份验证 AES

点击右键 查找用例python之app逆向破解headers中的Authorization 身份验证 AES

3.开始Hook

从以下可以看出: 由 Appid + COLON_SEPARATOR + c 组成的,最后 Base64
所以从第一个入参开始跟踪
String encodeToString = Base64.encodeToString((GetAppId + Constants.COLON_SEPARATOR + DeviceUtil.c(sb.toString())).getBytes(), 2);

python之app逆向破解headers中的Authorization 身份验证 AES

hook GetAppId 方法

python之app逆向破解headers中的Authorization 身份验证 AES
得出Hook结果
多hook几次,一看肯定是固定的,不会变的参数python之app逆向破解headers中的Authorization 身份验证 AES

hook GetAppSecret 方法

com.homelinkndk.lib.JniClientpython之app逆向破解headers中的Authorization 身份验证 AES

得出Hook结果
同样的道理,多hook几次,也是不会变的参数python之app逆向破解headers中的Authorization 身份验证 AES

跟踪 Constants.COLON_SEPARATOR

跟踪之后,发现 COLON_SEPARATOR 其实是 ":"python之app逆向破解headers中的Authorization 身份验证 AES

hook c 方法

com.homelink.midlib.util.DeviceUtilpython之app逆向破解headers中的Authorization 身份验证 AES

得出Hook结果
d5e343d453aecca8b14b2dc687c381camobile_phone_no=13918238341request_ts=1606964312
首先想到的是,先用这些参数md5 或者 sha 在线加密下看看结果是不是一样的python之app逆向破解headers中的Authorization 身份验证 AESpython之app逆向破解headers中的Authorization 身份验证 AES
通过在线加密方法得出 是SHA1 加密的结果https://www.bejson.com/enc/sha/python之app逆向破解headers中的Authorization 身份验证 AES

4.用python实现

整个js 代码文章来源地址https://www.toymoban.com/news/detail-435149.html

Java.perform(function () {
    console.log('HOOK Start!!!');
    var Des3Encrypt = Java.use("com.homelink.midlib.util.DeviceUtil");//
    console.log(Des3Encrypt);
    // 加密
    Des3Encrypt.c.overload('java.lang.String').implementation = function (args1) {
        console.log("encryptByPublicKey args1:",(args1));
        //console.log("encryptByPublicKey args2:",args2);
        //console.log("encryptByPublicKey args3:",args3);
        //console.log("Encrypt args4:",args4);
        var result1 = this.c(args1);
        console.log("encryptByPublicKey result1=",result1);
        return result1;
    };
    var Des3Encrypt = Java.use("com.homelinkndk.lib.JniClient");//
    console.log(Des3Encrypt);
    Des3Encrypt.GetAppId.overload('java.lang.Object').implementation = function (args1) {
    console.log("splitString args1:",args1);
    //console.log("encryptByPublicKey args2:",args2);
    //console.log("encryptByPublicKey args3:",args3);
    //console.log("encryptByPublicKey args4:",args4);
    var result2 = this.GetAppId(args1,args2);
    console.log("encryptByPublicKey result2=",result2);
    return result2;
    };

    // 加密
     var Des3Encrypt = Java.use("com.homelinkndk.lib.JniClient");//
    console.log(Des3Encrypt);
    Des3Encrypt.GetAppSecret.overload('java.lang.Object').implementation = function (args1) {
        console.log("encryptByPublicKey args1:",args1);
        //console.log("encryptByPublicKey args2:",args2);
        //console.log("encryptByPublicKey args3:",args3);
        //console.log("encryptByPublicKey args4:",args4);
        var result3 = this.GetAppSecret(args1);
        console.log("encryptByPublicKey result3=",result3);
        return result3;
    };

})
def get_str_sha1_secret_str(res:str):
    """
    使用sha1加密算法,返回str加密后的字符串
    """
    sha = hashlib.sha1(res.encode('utf-8'))
    encrypts = sha.hexdigest()
    # print(encrypts)
    return encrypts

phone = '15751786649'
pwd = 'shqushuiw'
t = '1606981326'
Authorization =base64.b64encode(f'20180111_android:{get_str_sha1_secret_str(f"d5e343d453aecca8b14b2dc687c381camobile_phone_no={phone}password={pwd}request_ts={t}")}'.encode())
# print(Authorization)
app下载地址
链接:https://pan.baidu.com/s/1iHZZEV9IxQS8kHfNjhl5jg 
提取码:jsw8

到了这里,关于python之app逆向破解headers中的Authorization 身份验证 AES的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Spring Authorization Server入门 (十三) 实现联合身份认证,集成Github与Gitee的OAuth登录

    什么是联合身份认证?       通过Spring Security OAuth2 Client(Login)模块集成第三方登录至自己的认证服务中,使用联合身份认证只需要请求认证服务,不通过前端来跳转三方的授权申请链接,而是统一通过认证服务来跳转,只需要维护Spring Authorization Server中身份认证提供商

    2024年02月05日
    浏览(36)
  • 【游戏逆向】Lua游戏逆向及破解方法介绍

    随着手游的发展,越来越多的Cocos-lua端游开发者转移到手游平台。Lua脚本编写逻辑的手游也是越来越多,如梦幻西游、刀塔传奇、开心消消乐、游龙英雄、奇迹暖暖、疾风猎人、万万没想到等手游。随着Lua手游的增加,其安全性更值得关注,在此归纳一些常用的分析方法,同

    2024年02月04日
    浏览(34)
  • 爬虫逆向破解翻译接口参数

    Python 请求baidu翻译接口:https://fanyi.baidu.com/v2transapi?from=zhto=en 步骤一: 查找构建请求参数 JS 断点发现如下参数:  如图所示参数解析出来对应得值。  from: 翻译文字对应语言代码 to: 需要翻译语言代码 query: 翻译文字 transtype: 固定值【realtime】 sign: 根据翻译文字设定

    2024年01月22日
    浏览(35)
  • Selenium Wire编辑header破解反爬机制和访问限制

    介绍 Selenium Wire扩展了Selenium的Python绑定,使您能够访问浏览器发出的底层请求。您已使用Selenium相同的方式编写代码,但是您获得了额外的api,用于检查请求和响应,并动态地对它们进行更改。(注:意思是这个不仅包含了selenium的功能,还额外增加了新的扩展功能,引用s

    2024年02月16日
    浏览(31)
  • axios/ajax 请求头部添加自定义字段报错(has been blocked by CORS policy: Request header field authorization is ...

    这个错误是由于浏览器的安全机制所引起的,即跨域资源共享(CORS)策略。当浏览器发现一个跨域请求时,会发送一个预检请求(Preflight Request)来确认服务器是否允许跨域请求。在预检请求中,浏览器会检查请求头中的字段是否被服务器允许。如果请求头中包含了服务器不

    2024年02月16日
    浏览(25)
  • 逆向破解学习-单机斗地主

    9000 是成功的代码 ` import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPackage; public class HookComJuneGameDouDiZhu extends HookImpl{ @Override public String packageName() { return “com.june.game.doudizhu”; } } `

    2024年02月13日
    浏览(42)
  • JS逆向案例:破解登录密码

    本人不是专业IT人员,但是对python爬虫这块非常感兴趣,在抖音上看了zhen老师的python全栈直播课程,果断选择加入zhen老师的VIP大家庭,给zhen老师投稿发文章还能挣钱, 50元 。 废话不多说,进入主题。最近在学习 JS逆向 方面的知识,由于之前做过12306的自动抢票软件,因此对

    2024年02月05日
    浏览(33)
  • Unity游戏逆向及破解方法介绍

    背景介绍 随着手游的发展,Unity3D引擎逐渐成为主流的游戏开发解决方案,传统cocos的2D游戏逐渐被取代,一些公司在Unity3D游戏方面的产出也越来越多,如天天飞车,天天来战,全民破坏神,全民偶像,全民突击等游戏。Unity3D游戏的不断产出,游戏的安全性要求也越来越高,

    2023年04月08日
    浏览(30)
  • JS逆向解密秀动app(网页接口)实现抢票【python异步请求】

       HI,上一期我出了js逆向解析五邑大学的AES加密实现模拟登录,后台不少人想让我去解析一下秀动app,去实现抢票。我看因此本文就是介绍如何去实现js逆向解析秀动网页端口实现抢票。 (本文拿最近的场:广州姜云升2022巡演) 一.逆向分析过程 首先,我们想要进入下单的

    2024年01月23日
    浏览(30)
  • 吾爱破解安卓逆向入门教程学习心得(1-4)

    b站视频链接:https://www.bilibili.com/video/BV1wT411N7sV/?vd_source=f767aeec67fd5d5cc2f6ff3e890917d0 源帖:https://www.52pojie.cn/thread-1695141-1-1.html 下载个雷电模拟器,MT管理器,NP管理器 将MT管理器,NP管理器拖到雷电 相关软件地址https://www.aliyundrive.com/s/TJoKMK6du6x 接着在雷电开启root然后重启 具体配置

    2024年02月10日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包