本文为2015年阿里安全挑战赛中第二题的writeup。
Writeup
首先点我下载题目。直接使用jeb反编译,关键代码如下:

IDA反汇编查看Java_com_yaotong_crackme_MainActivity_securityCheck,逻辑简单,静态分析直接找到wojiushidaan,但是输入后发现不对。


密码存放在0x4450,在Java_com_yaotong_crackme_MainActivity_securityCheck中没有修改off_628C,说明只可能在init.array或JNI_OnLoad中修改。程序运行后前两者都会执行,这时0x4450存放的密码已被修改好,dump内存即可。
查看内存中libcrackme.so的地址,起始位置0x74ddc000,大小28672。通过dd命令,将内存里的数据拷贝出来。


dd指令参数说明。

打开mem,找到0x4450,密码是aiyou,bucuoo。
