zoukankan      html  css  js  c++  java
  • 在Visual Studio中开发汇编程序

    创建一个控制台
    0
    清除默认文件
    0
    选择项目属性 设置入口函数
    0
    设置生成依赖项
    0
    选择
    0
    在添加源文件 .asm
    0
     
    .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
    0
    0
    0
    解读一下上面代码的意思
     
    .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
     
    从此山高路远,纵马扬鞭。愿往后旅途,三冬暖,春不寒,天黑有灯,下雨有伞。此生尽兴,不负勇往。
  • 相关阅读:
    @从零开始实现一个插件化框架(一)
    @从零开始实现一个插件化框架(二)
    @从零开始实现一个插件化框架(三)
    @CoordinatorLayout使用详解: 打造折叠悬浮效果
    Oracle 11g数据库详细安装过程
    web service 的跨语言特性
    struts2--值栈
    事务处理中如何获取同一个connection 对象
    jsp中文乱码问题
    设置工作集
  • 原文地址:https://www.cnblogs.com/feizianquan/p/14969715.html
Copyright © 2011-2022 走看看