精易论坛

标题: PUSH 内联汇编 [打印本页]

作者: Crb    时间: 2021-1-15 21:55
标题: PUSH 内联汇编
string  _txt = "我是字符串";

push _txt ,用CE查看如图1



想写成图2不知道怎么操作了.


作者: lingmingxuan    时间: 2021-1-15 21:55

#include <stdio.h>

char String[ ] = "我是字符串";

void  __deplspec(naked) PushString(char* String)
{
     __asm
        {        push ebp

                mov ebp,esp

                sub esp,0x40

                push  ebx

                push esi
       
                push edi

                mov eax,0xccccccc
                mov ecx,0x10
                lea edi,dword ptr ds:[ebp-0x40]

                rep stosd


                //实现字符串入栈,ebp+8 的地址中存的就是字符串的地址
                //将ebp+8 中的地址值赋值给eax
                mov eax,dword ptr ds:[ebp+8 ]
               
                //将 eax入栈,eax中存的就是字符串的地址
                push   eax


                pop edi
                pop esi
                pop ebx

                ret
        }  
       
       
}

int main(int argc,char* argv[])
{

        PushString(&string);

        return 0;

}




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4