首页
社区
课程
招聘
第一阶段第一题
发表于: 2010-10-18 16:37 4300

第一阶段第一题

2010-10-18 16:37
4300
      if ( dwFileSize <= 0x84 )
        memcpy(&down, paddress, dwFileSize);
      ((void (__thiscall *)(int (***)()))*msgbox)(&msgbox);
      (*(void (__thiscall **)(int *))sleep_1)(&sleep_1);

此处的memcpy会将msgbox这个指针的值给覆盖了。覆盖的恰恰是最后4哥字节
将这个值覆盖成读入文件内容在栈中的大概位置,
文件内容头部的值弄成shellcode开始的几个nop在栈中的大概位置
就可以执行到shellcode
mov ebx,esp保存esp
pus 0xxxxxx建立字符串
      dword_408514 = (int)GetProcAddress(v6, "MessageBoxA");

在这里找MessageBoxA
mov esp,ebx
ret返回

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 152
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
话说我没看清楚图片"exploit success"被我弄成了"success",评委老大看着办吧
2010-10-18 16:52
0
雪    币: 152
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
编译器插入的cc也没注意,悲剧了
2010-10-18 16:58
0
游客
登录 | 注册 方可回帖
返回
//