XCTF-黑客精神
杂言
前段时间键盘坏了,电脑硬盘也坏了,买东西装系统再偷个懒放了一周左右假。期间学习巩固了一下安卓开发的知识。用了固态才知道什么叫纵享丝滑,当初就不该省这个钱。
前期工作
查壳,无。运行,点击按钮就跳到注册活动,输入注册码点击注册提示注册码已经保存。
逆向分析
文件结构
先看MainActivity
大概就是点击注册就去到RegActivity,那就继续看RegActivity。
点击注册就调用了MyApp里的saveSN方法。然后弹出提示,继续看MyApp。
注册了几个本地方法。进so层看看。发现这些方法都是动态注册的,按CTRL+S进入.data段查看。
三个方法分别对应n1,n2,n3。查看这三个函数的代码。
先看n1
查看文件内容是不是EoPAoY62@ElRD
再看n2
一串操作看不太懂。然后将结果写入文件。
继续看看n3
判断n1结果,若是真就提示输入就是flag。这个程序的逻辑就是输入的东西n2进行处理后得到EoPAoY62@ElRD的话输入就是flag。
但是打开的v7这个n2无法分析,所以打开另一个so
发现这个算法是对称的,因为每个v11都是固定的,所以输入EoPAoY62@ElRD查看文件中的内容就是flag。
FLAG
xman{201608Am!2333}