某酒店App sign、appcode签名解析(二) 脱壳分析
2021-10-21 02:01:16 Author: mp.weixin.qq.com(查看原文) 阅读量:23 收藏

一、目标

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

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

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

今天的新朋友是 BlackDex

https://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 看看。

1:hotel

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

啥也不说了,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

深呼吸,冷静一下。

  1. 老版本也Crash,说明不是新版本升级了防护策略

  2. 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);

这次没问题了,

1:rc

三、总结

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

frida被搞的时候记得试试 XcubeBase

1:ffshow

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

关注微信公众号,最新技术干货实时推送

    手机查看不方便,可以网页看

    http://91fans.com.cn

往期推荐

某酒店App sign、appcode签名解析(一) 带壳分析 r0tracer

frida调试不了怎么办?着急,在线等!


文章来源: http://mp.weixin.qq.com/s?__biz=MzI4NzMwNDI3OQ==&mid=2247484392&idx=1&sn=5fd3c3f0203262b715fc0a6c158929a6&chksm=ebcefcd0dcb975c65370bf85c61eea3a968f167b1b7acbd124d7d95806153ccf033a24933b90&mpshare=1&scene=24&srcid=0809WWas6voK0V9KwAZRvFmz&sharer_sharetime=1628472445004&sharer_shareid=5191b3dcb328f693d5261ba6bca8d267#rd
如有侵权请联系:admin#unsafe.sh