某酒店App sign、appcode签名解析(二) 脱壳分析

一、目标

之前我们介绍过 某酒店App sign、appcode签名解析(一) 带壳分析 r0tracer

带壳分析也是迫不得已,谁不希望零距离接触呀。

App升级了 5.3.3,我们的工具也升级了。

今天的新朋友是 Blhttps://github.com/CodingGay/BlackDex

  • 脱壳
  • 延时Hook

二、步骤

BlackDex脱壳

  • 安装BlackDex
  • 在显示的进程列表中选择 com.platexx.boxxoota
  • 是的,壳已经脱好了,脱壳后的文件在 /sdcard/Android/data/top.niunaijun.blackdexa32/dump/com.platexx.boxxoota

分析下

根据上次的分析结果,赶紧去到 com.besxxxhotel.app.whnetcomponent.utils.SignUtil 看看。

某酒店App sign、appcode签名解析(二) 脱壳分析

热泪盈眶呀,看到源代码的感觉真好。

啥也不说了,hook它。

var signCls = Java.use("com.besxxxhotel.app.whnetcomponent.utils.SignUtil"); console.log(TAG + "signCls: " + signCls); signCls.getSignString.implementation = function(a1,a2,a3,a4,a5,a6){         var result = this.getSignString(a1,a2,a3,a4,a5,a6);         console.log(TAG + "a1 = " + a1);         console.log(TAG + "a2 = " + a2);         console.log(TAG + "a3 = " + a3);         console.log(TAG + "a4 = " + a4);         console.log(TAG + "a5 = " + a5);         console.log(TAG + "a6 = " + a5);         console.log(TAG + "sign rc = " + result);          return result; }  signCls.getAppCode.implementation = function(a1,a2,a3,a4){         var result = this.getAppCode(a1,a2,a3,a4);         console.log(TAG + "a1 = " + a1);         console.log(TAG + "a2 = " + a2);         console.log(TAG + "a3 = " + a3);         console.log(TAG + "a4 = " + a4);         console.log(TAG + "AppCode rc = " + result);          return result;  }  signCls.decodeASCII.implementation = function(a){         var result = this.decodeASCII(a);         console.log(TAG + a.entrySet().toArray());         console.log(TAG + "decodeASCII: " +result);         return result; }  

挂上心爱的frida跑一下。

[Redmi 6A::platexx.boxxoota]-> Process crashed: Illegal instruction 

怎么会挂呢,没道理呀,我们是好朋友呀。上一个版本都还愉快的玩耍过?

再试试老版本,一样crash

延时Hook

深呼吸,冷静一下。

. 老版本也Crash,说明不是新版本升级了防护策略
. spawn模式下会Crash,attach模式下正常

那就好办了,spawn模式下我们可以加个延时试试。

function main() {	     Java.perform(function () {         var threadef = Java.use('java.lang.Thread');         var threadinstance = threadef.$new();  	    // ...... xxxHook code ......     }); 	 }           setTimeout(main, 1000); // setImmediate(main); 

这次没问题了,

某酒店App sign、appcode签名解析(二) 脱壳分析

三、总结

分析脱壳软件的时候,可以考虑hook 壳代码里面的 attachBaseContext getApplicationContext 函数来找到hook真实代码的时机。

frida被搞的时候记得试试 XcubeBase

某酒店App sign、appcode签名解析(二) 脱壳分析

尼采说过,杀不死你的东西会让你变得更加强大,但他没说清楚的是,那东西差点杀死你。

版权声明:玥玥 发表于 2021-08-11 19:23:54。
转载请注明:某酒店App sign、appcode签名解析(二) 脱壳分析 | 女黑客导航