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

公众号: 奋飞安全
• 阅读 1828

一、目标

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

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

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

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

二、步骤

上jadx

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

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

结果只有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的密码学算法。

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

运气真不错,逮住了。顺利的把堆栈打出来。赤果果的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;
}

这下的结果漂亮多了。

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

没有思路的时候,找找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的的人运气都不会太坏。

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

某内容电商App sign签名分析 复习下之前的技巧 失败并不可怕,可怕的是你还相信这句话。

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

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

点赞
收藏
评论区
推荐文章
https://cloud.tencent.com/developer/article/write/1830331
一、目标今天的目标是这个sign和appcode二、步骤Jadx没法上了app加了某梆的企业版,Jadx表示无能为力了。FRIDADEXDumpDexDump出来,木有找到有效的信息。Wallbreaker葫芦娃的Wallbreaker可以做些带壳分析,不过这个样本,用Frida的Spawn模式可以载入,Attach模式会失败。而直接用Objecti
某A系电商App x-sign签名分析
一、目标前不久(我去,都大半年了)分析过我们找到了几个伪装成so的jar包。虽然rpc调用ok了,但是它的实际运算过程还是在so里面的。今天我们从它们同族的App来入手,利用Native层字符串定位的方式来定位下在哪个so中去做的运算。App版本:v4.15.1二、步骤特征字符串定位一开始选择的特征字符串是x,后来发现没有xsign好使In
某电商App sign签名算法解析(五)
一、目标李老板:奋飞呀,据说某电商App升级了,搞出了一个64位的sign。更牛的是入参都加密了!奋飞:这么拉风,拉出来咱们盘盘。v10.3.2二、步骤32位和64位我们掌握了那么多方法,先搜字符串呢?还是先Hook呢?子曾经曰过:看到32位签名就要想起MD5和HmacSHA1,看到64位签名就要想起HmacSHA256。那就先搞搞java的密码学相关
某电商App 返回数据加密解密分析(四)
一、目标最近在抓包某电商App的时候发现一个加密数据,它在做通讯地址请求的时候,请求数据做了加密。返回数据中的地址信息也是密文。今天我们的目标就是这个数据的加密解密。App版本:v10.3.0二、步骤分析一下1、数据的结尾是"",说明是Base64编码,那么我们可以尝试去HookBase64相关函数,然后打印堆栈。2、返回数据格式是json,那么我
某电商App sign签名算法解析(六)
一、目标sign的入参是加密的,不过带有很明显的两个特征,一个是结尾,再一个就是R4iSK开头。有这两个特征,我们就可以入手了。二、步骤先从Base64入手结尾的数据大概率是Base64,我们先Hook下//Base64varBase64ClassJava.use("android.util.Base64");Base64Class.e
某站App签名算法解析(一)
一、目标我们来分析某站App的sign签名算法,先搜索一下游戏,抓包结果:二、步骤这个sign依然是32位的字符串都9020年了,这种规模用户的App应该是不会裸奔在java层了,我们就直接一点,在so里面搜索sign可惜没有结果……藏起来的东西一定是重要的东西so层导出函数给java层调用,有两种方法,一种是静态注册,直接会体现在so的导出表
手把手教你从Apk中取出算法
一、目标李老板:奋飞呀,我最近从Apk里面跟踪到一个算法,代码清晰,但是我不会java,把他翻译成python貌似挺费劲的,有没有轻松省力的方法呀?奋飞:有的呀,给我加工资,我来翻译。某电商Appv10.4.5,升级之后老有小伙伴说他的sign算法变了,其实他就是做了点小动作。sign参数没有动,uuid是明文去做签名,但是抓包请求里面找不到明文uu
另一个生鲜App 抓包和mfsig签名分析(一)
一、目标市面上生鲜App一大堆,买菜也确实是高频次的刚需,这些生鲜App还都有一些有意思的共性:大都加壳了大都不好抓包今天我们分析的是某生鲜Appv9.9.59的mfsig签名。二、步骤上jadx看看这么少的包名和类名,基本可以断定是加壳了。那就先复习下BlackDex脱壳脱完壳的结果拖到PC上,赶紧jadx一下,搜一搜"mfsig"
某小说App返回数据 解密分析
一、目标李老板:奋飞呀,最近被隔离在小区里,没啥可干的呀。奋飞:看小说呀,量大管饱。我们今天的目标就是某小说Appv20210953二、步骤搜索url字符串App请求小说内容的时候没有加签名,但是返回的数据是加密的。那么我们先去jadx搜索一下这个url(novelcontent),看看有没有发现。结果是没有收获。那么很有可能这个url不是在apk中写
某酒店App sign、appcode签名解析(二) 脱壳分析
一、目标之前我们介绍过。带壳分析也是迫不得已,谁不希望零距离接触呀。App升级了5.3.3,我们的工具也升级了。今天的新朋友是BlackDex脱壳延时Hook二、步骤BlackDex脱壳安装BlackDex在显示的进程列表中选择com.platexx.boxxoota是的,壳已经脱好了,脱壳后的文件在/sdcard/Android/d
公众号:  奋飞安全
公众号: 奋飞安全
Lv1
奋飞,国家高级信息系统项目管理师,独立安全研究员。 http://91fans.com.cn/
文章
60
粉丝
4
获赞
44