本文为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
。