标签:ExitProcess text 汇编程序 Visual Studio push DWORD main MessageBoxA
创建一个控制台 清除默认文件 选择项目属性 设置入口函数 设置生成依赖项 选择 在添加源文件 .asm.586 .MODEL flat, stdcall includelib user32.lib includelib kernel32.lib ExitProcess PROTO, dwExitCode:DWORD MessageBoxA PROTO hwnd : DWORD,lptxt: BYTE, lpCaption:BYTE,uType:DWORD .data Number DWORD 0 text db "shellcode",0 .code main proc push 0 push offset text push offset text push 0 call MessageBoxA add esp,16 call ExitProcess main ENDP END main没有关键字变色 可以装一个扩展asmdude 解读一下上面代码的意思
.586 ;指令集 .386-.686 都可以看你需要哪个指令集 .MODEL flat, stdcall ;模式选择 flat 代表win32程序 执行stdcall 调用约定 includelib user32.lib includelib kernel32.lib ;导入程序包 用户程序 和系统核心 都是32位 ExitProcess PROTO, dwExitCode:DWORD MessageBoxA PROTO hwnd : DWORD,lptxt: BYTE, lpCaption:BYTE,uType:DWORD ; 导出windows sdk 函数api 可以直接看 sdk 有那些函数 有几个参数 定义函数声明 后面调用 .data Number DWORD 0 text db "shellcode",0 ;数据段 .code ;代码段 入口 main 函数要在项目里面设置入口位置 main proc ;MessageBoxA 打印字符 A代表 ascii 输出 函数需要4个参数 push4个进去 push 0 push offset text push offset text push 0 call MessageBoxA add esp,16;堆栈平衡 ;结束进程 call ExitProcess main ENDP END main
标签:ExitProcess,text,汇编程序,Visual,Studio,push,DWORD,main,MessageBoxA 来源: https://www.cnblogs.com/feizianquan/p/14969715.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。