汇编语言ShellCode的问题
movesp,ebp;pushebp;movebp,esp;把当前esp赋给ebpxoredi,edi;pushedi;压入0,esp-4,;作用是构造字符串的结尾\0字...
mov esp,ebp ; push ebp ; mov ebp,esp ; 把当前esp赋给ebp xor edi,edi ; push edi ;压入0,esp-4,; 作用是构造字符串的结尾\0字符。 sub esp,08h ;加上上面,一共有12个字节,;用来放"command.com"。 mov byte ptr [ebp-0ch],63h ; c mov byte ptr [ebp-0bh],6fh ; o mov byte ptr [ebp-0ah],6dh ; m mov byte ptr [ebp-09h],6Dh ; m mov byte ptr [ebp-08h],61h ; a mov byte ptr [ebp-07h],6eh ; n mov byte ptr [ebp-06h],64h ; d mov byte ptr [ebp-05h],2Eh ; . mov byte ptr [ebp-04h],63h ; c mov byte ptr [ebp-03h],6fh ; o mov byte ptr [ebp-02h],6dh ; m一个一个生成串"command.com". lea eax,[ebp-0ch] ; push eax ; command.com串地址作为参数入栈 mov eax, 0x7801AFC3 ; call eax ; call System函数的地址 我想知道 这一段他到底是干什么额。 mov esp,ebp ; push ebp ; mov ebp,esp ; 把当前esp赋给ebp xor edi,edi ;
展开
展开全部
able同学在研究shellcode吗? mov esp, ebp push ebp // mov ebp,esp ; 把当前esp赋给ebp <—— 多余代码 不过看起不太对 如果这些代码在函数开头的话,我觉得应该是 push ebp ; 保存旧的ebp(调用本函数的函数的栈基址) mov ebp, esp ; 划定本函数的栈基址,从ebp开始向前的一段空间 sub esp, 100 ; 类似的代码是为函数局部变量预留存储空间,然后以[ebp-xxx]的形式引用它们 之后那一大串mov byte ptr [ebp-xx], yy 就是修改这片内存的值为command.com这个字符串 然后lea eax,[ebp-0ch] ; 获取字符串首地址,后面的push和call就不用说了吧,函数调用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询