xctf windows_reverse1
日常水一波
这道题是有加壳的(upx),用010分析就知道了
脱壳之后找到动态调试不行,经大佬讲解,发现win7之后加入了ALSR,然后这个文件不支持ALSR,所以动态调试不行,只能用ida打开
乍一看,v4和v6没有任何关系,但是查看汇编
把v4的地址放入了ecx,然后看调用的函数
v1的保存值就是ecx,所以思路就出来了。v1的值就是main函数的v4的值
然后通过地址相减(仔细看上图会发现是个负数),然后地址的差值作为另一个的索引,这里用了溢出,然后找到这个数据段进行索引就好了。
最后贴上源码
data = [ 0x7E, 0x7D, 0x7C, 0x7B, 0x7A, 0x79, 0x78, 0x77, 0x76, 0x75, 0x74, 0x73, 0x72, 0x71,
0x70, 0x6F, 0x6E, 0x6D, 0x6C, 0x6B, 0x6A, 0x69,