本文为2016年京津冀挑战赛中PartFour的writeup。
Writeup
首先点我下载题目。直接使用jeb反编译,关键代码如下:
IDA反汇编发现程序采用动态注册。“IDA使用小结(三)”中我已经总结了相应的查找方法,可以轻松找到check
对应_Z5checkP7_JNIEnvP7_jclassP8_jstring
。
查看_Z5checkP7_JNIEnvP7_jclassP8_jstring
的伪代码。
check
对输入字符串进行字节校验。首先把字符串转为字节数组,然后逐位校验。v11-v22
通过memcpy
进行初始化赋值,双击v11-v22
,可以看到对应的存储地址,根据memcpy
的拷贝结果可以推断答案。
答案是6226001165384796
。