三白草

首页 » 常识 » 预防 » AntCTFXDsup3CTF
TUhjnbcbe - 2021/5/3 18:39:00
治白癜风的医院哪里好 https://wapjbk.39.net/yiyuanzaixian/bjzkbdfyy/
01JEB分析文件apk文件拖入JEB进行分析

发现程序调用了checkFlag函数对flag进行检验

发现check函数是一个native函数,所以去so文件里面寻找对应的函数。

02Flagchecker_checknative函数分析

在IDA中搜索check函数,可以搜索到一个

发现了check函数

还原参数类型

找到函数后,我们要先把第一个参数变量类型设置成JNIEnv*

这样的话对于识别一些函数会方便很多,在分析so文件的时候都推荐这样来做

基本框架分析

修改之后再观察代码信息

发现这个函数从输入中获取信息,并把长度信息保存在v6[0]的位置,传入sub_D函数进行解密,解密后的内容使用memcmp进行比对。这是一种比较常见的情况,告诉你函数操作结束后的内容,要求你逆向出函数操作来得到输入信息

分析sub_D函数

一眼可以看出是一个变种的TEA的解密函数,运算轮数为16轮,所以sum的值从0xEB90开始

使用Invertsign快速识别常量

对于0x61C这个常量,如果你做题做的不够多,可能一眼看不出来这个就是0x9EB9的补码

这个时候就可以尝试在数据上右键,Invertsign一下再看看数据

转换之后就可以看到熟悉的TEA常数了(可以借助百度来快速的分析算法)

编写TEA解密代码并解密

voidtea_decrypt(uint32_t*v,intlen){for(intidx=0;idxlen2;idx+=2){uint32_tv0=v[idx],v1=v[idx+1],sum=0xEB90,i;uint32_tdelta=0x9eb9;_DWORDv12[4];memcpy(v12,"

1
查看完整版本: AntCTFXDsup3CTF