一、指标

明天的指标是某生鲜App的签名 paramsMD5 ,抓个包先:

TIP: 陈腐热乎的 1.4.5

二、步骤

老规矩,上jadx

纳尼...... 这个 qihoo 很眼生,在Windows平台下是老熟人了,没想到当初混挪动端了,它又冒出来了。

怎么办?手脱是万万不行的,这辈子都不想手脱,还好咱们有葫芦娃

https://github.com/hluwa/FRIDA-DEXDump

  1. 默念一声"我想脱个壳"。
  2. 启动 APP。
  3. 启动 frida-server。
  4. python main.py。
  5. 默数三秒,脱好了。

一堆Dex怎么找

脱完的Apk在哪里? 兄弟,你太Native了,脱完就是Apk的那不是葫芦娃,那是金刚葫芦娃。

面对这一堆Dex,咱们该怎么动手?

间接搜Dex文件?

这是相当不靠谱的,Dex是两头文件,不是源码。

用jadx一个一个关上去找?

有毅力,先把文件排个序,而后从大到小去一个一个用jadx关上。

还是jadx,不过这次是批量反编译

import os, sys# python3.7 merge_dex.py ./file/ livedexif __name__ == "__main__":    if len(sys.argv) < 3 :        print("start error")        sys.exit()    print(sys.argv[1], sys.argv[2])    path = sys.argv[1] #文件夹目录files= os.listdir(path) #失去文件夹下的所有文件名称s = []for file in files: #遍历文件夹    if file.find("dex") > 0: ## 查找dex 文件        sh = '/Users/fenfei/Desktop/tool/jadx-1.2.0/bin/jadx -j 1 -r -d ' + sys.argv[2] + " " + path + file        print(sh)        os.system(sh)

跑一遍,这下才有意思,看到了相熟的java代码

好了,这次从整个文件夹搜寻 paramsMD5

find . -path '*/.svn*' -prune -o -type f -name "*.*" | xargs grep -nH -E -i "paramsMD5"./com/rt/market/fresh/a/g.java:214:            this.a.put("paramsMD5", b(a2));./com/rt/market/fresh/common/j.java:127:        aVar.put("paramsMD5", com.rt.market.fresh.a.g.b(a2));

后果很漂亮

再进入签名函数一看:

好吧,基本就没有再挂上可爱的Frida的兴致……

三、总结

办法要找,然而脏活累活也要干,切实没方法,一个一个文件关上去找也是能承受的,反正是带薪**

有钱没欲望才是低欲望,咱们这种没钱没欲望的叫面对现实