-
-
[原创]第二阶段第二题解答
-
发表于:
2007-8-28 23:12
6937
-
首先确定test.txt文件前8个字节。因为52个字节长度正好覆盖到返回地址,而不破坏其他的栈数据。因此首先计算((x*0x78CC02A869948F1B)%(2^64))%0x5BE6FF82A5164785=0x0D
然后发现异或转换后,前两个字节一定是是EB 7C,正好是个跳转指令。
又发现在EXE代码中地址0x04002B8正好是JMP ESI指令,而ESI正好指向test.txt的文件内容。
因此用这个地址的值,覆盖函数返回地址,这样就保证了通用性,和windows系统无关。
因为此时EBP的内容也被破坏,为了可以重复利用,shellcode中需要恢复EBP的内容。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!