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

第一阶段第一题

2010-10-18 16:37
4089
      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返回

[培训]《安卓高级研修班(网课)》月薪三万计划,掌 握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

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