吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8320|回复: 18
收起左侧

[Android 原创] 对某猫的sig值的分析记录

[复制链接]
yuhan694 发表于 2020-4-23 10:51
本帖最后由 yuhan694 于 2020-4-23 10:57 编辑

上次讲了对某猫安卓端数据接口加密方式的简单分析
但是你抓包的时候会发现它提交的数据中还有一个sig值是变化的
这是提交是数据:_app_version=1.0.4&_device_id=861944247165472&_device_type=DUK-AL20&_device_version=5.1.1&_sdk_version=22&data=0CEBFE4DC9B72DF4A627357AAE961019&sig=ededc1a199d61cd4cb955687f03e59c2


第一步:搜索关键字
这里不建议搜索sig,因为搜索出来的结果有几千个,我们换一个关键字搜索
可以看到提交的数据里面有一个_sdk_version,就你了。
微信截图_20200422235009.png
搜索出来两个赋值的结果,转换成java看一下。
微信截图_20200422235042.png
看到它加了个字符串“maomi_pass_xyz”后进行了MD5加密,那“maomi_pass_xyz”前面的那一段是怎么来的???

第二步:进行动态分析
在AndroidManifest.xml找到包名和activity的android:name
打开调试模式
adb shell am start -D -n com.xxx.svideo/com.xxx.svideo.activity.SplashActivity
用jeb连接上去

在这里可以看到有两个对sig赋值的文件,分别是GetBuilder和PostFormBuilder
先是在GetBuilder的一些位置下了断点,发现没断下了,就去PostFormBuilder下断点,结果附加的时候断了下来
GetBuilder没断下来可能是进行别的操作调用的

[Java] 纯文本查看 复制代码
.method public getParams()PostFormBuilder
          .registers 9
00000000  iget-object         v4, p0, PostFormBuilder->params:TreeMap
00000004  if-nez              v4, :16
:8
00000008  new-instance        v4, TreeMap
0000000C  invoke-direct       TreeMap-><init>()V, v4
00000012  iput-object         v4, p0, PostFormBuilder->params:TreeMap
:16
00000016  iget-object         v4, p0, PostFormBuilder->params:TreeMap
0000001A  const-string        v5, "_device_id"
0000001E  invoke-static       AppUtils->getAppContext()Context
00000024  move-result-object  v6
00000026  invoke-static       AppUtils->getAndroidID(Context)String, v6
0000002C  move-result-object  v6
0000002E  invoke-virtual      TreeMap->put(Object, Object)Object, v4, v5, v6
00000034  iget-object         v4, p0, PostFormBuilder->params:TreeMap
00000038  const-string        v5, "_app_version"
0000003C  invoke-static       AppUtils->getAppContext()Context
00000042  move-result-object  v6
00000044  invoke-static       AppUtils->getAppVersionName(Context)String, v6
0000004A  move-result-object  v6
0000004C  invoke-virtual      TreeMap->put(Object, Object)Object, v4, v5, v6
00000052  iget-object         v4, p0, PostFormBuilder->params:TreeMap
00000056  const-string        v5, "_device_type"
0000005A  invoke-static       AppUtils->getModel()String
00000060  move-result-object  v6
00000062  invoke-virtual      TreeMap->put(Object, Object)Object, v4, v5, v6
00000068  iget-object         v4, p0, PostFormBuilder->params:TreeMap
0000006C  const-string        v5, "_sdk_version"
00000070  invoke-static       AppUtils->getSDKVersion()String
00000076  move-result-object  v6
00000078  invoke-virtual      TreeMap->put(Object, Object)Object, v4, v5, v6
0000007E  iget-object         v4, p0, PostFormBuilder->params:TreeMap
00000082  const-string        v5, "_device_version"
00000086  invoke-static       AppUtils->getOSVersion()String
0000008C  move-result-object  v6
0000008E  invoke-virtual      TreeMap->put(Object, Object)Object, v4, v5, v6
00000094  new-instance        v3, StringBuilder
00000098  const-string        v4, ""
0000009C  invoke-direct       StringBuilder-><init>(String)V, v3, v4
000000A2  iget-object         v4, p0, PostFormBuilder->params:TreeMap
000000A6  invoke-virtual      TreeMap->entrySet()Set, v4
000000AC  move-result-object  v4
000000AE  invoke-interface    Set->iterator()Iterator, v4
000000B4  move-result-object  v5
:B6
000000B6  invoke-interface    Iterator->hasNext()Z, v5
000000BC  move-result         v4
000000BE  if-eqz              v4, :11A
:C2
000000C2  invoke-interface    Iterator->next()Object, v5
000000C8  move-result-object  v0
000000CA  check-cast          v0, Map$Entry
000000CE  const-string        v4, "&"
000000D2  invoke-virtual      StringBuilder->append(String)StringBuilder, v3, v4
000000D8  move-result-object  v6
000000DA  invoke-interface    Map$Entry->getKey()Object, v0
000000E0  move-result-object  v4
000000E2  check-cast          v4, String
000000E6  invoke-virtual      StringBuilder->append(String)StringBuilder, v6, v4
000000EC  move-result-object  v4
000000EE  const-string        v6, "="
000000F2  invoke-virtual      StringBuilder->append(String)StringBuilder, v4, v6
000000F8  move-result-object  v6
000000FA  invoke-interface    Map$Entry->getValue()Object, v0
00000100  move-result-object  v4
00000102  check-cast          v4, String
00000106  const-string        v7, "UTF-8"
0000010A  invoke-static       EncodeUtils->urlEncode(String, String)String, v4, v7
00000110  move-result-object  v4
00000112  invoke-virtual      StringBuilder->append(String)StringBuilder, v6, v4
00000118  goto                :B6


结果调试上面这一段是获取_app_version、_device_id、_device_type、_device_version、_sdk_version、data,然后通过循环用“&”和“=”将它们连接起来
Snipaste_2020-04-23_10-40-35.png
这里就看得更加清楚了。
&_app_version=1.0.4&_device_id=861944247165472&_device_type=DUK-AL20&_device_version=5.1.1&_sdk_version=22&data=0CEBFE4DC9B72DF4A627357AAE961019
这是这一段执行上面代码后获取的。


[Java] 纯文本查看 复制代码
0000011A  invoke-virtual      StringBuilder->toString()String, v3
00000120  move-result-object  v4
v4内容: "&_app_version=1.0.4&_device_id=861944247165472&_device_type=DUK-AL20&_device_version=5.1.1&_sdk_version=22&data=0CEBFE4DC9B72DF4A627357AAE961019"
00000122  const/4             v5, 1             # 给v5赋值1
00000124  invoke-virtual      String->substring(I)String, v4, v5     # 删掉第一个字符,即最前面的&
0000012A  move-result-object  v2                       
0000012C  new-instance        v4, StringBuilder
00000130  invoke-direct       StringBuilder-><init>()V, v4
00000136  invoke-virtual      StringBuilder->append(String)StringBuilder, v4, v2
0000013C  move-result-object  v4                                                                   
0000013E  const-string        v5, "maomi_pass_xyz"                 # 在尾部加入maomi_pass_xy
00000142  invoke-virtual      StringBuilder->append(String)StringBuilder, v4, v5
00000148  move-result-object  v4
0000014A  invoke-virtual      StringBuilder->toString()String, v4
00000150  move-result-object  v4
00000152  invoke-static       EncryptUtils->encryptMD5ToString(String)String, v4          # 进行MD5加密
00000158  move-result-object  v1
0000015A  iget-object         v4, p0, PostFormBuilder->params:TreeMap
0000015E  const-string        v5, "sig"


Snipaste_2020-04-23_09-51-43.png
Snipaste_2020-04-23_09-53-42.png

微信截图_20200423105110.png

免费评分

参与人数 3威望 +1 吾爱币 +23 热心值 +3 收起 理由
qtfreet00 + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
cxp521 + 1 + 1 把我的精神食粮快要搞完了
xiaomin86 + 2 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

小丸子默默 发表于 2020-5-2 11:46
hackgsl 发表于 2020-4-23 11:52
这是去幼儿园的车不是你想的那样的

老哥方便的话吧车发一下,上次误删了发车软件哈哈哈,猫没了
小丸子默默 发表于 2020-5-2 11:46
hackgsl 发表于 2020-4-23 11:52
这是去幼儿园的车不是你想的那样的

老哥方便的话吧车发一下,上次误删了发车软件哈哈哈,猫没了
lyq3255489 发表于 2020-4-23 11:13
感谢楼主 用心的讲解 与分享    还是要喊一句  楼主666666
头像被屏蔽
CSGO01 发表于 2020-4-23 11:47
提示: 作者被禁止或删除 内容自动屏蔽
hackgsl 发表于 2020-4-23 11:52

这是去幼儿园的车不是你想的那样的
mosou 发表于 2020-4-23 12:12
手淘xsign 可以逆么 可付费
斩风 发表于 2020-4-23 13:53
讲解很详细,学习起来比较简单,谢了
梦里无念 发表于 2020-4-23 20:41
是不是猫咪段子?
雨落惊鸿, 发表于 2020-4-23 21:26
哪是什么猫
acica 发表于 2020-4-24 07:25
看不懂,看不懂,看不懂
xyl52p 发表于 2020-4-24 09:41
不错,思路比较清晰,作为小白的我都能看的懂了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-4 11:17

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表