app逆向技巧

目录:

一、多头项目的特点:

二、逆向思路

1、能否判断是否注册
2、逆向过程

三、逆向工具

1、抓包工具
2、测试工具
3、hook 工具
4、反编译工具

四、 难点解决方案

1、无法抓包的问题
2、加壳问题

五、java层逆向通用方案

1、原理
2、各种加密方法简单介绍
3、案例介绍

六、TODO

一、多头项目的特点:

  • 1、以量取胜
  • 2、十个中有一个能做
  • 3、逆向难度符合二八原则

APP类型

  • web抓包型 30%
  • java加密型 50%
  • 加壳型 10%
  • so加密型 10%

需求:
当前提需求3000+,在线300+,爬虫抓取新需求1万+,估计可以提新需求3000+。

image.png

二、逆向思路

木桶原理


image.png

1、能否判断是否注册

  • 登录
  • 注册
  • 找回密码
  • 前置请求
  • 图形验证码不校验
  • 短信验证码不校验

前置请求样本:小荷金宝

image.png

2、逆向过程

  • 抓包分析
  • 做减法找出需要解密的参数
  • 实际逆向过程
    Jadx-gui 逆向代码

三、逆向工具

1、抓包工具

  • chrome开发者工具 F12
  • charles
  • HttpCanary
  • 抓包精灵

2、测试工具

  • curl
curl 'http://hebao.qimmjie.cn/Api/System/CheckUserByTel?format=json' -H 'Connection: keep-alive' -H 'Accept: */*' -H 'Origin: http://hebao.qimmjie.cn' -H 'X-Requested-With: XMLHttpRequest' -H 'User-Agent: Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'Referer: http://hebao.qimmjie.cn/mobile/regist?code=xhe312' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: zh,en-US;q=0.9,en;q=0.8,zh-CN;q=0.7,zh-TW;q=0.6' -H 'Cookie: ss-pid=Zgl1gxCyxw8y1O2TEEZy; ss-id=edcBOzPQELlzzKdRaH8n; UM_distinctid=16e86db9e0a53b-0bbac29757f2a6-3961720f-13c680-16e86db9e0bc6; CNZZDATA1277818958=190964457-1574220570-%7C1574220570; ASP.NET_SessionId=tnps4rfmeb2le5buy05gzjg1; CNZZDATA1274999399=1120458144-1574219808-%7C1574227764' --data 'Tel=17611597503' --compressed --insecure
image.png

3、hook 工具

  • Xposed
  • Frida

4、反编译工具

  • Jadx-gui
    能直接反编译dex文件,方便好用
  • JD-GUI
    需要将dex文件转到jar文件,可以跳转函数
  • JEB
    用的较少

四、 难点解决方案

1、无法抓包的问题

ssk pinning 样本:快鱼分期

image.png
image.png
image.png

2、加壳问题

解决方案:
1、手动脱壳
2、自动化脱壳方案

3、so加密

样本: 松紧贷 360加固、so加密

五、java层逆向通用方案

1、原理

市场上大部分app的加密都是在java层,而且使用的是java标准的加密库。通过 hook java的标准加密库,实现无需反编译和脱壳的逆向。

2、各种加密方法简单介绍

参考:浅谈常见的七种加密算法及实现
加密方法:

  • 1、散列算法 MD5 SHA-1 SHA-256 HMAC
  • 2、对称加密 AES DES 3DES
  • 3、非对称加密 RSA


    image.png

3、案例介绍

1)MD5生成sign类型

案例:大黄花 https://kf.dahuanghua.cn/userReg/download

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

2)SHA1生成sign类型
image.png

image.png

image.png
3)AES生成sign

提钱花 https://mobile.hnzycfc.com/registration/home?inviterId=d7f63d1a284a4a8e93be45908d53f7b7&template_num=01&nameSign=kanong_18137851591&jump_platform=APP&m_code=WSD_1

image.png

image.png

image.png

image.png

image.png

image.png

image.png

4)RSA加密手机号

米族金融 https://sj.qq.com/myapp/detail.htm?apkName=com.chainfin.meter
无法抓包需要先 hook ssl pinning

image.png

image.png

image.png

image.png

5)HMAC

分期快车 http://47.111.130.25/fqkcreg/index.html?nsukey=ToSp1SIRrsQq0jYfJsKdwMx%2BH5b2BYG34XCEPwuoMfHGIL5GUx2TULWif1mhx3wf5JvP%2FMEEZ794dPo6WREjoNLLkTbQS9Oj47kyknq1%2FAfyU2rTc07dhgXQtvfJ5lPBvmtzQXFb51%2B4ReFqSstmtQJJD0jxqvUuIAprToeTzJ8pHo%2FsmPTurzDtEfDjvsbLyPhH4N44ofXCzC5sCdbwRA%3D%3D FAIL_SHELL

这个没法下载了


image.png

image.png
5)DESede

有钱管家 https://www.wandoujia.com/apps/7878515

image.png

image.png

六、TODO

  • 1、手动so逆向
  • 2、手动脱壳
  • 3、IOS逆向
  • 4、工具的原理

同事的git有部分代码,可以参考一下

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。