摘要:
上次用ida标记unidbg trace得到的指令时遇到如下报错: from PyQt5 import QtCore, QtWidgets, QtGui ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。 当时就有好些小伙伴给我支招,我尝试后发现确实 阅读全文
摘要:
静态分析sscronet和metasec_ml走不通了,换个思路继续搞! 1、直接打开从内存dump的so,报错如下: 本以为只是简单破坏了文件头,于是用010editor比对内存dump的so和安装包原始的so,看看哪些地方被破坏了,手动挨个恢复;结果发现两个so长度都不同了(结构都被改了),而且 阅读全文
摘要:
上次找到了两个关键的so:sscronet和metasec_ml,本想着用jni trace看看jni函数的加载顺序、参数、地址等关键信息,结果大失所望:一个都没有....... 仔细想想原因:要么是没用到,要么是加密了! 继续用ida打开mestasec_ml:发现导出函数列表发现大量的函数名都加 阅读全文
摘要:
前面介绍了PC端hook关键函数得到xxxx客户端消息,也导出了sqlite数据库;事实上,xxxx官方的答复是xxxx不会存用户的消息,所有的消息就只能存客户端的sqlite数据库,红包消息也不例外;那么通过sqlite数据是不是可以判断当前的消息是不是红包了?com.tencent.wcdb.d 阅读全文
摘要:
逆向时用frida hook java层相对比较简单,找准hook点用objection就行!或则自己写脚本hook java常见的加密/编码也很简单,核心原因就是类名、函数名称得以保留,逆向人员能快速定位!java层常见的加密/编码hook脚本这里有:https://www.cnblogs.com 阅读全文
摘要:
1、上次用打印堆栈的方法找到了libc中malloc函数的调用堆栈,仔细一看都是标准库的调用,没找到x音自己库的调用关系,这条线索自此又断了!想来想去,还是老老实实根据method profiling的调用栈挨个查找吧!原因很简单:因为用户操作的所有java层执行逻辑都被记录了,这里肯定有生成X-L 阅读全文
摘要:
1、对于逆向工作而言,最重要的工作内容之一就是trace了! 目前trace分两种场景: (1)dex-VMP壳、java层关键(比如加密)代码定位:这时需要trace函数的调用关系,目前已有android studio自带的method profiling工具可以干这事! (2)so层代码定位: 阅读全文
摘要:
1、从kanxue上拿到了一个VMP样本,用GDA打开,发现是数字壳;从androidMainfest可以找到原入口,但是已经被壳抽取了,如下: 这种情况我也不知道加壳后的apk从哪开始执行(之前分析的壳都是从壳自定义的MainActivity开始,这里还是保留了原入口,但从包结构看原入口已经没了) 阅读全文
摘要:
为了保护代码、干扰静态分析,android客户端可以通过OLLVM干扰整个so层代码执行的控制流,但不会改变函数调用的关系,所以抓住这点并不难破解OLLVM;另一个大家耳熟能详的代码保护方式就是VMP了!我之前介绍了windos下VMP代码混淆的原理,其实在android下也类似:对原来的smail 阅读全文
摘要:
做脱机协议,首先要找到关键的加密代码,然而这些代码一般都在so里面,因为逆向c/c++的难度远比java大多了!找到关键代码后,一般情况下是逐行分析,然后自己写代码复现整个加密过程。但是,有些非标准的加密算法是由一个团队实现的,整个过程非常复杂。逆向人员再去逐行分析和复现,有点“不划算”!怎么才能直 阅读全文