APP逆向之易班(第一篇)

原本是不想写的,因为这个APP的这个版本其实很简单,后来想了下觉得还行记录一下吧。主要是记录每一次逆向能加深其中学到的知识点内容。也算是给自己一个交代,无论以后还是菜鸡也好还是成了大牛也罢,至少这一刻我没有虚度。

APP:易班

版本:5.0.5

使用到的工具:Frida、adb、jadx-GUI、Fiddler、MDEX、Xposed、MT管理器、逍遥模拟器

安卓版本:7.1.2

目标:实现账号密码登录

一、先抓包分析API接口

 

可以看出来是个post请求,加密的请求分析下来发现都在data里面。

其实加密的就两个地方,一个是password,一个是sig。

下一步就是放到jadx中,但是因为这个APP加壳了,所以应该是先脱壳

二、脱壳

我是用工具MDEX脱壳的,需要安装Xposed。

具体怎么说呢……非要写笔记还真不好描述,就是把APP和MDEX下载好,然后脱壳,再到指定路径把文件拷贝出来,然后再把脱壳后的dex文件从手机拷贝出来弄到电脑本地,再拖到jadx中就OK了。

三、Java层分析加密

这里接下来的查找逻辑其实和JavaScript逆向的逻辑就比较类似了,先Ctrl+F找一下子。

 这里不限于password、什么login这些都可以,这个我就不细说了,因为这个问题细说就很无聊了。总之接下来我找到了这里

怎么说,还能怎么说……

String encryptPassword = EncryptionHelper.encryptPassword(str2);

双击encryptPassword进入

 就到了这里。

private static final String TAG = "EncryptionHelper";
private static final String key = "yibanEncryPlugin";
private static final String transformation = "RSA/None/PKCS1Padding";

public static String encryptPassword(String str) {
        return new String(EncryptUtils.encryptRSA2Base64(str.getBytes(), base64Decode(JNIHelper.getEncodePwdPublicKey().getBytes()), 1024, transformation));
    }

RSA的加密赫然在眼前,还能说什么,找JNIHelper.getEncodePwdPublicKey().getBytes()是什么,也就是找加密的私钥是什么东西。这里至少需要知道RSA加密的基本逻辑和原来。

这里的找不是真的让你肉眼去找,而是frida hook。

如果直接hook ,hook出来的是一串数字,纯一串int类型的数字,这个不能直接用,具体怎么转换完了再写博客详说。

我从网上找了个直接hook RSA原生的语句,运行之后就直接hook住了他的str类型的秘钥。

至于sig这个参数,我发现这个版本其实不用也OK,这让我惊喜又意外的。

 所以现在就可以直接把密码加密发送请求试试了。

 然后这样就成功了。

另外,我这边版本好像现在登录不了了,不知道为什么,我已经学到了我想学的东西,至于其中的原来嘛,或许换个高版本的就可以了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
逆向环境通常需要使用Ubuntu操作系统的原因有以下几点: 1. 兼容性:许多逆向工具和框架是在Linux环境下开发和测试的,而Ubuntu是一种基于Linux的操作系统,因此具有更好的兼容性。逆向工具通常依赖于Linux的特定功能和库,因此在Ubuntu上更容易安装和运行。 2. 开源社区支持:Ubuntu是一个非常受欢迎的开源操作系统,拥有庞大的开源社区。这意味着有很多逆向工具和资源可以在Ubuntu上找到,并且可以从社区中获得支持和帮助。 3. 软件包管理器:Ubuntu使用APT(Advanced Package Tool)作为其软件包管理器,这使得安装和更新逆向工具和依赖项变得更加简单和方便。通过APT,您可以轻松地安装和管理各种逆向工具和库。 至于您提到的Ubuntu不能安装应用程序的问题,这可能是因为您遇到了一些特定的问题。通常情况下,Ubuntu是可以安装和运行各种应用程序的。如果您遇到了问题,您可以尝试更新您的Ubuntu系统,或者查找特定的解决方案来解决您遇到的问题。 #### 引用[.reference_title] - *1* *2* [Ubuntu 16.04 中安装第三方软件](https://blog.csdn.net/qq_42768827/article/details/118525549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [安装Ubuntu 21.04后要做的事](https://blog.csdn.net/skykingf/article/details/45267517)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值