某内容电商App sign签名分析 复习下之前的技巧

简介: 某内容电商App sign签名分析 复习下之前的技巧

一、目标


现在内容电商,社交电商,直播电商等等概念多的眼花缭乱,终极目的就一条,卖货给你。


正如我们分析他的sign签名一样,套路就一条, jadx + frida1.png


这个sign数了数,正好32位,难道是 md5 ?


二、步骤

上jadx


先搜索下 "sign" 记得带上引号。2.png


结果只有40多个,而且第二个开上去就有眼缘,点进去看看

String a = m7166a(b, map);
if (TextUtils.isEmpty(a)) {
  return null;
}
map.put("sign", a);
return map;


这个 m7166a 应该就是我们的目标。


上Frida


先hook m7166a 试试

var dispatchECls = Java.use('anet.channel.strategy.dispatch.e');
    dispatchECls.a.overload('anet.channel.strategy.dispatch.IAmdcSign', 'java.util.Map').implementation = function (a,b) {
    var retval = this.a(a,b);
    console.log(">>> sign inMap = " + b.entrySet().toArray());
        console.log(" >>> sign rc= " + retval);
    return retval;
}

跑一下……


没反应,难道frida坏了? 还是找错了地方?


祭出javax_crypto大法


用排除法试试,咱们把 javax.crypto.Mac、java.security.MessageDigest、


javax.crypto.spec.IvParameterSpec等等一堆java的密码学算法统统hook一遍,期望它用的是标准的java的密码学算法。3.png


运气真不错,逮住了。顺利的把堆栈打出来。赤果果的md5。


全hook打出来的信息太杂乱了,我们关掉这一堆hook,只单独hook 堆栈中找到的这个函数。

var md5UseCls = Java.use('com.sxxdx.client.base.utils.Na');
md5UseCls.a.overload('java.lang.String').implementation = function(a){
    var retval = this.a(a);
    console.log(">>> md5 inStr = " + a);
    console.log(" >>> md5 rc= " + retval);
    return retval;
}


这下的结果漂亮多了。6.png


没有思路的时候,找找log


这次咱们运气不错,定位到了关键的地方。如果下次没有这么运气好怎么办?


一个负责任的Android程序一定会打log,所以如果找不到思路的时候,可以把程序的所有log打出来。


一个负责任的Android程序在发布的时候一定会关掉Debug的log开关。


所以我们找到log类的时候,可以先用 objection 批量搞搞,看看是哪个函数会被调用。


这里我们发现 anet.channel.util.ALog 类就是我们要找的目标

objection -g com.sxxdx.client.android explore
android hooking watch  class 'anet.channel.util.ALog'


和我们预料的一样,他并没有傻乎乎的去打日志,而是判断了是否打日志的开关。

com.sxxdx.client.android on (google: 10) [usb] # (agent) [657071] Called anet.channel.util.ALog.isPrintLog(int)
(agent) [657071] Called anet.channel.util.ALog.isPrintLog(int)
(agent) [657071] Called anet.channel.util.ALog.isPrintLog(int)
(agent) [657071] Called anet.channel.util.ALog.isPrintLog(int)
(agent) [657071] Called anet.channel.util.ALog.isPrintLog(int)
(agent) [657071] Called anet.channel.util.ALog.isPrintLog(int)


只好暴力上了,把 anet.channel.util.ALog 类的所有函数都hook一遍,入参都打印处理。 再细细分析了。


三、总结


貌似运气比技术重要,会写js的的人运气都不会太坏。


系统库函数、常用密码学处理函数要熟悉,大家都是站在一个起跑线上,软件工程教我们要复用,模块。 逆向工程教我们要多处复制,不要把关键点都写在一处。7.png


失败并不可怕,可怕的是你还相信这句话。


TIP: 本文的目的只有一个就是学习更多的逆向技巧和思路,如果有人利用本文技术去进行非法商业获取利益带来的法律责任都是操作者自己承担,和本文以及作者没关系,本文涉及到的代码项目可以去 奋飞的朋友们 知识星球自取,欢迎加入知识星球一起学习探讨技术。有问题可以加我wx: fenfei331 讨论下。


关注微信公众号: 奋飞安全,最新技术干货实时推送


相关文章
|
1月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
3月前
|
安全
【Azure App Service】App service无法使用的情况分析
App Service集成子网后,如果子网网段中的剩余IP地址非常少的情况下,会在App Service实例升级时( 先加入新实例,然后在移除老实例 )。新加入的实例不能被分配到正确的内网IP地址,无法成功的访问内网资源。 解决方法就是为App Service增加子网地址, 最少需要/26 子网网段地址。
|
4月前
【Azure Function App】本地运行的Function发布到Azure上无法运行的错误分析
【Azure Function App】本地运行的Function发布到Azure上无法运行的错误分析
|
4月前
|
开发框架 缓存 .NET
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
【App Service】在Azure App Service中分析.NET应用程序的性能的好帮手(Review Stack Traces)
|
2月前
|
JSON 小程序 JavaScript
uni-app开发微信小程序的报错[渲染层错误]排查及解决
uni-app开发微信小程序的报错[渲染层错误]排查及解决
695 7
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
750 1
|
1天前
|
JSON 缓存 前端开发
HarmonyOS NEXT 5.0鸿蒙开发一套影院APP(附带源码)
本项目基于HarmonyOS NEXT 5.0开发了一款影院应用程序,主要实现了电影和影院信息的展示功能。应用包括首页、电影列表、影院列表等模块。首页包含轮播图与正在热映及即将上映的电影切换显示;电影列表模块通过API获取电影数据并以网格形式展示,用户可以查看电影详情;影院列表则允许用户选择城市后查看对应影院信息,并支持城市选择弹窗。此外,项目中还集成了Axios用于网络请求,并进行了二次封装以简化接口调用流程,同时添加了请求和响应拦截器来处理通用逻辑。整体代码结构清晰,使用了组件化开发方式,便于维护和扩展。 该简介概括了提供的内容,但请注意实际开发中还需考虑UI优化、性能提升等方面的工作。
30 11
|
4天前
|
供应链 搜索推荐 API
1688APP原数据API接口的开发、应用与收益(一篇文章全明白)
1688作为全球知名的B2B电商平台,通过开放的原数据API接口,为开发者提供了丰富的数据资源,涵盖商品信息、交易数据、店铺信息、物流信息和用户信息等。本文将深入探讨1688 APP原数据API接口的开发、应用及其带来的商业收益,包括提升流量、优化库存管理、增强用户体验等方面。
30 6
|
5天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
28 3
|
11天前
|
移动开发 小程序 PHP
校园圈子论坛系统采取的PHP语音和uni账号开发的小程序APP公众号H5是否只需要4800元?是的,就是只需要4800元
关于校园圈子论坛系统采用PHP语言和uni-app开发的小程序、APP、公众号和H5是否仅需4800元这个问题,实际上很难给出一个确定的答案。这个价格可能受到多种因素的影响
47 8

热门文章

最新文章