App逆向百例|15|某特惠App参数分析

简介: App逆向百例|15|某特惠App参数分析

观前提示:

本文章仅供学习交流,切勿用于非法通途,如有侵犯贵司请及时联系删除

样本:aHR0cHM6Ly9wYW4uYmFpZHUuY29tL3MvMWpMMEs3TGZTb3hEOUZURW1SOFhmakE/cHdkPWxpbm4=

0x1 抓包

直接抓包 找到本次受害参数api_signedata

0x2 api_sign

直接搜索api_sign 随便选一个都行

跳转过来后根据代码逻辑找具体生成位置

一直进一直进 最终到达可以看到这里为调用了gs方法 却点不进去了 观察方法流程 可以看到有初始化方法

进到初始化方法

点进去keyInfo 可以看到这里加载了libkeyinfo.so

往下看 看到gs方法 最终调用的native方法为gsNav

打开大姐姐 进到so文件 导出区域搜索JAVA_可以看到是静态注册

进到gsNav根据内容大致可分为

进到j_Functions_gs直接看伪代码逻辑

前面部分为对map的操作 大概就是取key和value拼接成字符串的操作

继续往下看 看到后面出现了j_getByteHash

进来一看发现是SHA1算法

所以 大概流程可能就是map取key和value拼接 然后sha1

具体几次sha1加密 有无加盐 拼接的字符串长啥样 还得看hook 静态分析到这 该动态分析了

直接hookj_getByteHash方法一把梭

0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
aeb47cc0  61 65 65 34 63 34 32 35 64 62 62 32 32 38 38 62  aee4c425dbb2288b
aeb47cd0  38 30 63 37 31 33 34 37 63 63 33 37 64 30 34 62  80c71347cc37d04b
aeb47ce0  61 70 69 5f 6b 65 79 3d 32 33 65 37 66 32 38 30  api_key=23e7f280
aeb47cf0  31 39 65 38 34 30 37 62 39 38 62 38 34 63 64 30  19e8407b98b84cd0
aeb47d00  35 62 35 61 65 66 32 63 26 6c 6f 67 73 3d 70 3a  5b5aef2c&logs=p:
aeb47d10  61 63 74 69 76 69 74 79 5f 69 64 25 33 44 37 35  activity_id%3D75
aeb47d20  30 30 30 34 25 32 36 61 63 74 69 76 69 74 79 5f  0004%26activity_
aeb47d30  70 61 72 61 6d 25 33 44 25 32 35 37 42 25 32 35  param%3D%257B%25
aeb47d40  32 32 63 6f 6d 6d 6f 6e 5f 73 65 74 25 32 35 32  22common_set%252
aeb47d50  32 25 32 35 33 41 25 32 35 37 42 25 32 35 32 32  2%253A%257B%2522
aeb47d60  68 6f 6c 65 25 32 35 32 32 25 32 35 33 41 25 32  hole%2522%253A%2
aeb47d70  35 32 32 31 25 32 35 32 32 25 32 35 32 43 25 32  5221%2522%252C%2
aeb47d80  35 32 32 73 74 5f 63 74 78 25 32 35 32 32 25 32  522st_ctx%2522%2
aeb47d90  35 33 41 25 32 35 32 32 2d 39 39 25 32 35 32 32  53A%2522-99%2522
           0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F  0123456789ABCDEF
bb5f7608  61 65 65 34 63 34 32 35 64 62 62 32 32 38 38 62  aee4c425dbb2288b
bb5f7618  38 30 63 37 31 33 34 37 63 63 33 37 64 30 34 62  80c71347cc37d04b
bb5f7628  33 37 37 63 33 32 37 36 37 32 32 34 61 36 66 39  377c32767224a6f9
bb5f7638  37 65 66 30 31 65 61 63 62 32 34 32 36 30 31 39  7ef01eacb2426019
bb5f7648  64 61 37 35 61 65 33 66                          da75ae3f

通过hook可知 俩次的头部都出现aee4c425dbb2288b80c71347cc37d04b这个固定字符串 可能是一段salt

每次计算都调用三次j_getByteHash根据代码分析可知

第一次为取包信息进行sha1

后面俩次就为api_sign的计算操作

验证第一次sha1 将salt+拼接的字符串进行一次sha1

然后sha1结果拼接salt再进行一次sha1

结果正确

0x3 edata

跟前面api_sign一样 最后跟到libkeyinfo.so

这里edata走的是esNav方法

大姐姐跳转过来和前面分析的一样

直接进到j_Functions_es

往下随便一翻就看到调用了AES标准算法 模式为AES/CBC/PKCS5Padding

而后结果经过拼接进行base64编码

那接下来的目标就很明确了 找KEYIV

根据拼接内容往回找 最终v59确定为IV 继续找IV的来源

往上看即可看到 就是随机生成的

而第二次拼接的v48为AES结果

根据代码可以看到KEY的来源

懒得看了 直接hook看KEY是否固定值

算法名:AES|Hex密钥:cdd17ab29b84b32552ddcfbb4abf0225
算法名:AES|Hex密钥:cdd17ab29b84b32552ddcfbb4abf0225

根据hook直接拿到结果简简单单

验证结果

base64解码 能看到解码后的结果前16位为拼接的IV

然后AES解密

成功解密


感谢各位大佬观看

感谢大佬们的文章分享 

如有错误 还请海涵

共同进步 带带弟弟


点赞 在看 分享是你对我最大的支持

逆向lin狗

相关文章
|
16小时前
|
存储 XML Android开发
Android Studio App开发入门之数据存储中共享参数SharedPreferneces的讲解及使用(附源码 超详细必看)
Android Studio App开发入门之数据存储中共享参数SharedPreferneces的讲解及使用(附源码 超详细必看)
36 0
|
16小时前
|
数据采集 小程序 网络安全
云擎技术---分析工信部APP备案的“传闻”
APP备案并非新事物,自2005年起已有非经营性互联网信息服务备案制度。备案针对的是网站主办者,而非用户,不涉及个人用户网络访问。网络接入服务提供者包括ISP和IDC,不限于三大运营商。通知要求不为未备案网站提供接入,但不影响国外软件使用。个人开发者不能涉及经营性内容,备案审核时长1-20个工作日。境内服务器和国内应用商店需备案,境外则无需。手机厂商不会开启白名单制,仅实行黑名单制。APP备案与民营经济发展壮大意见不冲突,工信部有权颁布相关规定。该政策不存在逐步试探底线情况,所有解读均有法律依据。
32 3
云擎技术---分析工信部APP备案的“传闻”
|
16小时前
|
网络协议 算法 Android开发
安卓逆向 -- 实战某峰窝APP(动态分析)
安卓逆向 -- 实战某峰窝APP(动态分析)
42 4
|
16小时前
|
算法
某圈app算法分析
某圈app算法分析
20 0
|
16小时前
|
算法 安全 数据安全/隐私保护
某影视APP算法逆向分析
某影视APP算法逆向分析
20 0
|
16小时前
|
算法 Java
某江app算法分析
某江app算法分析
17 0
|
16小时前
|
算法 数据挖掘 数据安全/隐私保护
某合伙人app算法分析
某合伙人app算法分析
16 0
|
16小时前
|
数据可视化 数据挖掘
【数据分析与可视化】使用pyecharts对App下载量数据进行可视化分析(附源码)
【数据分析与可视化】使用pyecharts对App下载量数据进行可视化分析(附源码)
68 0
|
7月前
|
数据采集 Java 数据挖掘
提升市场调研和竞品分析效率:利用Appium实现App数据爬取
提升市场调研和竞品分析效率:利用Appium实现App数据爬取
|
7月前
|
中间件 API
关于 Express API app.use 中的 path 参数用法
关于 Express API app.use 中的 path 参数用法
42 0
关于 Express API app.use 中的 path 参数用法

热门文章

最新文章