XCTF-黑客精神

杂言

前段时间键盘坏了,电脑硬盘也坏了,买东西装系统再偷个懒放了一周左右假。期间学习巩固了一下安卓开发的知识。用了固态才知道什么叫纵享丝滑,当初就不该省这个钱。

前期工作

查壳,无。运行,点击按钮就跳到注册活动,输入注册码点击注册提示注册码已经保存。

逆向分析

文件结构

image-20200810170456157

先看MainActivity

image-20200810170922619

大概就是点击注册就去到RegActivity,那就继续看RegActivity。

image-20200810171040693

点击注册就调用了MyApp里的saveSN方法。然后弹出提示,继续看MyApp。

image-20200810171204506

注册了几个本地方法。进so层看看。发现这些方法都是动态注册的,按CTRL+S进入.data段查看。

image-20200810171515276

三个方法分别对应n1,n2,n3。查看这三个函数的代码。

先看n1

image-20200810172215652

查看文件内容是不是EoPAoY62@ElRD

再看n2

image-20200810173636844

一串操作看不太懂。然后将结果写入文件。

继续看看n3

image-20200810173852652

判断n1结果,若是真就提示输入就是flag。这个程序的逻辑就是输入的东西n2进行处理后得到EoPAoY62@ElRD的话输入就是flag。

但是打开的v7这个n2无法分析,所以打开另一个so

image-20200810192236620

发现这个算法是对称的,因为每个v11都是固定的,所以输入EoPAoY62@ElRD查看文件中的内容就是flag。

FLAG

xman{201608Am!2333}

posted @ 2020-08-10 19:44  S1mba  阅读(456)  评论(0编辑  收藏  举报