Android逆向分析案例——某点评APP登陆请求数据解密

今天,七夕,单身23载的程序汪,默默地写着博客~

上一次的逆向分析案例中讲了如何去分析某酒店的APP登陆请求,为了进一步学习如何逆向分析以及学习其他公司的网络传输加解密,本次案例将继续就登陆请求的数据加密进行分析,实现从网络抓包的密文到明文的转换,这次成为炮灰的是某点评的APP~

首先,分析的步骤还是和上一次分析某酒店的APP那样:

反编译-->找关键代码-->分析请求代码加解密原理-->验证密文到明文准确性

分析步骤的重点主要是第3步和第4步,而且这两步往往是相互结合的,就有点像软件上的单元测试一样,每分析完一个加解密的地方就编写相应的测试代码去验证是否是分析中得到的加解密原理。

本次用到的工具有:APKTool(反编译),Sublime Text(smali阅读器),Xposed(hook方法,验证是否调用),Cydia Substrate(hook方法),Android Studio(编写Xposed和Cydia的hook模块),Eclipse(编写测试代码验证加解密原理),wireshark(抓包),IDA PRO(看so库),测试机。

说明:1、和上次不同,之后的分析我基本不会再用dex2jar和jd-gui这两个工具,为什么呢?因为它从smali转java不可靠,错的地方很多,只能辅助用,而且现在对smali语法已经比较熟悉,所以一般会直接看smali文件进行分析,嗯,这是进步~

2、为什么用了Xposed进行hook了,还要用Cydia来hook?因为APK反编译后,若体积较大,往往会分割成几个smali子文件夹,Xposed只能hook第一个smali文件夹下的smali文件,第二个smali文件夹下的smali文件是无法hook得到的,原因不明;其次,Cydia还能hook本地方法,也就是标记为native的方法。那为什么还用Xposed呢?这个我表示实在惭愧,Cydia最近才用,还不是很熟悉。。。

3、Xposed和Cydia都需要手机root过,而且最好不要同时安装在同一部手机,因为有可能会死机,或者发生日志输出冲突等情况。       

明确需求:分析登陆请求数据的加密原理。

开始:

----------------------------------------------------------

利用APKTool对目标APK反编译,并用Sublime Text打开:


   我们可以看到在整个反编译的工程文件夹下有三个smali的文件夹,其中第二个和第三个smali文件夹下的smali文件是无法用Xposed工具来hook的,所以需要用到Cydia Substrate。

通过关键字符串找关键代码,我们可以从登陆请求的网络抓包观察,输入账号密码后,在wireshark的过滤器输入“login”,按登陆的那一瞬间看看wireshark:


我们可以抓到一个TCP包,那么打开这个TCP流看看:


从抓包的TCP流可以看到有一段明文头(json格式)和拼接了一大段密文,很好,那段密文就是我们要解密的~

这里,我们可以推断,登陆没有用HTTP协议,所以我们可以推测登陆请求是用Sock

  • 15
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
某flutter-app逆向分析是指对于一个使用flutter框架开发的应用进行逆向工程分析。逆向工程是通过分析应用的代码、二进制文件等来了解其内部实现细节。 首先,我们需要获取该应用的安装包文件(APK或IPA文件),然后进行解包操作,将其转换为可读取的文件目录结构。 接下来,我们可以使用一些工具来提取应用的资源文件、代码文件等。对于flutter-app来说,可以提取出dart文件,这是flutter的主要代码文件,其中包含了应用的逻辑实现。 通过阅读dart文件,我们可以了解应用的代码结构、数据模型、界面设计等。可以分析应用的逻辑实现方法,包括各种函数、类、方法的调用关系。 同时,还可以通过分析相关配置文件、资源文件等来了解应用的各种设置、资源加载方式等。 在逆向过程中,还可以使用一些调试工具来进一步了解应用的运行机制。例如,hook工具可以拦截应用的函数调用,并捕获输入输出数据,用于进一步分析。 逆向分析的目的可以有很多,比如了解应用的工作原理、发现潜在的漏洞或安全问题、提供参考用于自己的开发等。 需要注意的是,逆向分析需要遵守法律规定。未经授权的逆向分析可能侵犯他人的知识产权,涉及到隐私等方面的问题。因此,在进行逆向分析之前,应该了解并遵守当地相关法律法规,避免产生法律纠纷。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值