首页
论坛
课程
招聘
[原创]ollvm算法还原案例分享
2021-6-21 22:25 10415

[原创]ollvm算法还原案例分享

2021-6-21 22:25
10415

看雪3W班 12月ollvm题,重点考察去混淆

解题思路:

得益于Unicorn的强大的指令trace能力,可以很容易实现对cpu执行的每一条汇编指令的跟踪,进而对ollvm保护的函数进行剪枝,去掉虚假块,大大提高逆向分析效率

通过对题目的考察,学习到如下知识点:

  1. 使用unidbg获取trace日志
  2. ida python常用函数的复习,遍历函数指令,并做修改
  3. 利用常量表识别base64编码

详细步骤

1 apk拖入jadx,获取基础信息

com.kanxue.crackme
com.kanxue.crackme.MainActivity
public boolean check(String content) {
if (jnicheck(content)) {
return true;
}
return false;
}

 

System.loadLibrary("native-lib");
public native boolean jnicheck(String str);
public static native boolean crypt2(String str);

2. 利用frida去hook关键函数,同时输入字符,点按钮验证,观察日志后发现:

jnicheck是我们的输入、crypt2是输入字符串+字符串666
frida拦截参数

3. ida分析so,直接跟踪到关键函数sub_22390、sub_19a60;发现都是ollvm混淆的,没法看


4. 用unidbg跑关键的crypt2函数,并拿到trace日志,其中重要的是地址

5. 根据题目提示信息——利用trace日志进行剪枝,查了下IDAPython API,编写剪枝代码,对2个函数剪枝。发现关键函数sub_19a60就是base64、sub_22390就是很简单的调用。


6. frida直接看strcmp函数参数:

sub_strcmp: WFVlNjY2 WFVlNjY2
对参数0解base64=XUe666,再去掉666。明文就是XUe。


2021 KCTF 秋季赛 防守篇-征题倒计时(11月14日截止)!

最后于 2021-6-28 19:56 被奔跑的阿狸编辑 ,原因: 添加下ida脚本
上传的附件:
收藏
点赞0
打赏
分享
最新回复 (8)
雪    币: 1849
活跃值: 活跃值 (87)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
萝卜炖羊肉 活跃值 2021-6-22 09:17
2
0
niubility···
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
ll亮啊 活跃值 2021-6-22 09:25
3
0
66666666666666666666666
雪    币: 1329
活跃值: 活跃值 (888)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
影………… 活跃值 1 2021-6-22 14:24
4
0
这个剪枝是什么意思?具体是怎么操作?nop掉某个分支吗?
雪    币: 5508
活跃值: 活跃值 (1284)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
alphc 活跃值 2021-6-23 10:22
5
0
同问如何剪枝
雪    币: 2365
活跃值: 活跃值 (1118)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
Dyingchen 活跃值 2021-6-23 18:25
6
0
楼主能放一下unidbg的过程脚本吗,关于trace跑真实块这种
雪    币: 2208
活跃值: 活跃值 (698)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 活跃值 2021-6-24 13:44
7
0
希望大佬们出一个Unicorn分析PC端vmp的帖子
雪    币: 4
活跃值: 活跃值 (24)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
维达3层加厚 活跃值 2021-6-26 16:07
8
0
mark
雪    币: 494
活跃值: 活跃值 (413)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
奔跑的阿狸 活跃值 1 2021-6-28 19:51
9
0
ll亮啊 66666666666666666666666

是的,将没走的代码nop掉

最后于 2021-6-28 19:52 被奔跑的阿狸编辑 ,原因:
游客
登录 | 注册 方可回帖
返回