社区
汇编语言
帖子详情
汇编语言怎样调用Win Api ??
whupyf
2003-07-05 04:49:19
我反汇编了一段程序。
可是不知道这个程序是怎样调用Api的.
请高手指点下
...全文
357
13
打赏
收藏
汇编语言怎样调用Win Api ??
我反汇编了一段程序。 可是不知道这个程序是怎样调用Api的. 请高手指点下
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
smuwcwt
2003-08-01
打赏
举报
回复
学习学习
Yashmak
2003-07-31
打赏
举报
回复
invoke是个伪指令,
编译器会把它展开为
push 参数n
......
push 参数1
call 函数名(或地址)
返回值在eax中
当然,你要在文件头包含API的导入表
include ***.inc
includelib ***.lib
ckp
2003-07-29
打赏
举报
回复
我的肚子有点痛.:-)哈
ckp
2003-07-29
打赏
举报
回复
哈,楼上好有趣:-)
W32API
2003-07-29
打赏
举报
回复
拜托,不要开口就调用我好不好?
jzma
2003-07-29
打赏
举报
回复
就是在函数名后加伪指令PROTO,再跟一串由逗号相隔的数据类型链表。在前面的 ExitProcess 定义中,该函数有一个 DWORD 类型的参数。当您使用高层调用语句 INVOKE 时,使用函数原型定义特别有用,您可以简单地认为 INVOKE 是一个有参数类型检查的调用语句。譬如,假设您这样写:
call ExitProcess
若您事先没把一个DWORD类型参数压入堆栈,编译器和链接器都不会报错,但毫无疑问,在您的程序运行时将引起崩溃。但是,当您这样写:
invoke ExitProcess
连接器将报错提醒您忘记压入一个 DWORD 类型参数。所以我建议您用 INVOKE 指令而不是CALL去调用一个函数。INVOKE 的语法如下:
INVOKE expression [,arguments]
expression 既可以是一个函数名也可以是一个函数指针。参数由逗号隔开。大多数API函数的原型放在头文件中。 如果您用的是 hutch 的 MASM32,这些头文件在文件夹MASM32/include 下, 这些头文件的扩展名为 INC,函数名和 DLL 中的函数名相同,譬如:KERNEL32.LIB 引出的函数 ExitProcess 的函数原形声明于kernel.inc中。您也可以自己声明函数原型。
jzma
2003-07-16
打赏
举报
回复
提议返汇编,最好使用ida,里面写的非常清楚了
cupidvenus
2003-07-15
打赏
举报
回复
同意
bahanzo1
2003-07-07
打赏
举报
回复
invoke <函数名> 参数
神农氏
2003-07-07
打赏
举报
回复
基本同意楼上!
如调用MessageBox:
push MB_OK
push offset szText
push offset szCaption
push NULL
call dword ptr ds:[address]
address 是导入函数地址表的地址。
紫郢剑侠
2003-07-07
打赏
举报
回复
这要看你所使用的开发环境了.
如果用TASM
就要用CALL指令.如调用MessageBox:
push MB_OK
push offset szAppName
push offset szAppName
push hWnd
call MessageBox
如果是用MASM32,
可以用INVOKE伪指令.如调用MessageBox:
invoke MessageBox, hWnd, addr szAppName, addr szAppName, MB_OK
hotrain
2003-07-05
打赏
举报
回复
调用WIN32 API要在汇编语言的源程序开头声明函数和库。
至于INVOKE嘛,是一个伪操作,就相当于一连串的PUSH和一个CALL,使用INVOKE可以增强程序的可读性。如果不使用INVOKE的话,可以自己把相应的参数PUSH入栈,然后CALL相应的函数就可以了,不过要注意PUSH的顺序,后面的参数应该先入栈。
csdn20032004
2003-07-05
打赏
举报
回复
正常的Win32 汇编语言都是在程序的头部加上函数的声明以及库。
然后指定调用方式,即参数的调用方向,然后在程序中使用invoke 语句进行Api的调用。
Win
dows环境下32位
汇编语言
程序设计
Win
dows环境下32位
汇编语言
是一种全新的编程语言。它使用与C++语言相同的
API
接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。本书从编写应用程序的角度,从“Hello World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入
Win
32
汇编语言
的方方面面。本书作者罗云彬拥有十余年
汇编语言
编程经验,是汇编编程网站http://asm.yeah.net和汇编编程论坛http://
win
32asm.yeah.net的站长。本书是作者多年来编程工作的总结,适合于欲通过
Win
32
汇编语言
编写
Win
dows程序的读者。
Win
32
汇编语言
程序设计(罗云彬)chm
Win
dows环境下32位
汇编语言
是一种全新的编程语言。它使用与C++语言相同的
API
接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。本书从编写应用程序的角度,从“Hello World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入
Win
32
汇编语言
的方方面面。本书作者罗云彬拥有十余年
汇编语言
编程经验,是汇编编程网站http://asm.yeah.net和汇编编程论坛http://
win
32asm.yeah.net的站长。本书是作者多年来编程工作的总结,适合于欲通过
Win
32
汇编语言
编写
Win
dows程序的读者。
Win
32
汇编语言
罗云彬
内容简介:
Win
dows环境下32位
汇编语言
是一种全新的编程语言。它使用与C++语言相同的
API
接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。本书从编写应用程序的角度,从“Hello World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入
Win
32
汇编语言
的方方面面。本书作者罗云彬拥有十余年
汇编语言
编程经验,是汇编编程网站http://asm.yeah.net和汇编编程论坛http://
win
32asm.yeah.net的站长。本书是作者多年来编程工作的总结,适合于欲通过
Win
32
汇编语言
编写
Win
dows程序的读者。
Win
32环境下
汇编语言
程序设计+罗云彬(完整版)
Win
dows环境下32位
汇编语言
是一种全新的编程语言。它使用与C++语言相同的
API
接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。 本书从编写应用程序的角度,从“Hello World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入
Win
32
汇编语言
的方方面面。
Win
32
汇编语言
教程
Win
dows环境下32位
汇编语言
是一种全新的编程语言。它使用与C++语言相同的
API
接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。本书从编写应用程序的角度,从“Hello World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入
Win
32
汇编语言
的方方面面。本书作者罗云彬拥有十余年
汇编语言
编程经验,是汇编编程网站http://asm.yeah.net和汇编编程论坛http://
win
32asm.yeah.net的站长。本书是作者多年来编程工作的总结,适合于欲通过
Win
32
汇编语言
编写
Win
dows程序的读者。
汇编语言
21,459
社区成员
41,600
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章