• Asuka

    一面过了,开心!

    要好好准备二面!!!

  • Asuka

    今天被问到了一个问题,先记录以下,后面遇到相应样本就去学。
    怎么分析go编写的so?

    参考帖子:GoJni 协议加解密分析 - 知乎

    基础:https://bbs.kanxue.com/thread-263921.htm

    实例:https://bbs.kanxue.com/thread-264344.htm

    初略看了下,应该是需要注意go符号、字符串格式、调用约定这些,后面遇到了就分析一下,做个流程记录差异还是挺大的!!

    关于go符号,有点像flutter,也是有dart符号问题,需要借助blutter还原符号。

    当然还可能有其他问题,遇到了再解决,学了很久不用就会忘记。遇到了再做一个完整流程记录!

  • Asuka

    最近面试,会问一些风控相关的,之前协议分析都是遇见检测对抗这些,但是不太全面深入,最近打算系统深入一下这个方向。

    大致打算从以下几个方向着手:

    • 设备指纹:唯一标识设备,主要关注需要采集哪些标识(Devices ID、蓝牙网卡等...)、如何采集(API、反射.等...)、如何存储等...

    • 加固:主要是dex、so加固、资源完整性验证、apk签名,代码混淆、vmp等,hook 检测这些我打算放到环境检测部分

    • 环境检测:检测运行环境(模拟器/真机)、root检测、hook 检测等...,这方面很庞大,而且需要深入各种框架原理、系统原理等。

    之前做协议分析中,实际也会做一些相关的对抗,但是最近打算全面深入。先从设备指纹开始吧,然后是运行环境检测,最后再做加固吧。

    加油!

  • Asuka

    这周学完LLVM控制流混淆课程,完成LLVM Pass编写。实现OLLVM基本功能控制流平坦化、虚假控制流、指令替换,还有常量替换和随机控制流。

    先完成上面的功能,后面打算用LLVM Pass实现一个简单的VM混淆,刚好看见一种叫LightWeight VM的混淆,大致原理就是:将BasickBlock中每一条指令,都分解成一个新的单独的BasickBlock,然后分配一个单独的命令码(virtual opcode)。然后将这些命令码按照一定顺序存储起来,让PC通过命令码执行对应的BasicBlock。

  • Asuka

    有空就会整理笔记,陆陆续续发到博客上来的

    moment picture