首页
社区
课程
招聘
1
[原创]看雪CTF2017第十二题简单解析
发表于: 2017-6-24 23:35 5304

[原创]看雪CTF2017第十二题简单解析

loudy 活跃值
10
2017-6-24 23:35
5304

看雪CTF2017第十二题简单解析

    者:loudy

使用工具:IDA6.8so修改、反汇编分析、动态调试) notepad(记录) vc6.0(编程解码) android sdk emulatorandroid4.4虚拟机) jebdex反编译) ApkIDE(修改DEX、重打包)

    骤:

一、反逆向手段绕过

1dex

直接JEB分析,如下图3处红线标注的地方有MD5校验。

绕过方法也很简单,ApkIDE反编译,修改下图61行的if-eqzif-neq,并重新打包,即可直接跳过MD5检测。打包时,也许会提示某个styles.xml的几行有问题,删除那几行即可。

2so

IDA连接,程序直接退出,故肯定有反调试手段。用winrarapk文件解包后,发现lib目录有3个不同的so文件,如下,其中armeabi-v7a文件夹下的libenjoy.so文件才是我的android4.4系统需要的,分析此文件。

IDA载入,静态分析,没有发现.init表,那么我们重点分析JNI_OnLoad函数。其中sub_24B8sub_281C是两个主要的反调试函数。

sub_2350sub_2378都是同一种形式的解码函数,即按字节依次与0x16异或,解密结果都是字符串,这种函数后面还有很多,不一一介绍。

JNI_OnLoad中第14行解码结果为“check”,也即dex调用的本地函数,再看17行,跟踪到如下位置,发现check函数的实际地址为sub_3748

而此处作者也用了一个小手段,自己新建了一个名为.mytext的可执行段,sub_3748在其中实现,导致IDA在默认的.text段找不到该函数,有一定的反逆向效果。

再看JNI_OnLoad函数调用的sub_24B8函数,该函数的主要作用是读取/data/dalvik-cache/目录下的data@app@com.game.kxctf-1.apk@classes.dex文件或者data@app@com.game.kxctf-2.apk@classes.dex文件的校验值,结果与“E07784C2A2923354F18952BBDB5D81916D24D2F5”比较,不等于则exit(0)退出程序。

绕过方法也很简单直接将JNI_OnLoad中对该函数的调用以0x00覆盖即可。

JNI_OnLoad函数调用的sub_281C函数,实际就是调用sub_1B04如下,该函数创建了一个线程。

跟进后,发现线程主体如下。其中sub_25A8函数获取/proc/%d/statusState,看其中是否包含“R/S/T”sub_2628 获取/proc/%d/statusTracerPid,看是否为非0值。sub_2688执行cat /proc/%d/wchan,看结果中是否包含sys_epoll或者ptrace_stopsub_24B8之前已经分析。

从分析可以知道,该线程没有影响算法流程,因此也可以直接在JNI_OnLoad中将对sub_281C的调用以0x00覆盖,实现绕过。

最后在check函数sub_3748开头还有一处反调试,如下,分析发现sub_27B4功能和sub_24B8一模一样,不再累述,直接将调用处用0x00覆盖实现绕过。

二、算法流程分析

反逆向手段清除后就可以大胆调试,跟踪算法流程了。流程分dex层和so层两个方面讲。

1dex

   JEB分析结果很直观,将三个函数分别对输入字符串的处理结果连接起来,送入so层处理,如果so层处理结果为1,则正确。

ca.abase64编码,ba.aab.a也分别是一种编码,虽然有三种编码,但实际分析后发现,ca.aba.a都不起作用,实际只有ab.a参与了算法流程,该函数如下。


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

上传的附件:
收藏
免费 1
支持
分享
赞赏记录
参与人
雪币
留言
时间
PLEBFE
为你点赞~
2022-7-27 02:17
最新回复 (1)
雪    币: 4357
活跃值: (994)
能力值: ( LV8,RANK:142 )
在线值:
发帖
回帖
粉丝
2
修改smali文件后重新打包,总会出现错误:mismatched input 'if-neq' expecting END_METHOD_DIRECTIVE。楼主知道是什么原因吗?

2018-10-10 16:31
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册