首页
社区
课程
招聘
一道算法题
发表于: 2021-1-11 23:51 7227

一道算法题

2021-1-11 23:51
7227

本题为看雪3w班级作业题,大家感兴趣可以玩一下。





发现所有函数都被ollvm了,所以按照之前学到的常规分析方法,开始分析。整理好思路如下:



先静态分析,通过交叉引用或者自己的猜测大概知道哪些函数可能会参与到返回值的生成中

基于frida,构造主动调用,并对可能的函数进行hook,验证自己的猜想,并且找出核心参与返回值计算的函数

挂上ida trace,将核心函数的结果保存到本地

仔细分析本地的结果,并还原加密算法

IDA F5不可信,随便看一下就好了



构造主动调用:


针对交叉引用进行hook:

下面是我通过分析后,猜测可能会参数过程的函数,我把他们都hook了。


通过一系列hook后的分析,发现sub_FCB4会对输入做第一层加密,然后sub_F270与返回值息息相关

sub_F270返回结果,地址+1就和真正的返回值对的上


综上所述,我想着重trace两个函数

sub_FCB4

sub_F404C

Trace 结果:



配合F5 伪代码继续分析


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-1-11 23:55 被GitRoy编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 1167
活跃值: (2189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
为啥这里sub_F270要加1呢?这是根据什么原理。
2021-4-28 06:38
0
游客
登录 | 注册 方可回帖
返回
//