开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 35663|回复: 58
收起左侧

[技术文章] 安卓算法 signature 这次是从SO里的了 教程实例~

[复制链接]
结帖率:88% (7/8)
发表于 2016-3-26 21:58:27 | 显示全部楼层 |阅读模式   重庆市重庆市
一位朋友给的APP。是要搞注册算法。刚好有点时间。琢磨了以下~好久没水帖了,发一个吧。
需要的工具别找我~论坛有~度娘也有~
APP名称:微指
目标算法:signature

拿人手短~请给点精B和好评以及回复~这是发帖的动力。没人看下次还发个锤子?感谢各位捧场~
发送短信.....开始抓包~


原包数据:
POST http://userapi.weizhi.me/registersms?signature=CE0F10358832C127C02AD9027660D2B3&mobile=15223297153 HTTP/1.1
User-Agent: Android
Connection: Keep-Alive
Content-Type: application/json;charset=utf-8
Host: userapi.weizhi.me
Accept-Encoding: gzip
Content-Length: 0

原包返回:
{"code":1,"msg":"获取注册短信验证码成功","validitytime":"-1992"}  
+*****************************************************
目测是MD5算法
开始反编译提取JAR。。查找关键字“signature” 找到了一堆。于是乎根据APK包名+POST的action方法名称最终定位到这儿


原算法: localHttpSignature.putSig(Nativecore.MD5Encrypt(localStringBuilder.toString()));

确实是MD5算法。进入Nativecore.MD5Encrypt

发现算法是在SO里面。。。然后怎么办呢?




这个时候你得打算三件事。
1.尝试使用传递的数据进行MD5,猜测是否这个SO里面的MD5算法本身就是一个单纯的MD5算法?
2.SO文件内的MD5不但加密了传递的数据还附加了其他的内容进行总的MD5?
3.SO文件内的MD5是混合MD5算法或者是其他算法的结果再次MD5返回?

首先我会尝试第一种。。。
1.动态调试获取传递进入Nativecore.MD5Encrypt的传递数据



发送短信传入的数据为:mobile15223297153
再次捕获的包数据:

POST http://userapi.weizhi.me/registersms?signature=A83446F5AC8701C8CAD8AEB1A24AA4FF&mobile=15223297152 HTTP/1.1
User-Agent: Android
Connection: Keep-Alive
Content-Type: application/json;charset=utf-8
Host: userapi.weizhi.me
Accept-Encoding: gzip
Content-Length: 0
然后使用E的MD5试试看看是否一致~


使用E的MD5
到大写 (取数据摘要 (到字节集 (“mobile15223297153”)))  =“363E9C3D3D9AD0F2F19CCDE5DB054F93”  与网页的算法不一致看来是SO里改过的~

这时候用到IDA。加载SO。这个SO的名字是 wz-jni.so 从SO里寻找算法。。


搜索 字符串的方法名称 MD5Encrypt
IDA出现结果。。


定位~找到了算法。。
可以看出。是在字符串的首部加入了另外一段字符串“ 5w1d8abf75al954t608e48r3 ” 然后MD5


现在再来尝试一下~ md5(“5w1d8abf75al954t608e48r3”+“mobile15223297153”)
结果是“A83446F5AC8701C8CAD8AEB1A24AA4FF” 网页一致。那么这个MD5的算法就到位了。。


剩下的就是找注册的包啦~


注册数据:
POST http://userapi.weizhi.me/registe ... sword=bbs125la&signature=BB37856E996666DC8094BEA832843391&key=35b4a6ff9b07d387b2913bfea3a40f38&interfaceid=100000001&deviceid=864394103844744&mobile=15223297152 HTTP/1.1
User-Agent: Android
Connection: Keep-Alive
Content-Type: application/json;charset=utf-8
Host: userapi.weizhi.me
Accept-Encoding: gzip
Content-Length: 0


断点数据:


但是我发现这个注册还有一个KEY的值?看着也像MD5算法,但是设置在MD5的断点并未断下,这个时候说明这个KEY可能是常量或者另外的MD5算法。
我尝试搜索KEY的值“35b4a6ff9b07d387b2913bfea3a40f38”发现是常量~那就不管了~


开始用E写代码。。。
换个号码发短信:


手机收到:215636


注册账号:


至此已成功啦~


  
sms_send (“17749930306”)
sms_register (“17749930306”, “bbs125la”, “491974”, “864394113844745”)
返回 (0)  ' 可以根据您的需要返回任意数值
子程序名返回值类型公开备 注
sms_send_signature文本型 
参数名类 型参考可空数组备 注
mobile文本型
返回 (到大写 (取数据摘要 (到字节集 (“5w1d8abf75al954t608e48r3mobile” + mobile))))
子程序名返回值类型公开备 注
sms_send  
参数名类 型参考可空数组备 注
mobile文本型
变量名类 型静态数组备 注
url文本型 
restext文本型 
url = http://userapi.weizhi.me/registersms?signature=sms_send_signature (mobile)“&mobile=” + mobile
restext = 编码_utf8到gb2312 (到文本 (网页_访问_对象 (url, 1)))
调试输出 (restext)
子程序名返回值类型公开备 注
sms_register_signature文本型 
参数名类 型参考可空数组备 注
mobile文本型
deviceid文本型
timestamp文本型
password文本型
verifycode文本型
返回 (到大写 (取数据摘要 (到字节集 (“5w1d8abf75al954t608e48r3device2deviceid” + deviceid + “interfaceid100000001key35b4a6ff9b07d387b2913bfea3a40f38marketnameyingyongbaomobile” + mobile + “mtime” + timestamp + “password” + password + “timestamp” + timestamp + “tokenver2.6.3verifycode” + verifycode))))  ' 注册signature算法
子程序名返回值类型公开备 注
sms_register  
参数名类 型参考可空数组备 注
mobile文本型
password文本型
verifycode文本型
deviceid文本型
变量名类 型静态数组备 注
url文本型 
timestamp文本型 
signature文本型 
timestamp = 时间_取现行时间戳 ()
signature = sms_register_signature (mobile, deviceid, timestamp, password, verifycode)
url = http://userapi.weizhi.me/register?timestamp= + timestamp + “&marketname=yingyongbao&token=&device=2&mtime=” + timestamp + “&verifycode=” + verifycode + “&ver=2.6.3&password=” + password + “&signature=” + signature + “&key=35b4a6ff9b07d387b2913bfea3a40f38&interfaceid=100000001&deviceid=” + deviceid + “&mobile=” + mobile
调试输出 (取现行时间 (), 编码_utf8到gb2312 (到文本 (网页_访问_对象 (url, 1))))


i支持库列表   支持库注释   
dp1数据操作支持库一
spec特殊功能支持库



补充:
在APP里面看到了RSA算法。虽然不知道有什么卵用。可能某些关键操作需要,纯属猜测。。。也附上SO里的RSA。怎么用?别问我~论坛到处都有开源调用的方法~









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点评

能教下怎么动态调试吗??或者有什么教程网站发一个好吗?谢谢!   吉林省通化市  发表于 2018-3-19 23:15
这就是所谓的加盐MD5吧   湖南省邵阳市  发表于 2017-11-19 22:39
楼主,可否分析下JDAPP,反编译也找不到sign字符串。   广东省深圳市  发表于 2016-9-17 09:26
灰常腻害~点赞   广西壮族自治区南宁市  发表于 2016-8-3 03:06

评分

参与人数 19好评 +14 精币 +33 收起 理由
y252999822 + 1 支持开源~!感谢分享
ajjpyjh + 1 感谢发布原创作品,精易因你更精彩!
猫喵哥 + 1 + 1 感谢分享,很给力!~
噢噢噢耶 + 1 支持开源~!感谢分享
新人学习 + 1 + 2 此处应该有鼓励~
337072336 + 1 + 1 此处应该有鼓励~
米米工具 + 1 + 2 感谢分享,很给力!~
maplef + 1 + 1 感谢分享,很给力!~
zyx521147 + 1 欢迎常来帮助新人,谢谢。
a870861633 + 1 支持开源~!感谢分享
一时隐名 + 1 + 2 奉上小小红包希望笑纳
唐老湿 + 1 + 2 技术帖子,先收藏
猥琐小胖子 + 1 + 3 奉上小小红包希望笑纳
空之影 + 1 + 2 感谢分享,很给力!~
VC大圣 -1 + 3 支持开源~!感谢分享
冰点 + 1 + 5 精彩文章希望继续努力
石榴熟了 + 1 + 2 感谢讲师的教程
oldlee + 1 + 2 赞开源。。虽然之前分析过了。。不是很难。。
¢刀丛里的诗 + 1 + 2 奉上小小红包希望笑纳

查看全部评分

本帖被以下淘专辑推荐:

结帖率:50% (1/2)

签到天数: 4 天

发表于 2018-11-16 14:53:53 | 显示全部楼层   福建省莆田市
动态调试怎么操作得波多,这个要有相关教程就厉害了~~~
回复 支持 反对

使用道具 举报

结帖率:86% (50/58)
发表于 2018-1-23 15:12:38 | 显示全部楼层   河北省邢台市
不错。精辟
回复 支持 反对

使用道具 举报

发表于 2017-12-6 21:06:40 | 显示全部楼层   陕西省西安市
厉害了,向大佬学习
回复 支持 反对

使用道具 举报

结帖率:74% (23/31)

签到天数: 4 天

发表于 2017-12-4 22:08:05 | 显示全部楼层   四川省成都市
唉,过几天还是好好学加密吧
回复 支持 反对

使用道具 举报

结帖率:50% (2/4)
发表于 2017-11-13 20:35:29 | 显示全部楼层   广东省湛江市
很好,如果有其他比较复杂一点的加密教程就好了
回复 支持 反对

使用道具 举报

结帖率:100% (86/86)

签到天数: 2 天

发表于 2017-6-25 22:27:58 | 显示全部楼层   北京市北京市
qq906575379 发表于 2016-6-18 03:51
楼主用的什么调试工具

IDA,请你自行百度
回复 支持 反对

使用道具 举报

结帖率:100% (86/86)

签到天数: 2 天

发表于 2017-6-25 22:27:47 | 显示全部楼层   北京市北京市
qq906575379 发表于 2016-6-18 03:51
楼主用的什么调试工具

IDA,自行百度
回复 支持 反对

使用道具 举报

结帖率:100% (86/86)

签到天数: 2 天

发表于 2017-6-25 22:27:02 | 显示全部楼层   北京市北京市
谢谢,简洁易懂,
回复 支持 反对

使用道具 举报

结帖率:84% (16/19)

签到天数: 2 天

发表于 2017-6-14 01:08:31 | 显示全部楼层   江西省南昌市
想知道调试工具叫什么
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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