前言
dfa 攻击相关资料,可参考之前的文章 从黑盒攻击模型到白盒攻击模型
样本来自龙哥星球,需要获取可加星球。上述链接有二维码
Tips:这个样本要比前两个复杂很多,主要不是很好定位注入点,所以后面会省略很多 trace
过程,直接贴最终代码
so
先来分析 so
依旧是导出窗口搜索 java
,目标函数是 checkcode
打开之后就看到有 ollvm
混淆,真是又臭又长
随便瞄一眼这里看到了 aes
相关的符号
然后到导出窗口里搜索一下 aes
这里有两个加密函数,可以 hook
一下,看看最终走的那个函数,我这里 hook
走的是 encrypt1
函数
点进来分析一波,一个函数就是 pandding
数据填充,很明显了,然后有个 for
循环调用 EncryptOneBlock
函数,继续分析
这里点进来没有具体的函数,hook
之后发现是调用的了 0x4dcd
ida
跳转过来之后就是 aes
的核心逻辑了,白盒查表逻辑,最外层一个 for
循环,就是轮数,里面有多个 do while
循环,后面就要开始 trace
了,看看找找在哪里注入
最后是有个 base64
逻辑,所以在执行前 hook
一下,获取 aes
的加密结果
unidbg
架子搭起来
package com.qinless.linglingbang.v8014;
import com.github.unidbg.AndroidEmulator;
import com.github.unidbg.Module;
import com.github.unidbg.linux.android.AndroidEmulatorBuilder;
import com.github.unidbg.linux.android.AndroidResolver