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

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

一、目标


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


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


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


今天的新朋友是 BlackDex


github.com/CodingGay/B…

  • 脱壳
  • 延时Hook


二、步骤

BlackDex脱壳


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


分析下


根据上次的分析结果,赶紧去到

com.besxxxhotel.app.whnetcomponent.utils.SignUtil 看看。888.png

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


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


这次没问题了,


999.png


三、总结


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


frida被搞的时候记得试试 XcubeBase000.png


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


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


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


相关文章
|
20天前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
76 0
|
1月前
|
数据采集 小程序 网络安全
云擎技术---分析工信部APP备案的“传闻”
APP备案并非新事物,自2005年起已有非经营性互联网信息服务备案制度。备案针对的是网站主办者,而非用户,不涉及个人用户网络访问。网络接入服务提供者包括ISP和IDC,不限于三大运营商。通知要求不为未备案网站提供接入,但不影响国外软件使用。个人开发者不能涉及经营性内容,备案审核时长1-20个工作日。境内服务器和国内应用商店需备案,境外则无需。手机厂商不会开启白名单制,仅实行黑名单制。APP备案与民营经济发展壮大意见不冲突,工信部有权颁布相关规定。该政策不存在逐步试探底线情况,所有解读均有法律依据。
32 3
云擎技术---分析工信部APP备案的“传闻”
|
2月前
|
缓存 安全 Java
提高APP安全性的必备加固手段——深度解析代码混淆技术
提高APP安全性的必备加固手段——深度解析代码混淆技术
26 1
|
2月前
|
开发者 iOS开发
iOS App上架新规解析:如何进行App备案
iOS App上架新规解析:如何进行App备案
217 0
|
2月前
|
测试技术 Android开发
快速上手App自动化测试利器,Toast原理解析及操作实例
`Toast`是Android中的轻量级通知,短暂显示在屏幕任意位置,1-2秒后自动消失,不获取焦点且不可点击。Appium通过uiautomator2在控件树中处理Toast。在测试中,可设置隐式等待,利用XPath或Accessibility ID定位Toast元素进行检测和验证。示例代码展示了如何初始化driver,点击触发Toast,以及如何定位并读取Toast文本。
28 3
|
3月前
|
网络协议 算法 Android开发
安卓逆向 -- 实战某峰窝APP(动态分析)
安卓逆向 -- 实战某峰窝APP(动态分析)
42 4
|
3月前
|
算法
某圈app算法分析
某圈app算法分析
20 0
|
3月前
|
算法 安全 数据安全/隐私保护
某影视APP算法逆向分析
某影视APP算法逆向分析
20 0
|
1天前
PandasTA 源码解析(二十三)
PandasTA 源码解析(二十三)
7 0
|
1天前
PandasTA 源码解析(二十二)(3)
PandasTA 源码解析(二十二)
5 0

推荐镜像

更多