zoukankan      html  css  js  c++  java
  • win32 asm Hello World Demo

    编译和链接选项

    ml.exe /c /coff /nologo /Fo

    link.exe /SUBSYSTEM:WINDOWS /nologo /OUT

    Hello World Demo Compiled with MASMPlus

    .386
    .model flat, stdcall
    option casemap :none
    include windows.inc
    include user32.inc
    include kernel32.inc
    include masm32.inc
    include gdi32.inc
    includelib gdi32.lib
    includelib user32.lib
    includelib kernel32.lib
    includelib masm32.lib
    include macro.asm
    .data
    szTitle db 'Title',0
    szMessage db 'Hello World',0
    .code
    START:
    	;1.push and call
    	push MB_OK or MB_ICONINFORMATION
    	push offset szTitle
    	push offset szMessage
    	push NULL
    	call MessageBox
    	;2.invoke伪指令
    	;invoke MessageBox,NULL,offset szMessage,offset szTitle,MB_OK or MB_ICONINFORMATION
    	invoke ExitProcess,0
    end START
    

      

    此段反汇编结果:程序入口点在0x401000,先是4个push,然后是call MessageBoxA

    返回值到EAX,为ID_OK=1,从图中寄存器可见。

  • 相关阅读:
    <frame>、<iframe>、<embed>、<object> 和 <applet>
    xss攻击
    回流 和 重绘
    defer 和 async 的区别
    从输入URL到浏览页面的过程
    webkit vs v8
    缓存
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/oyjj/p/2132854.html
Copyright © 2011-2022 走看看