首页
社区
课程
招聘
[原创]kanxuectf2019 第二题
发表于: 2019-3-22 10:34 9191

[原创]kanxuectf2019 第二题

2019-3-22 10:34
9191
没啥好说的,首先解压apk包,反编译(dex2jar)看看class.dex中有什么东东。
可以看到,调用了eq函数进行比较,如果返回结果为true,则对输入密码进行填充(不足24位时),然后调用aes进行解密。所以关键就在于eq这个native函数的逆向。
由于我不会调试android,所以只能直接硬看。。。
首先一进去,看到有个datadiv_decode函数,有名称的函数肯定先看啊
一看就是在解密数据,写个ida脚本解密下,看看到底是什么
哦吼,有点意思,其中就有eq函数的名称
然后再看看JNI_OnLoad函数,可以看到一个偏移地址off_4010,off_4014,先跟过去看看。
几个变量的地址和一个函数,那么这个函数就很可疑了,直接逆向它。
第一步:数据去“-”号
第二步:数据翻转,并按照8-4-4-12的格式进行保存
第三步:这里其实需要自己去分析下,其实0x23AE,0x2377是两个数组的基地址,由于他们的计算过程是采用add得来的,所以ida并没有将其识别为偏移。如果看懂了这个,其实就能知道,这就是一个简单的置换。
第四步:这里有个函数sub_D20,我刚开始也没太看懂,由于没法调试也不能看结果去猜这个函数时什么意思。后面,再看其汇编代码的时候IDA的识别出现了问题
我们看如下汇编代码

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 1
支持
分享
最新回复 (1)
雪    币: 303
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
ida脚本咋写
2021-10-19 20:37
0
游客
登录 | 注册 方可回帖
返回
//