1625-5 王子昂 总结《2017年9月13日》 【连续第346天总结】
A. 问鼎杯题库-逆向
B.
找flag
运行后是一个单纯的文本输入框和灰色的GetFlag按钮
拖入IDA反编译,没有main函数,只有start函数
start里没看到什么可以继续往下的内容,直接搜索字符串:
一眼看到flag,兴奋地提交
错误OTZ
那看来程序中还有对flag的处理,双击追到内存然后按x查看交叉引用
有两处调用,依次查看,发现这个有趣的函数
int sub_401000()
{
char *v0; // eax@1
CHAR Text; // [sp+0h] [bp-38h]@1
char Dst; // [sp+1h] [bp-37h]@1
char v4; // [sp+Fh] [bp-29h]@1
Text = 0;
memset(&Dst, 0, 0x30u);
strncpy_s(&Text, 0x31u, "flag:{NSCTF_md57e0cad17016b0>?45?f7c>0>4a>1c3a0}", 0x30u);//将flag字符串copy到了Text中
v0 = &v4;