社区
汇编语言
帖子详情
win32 汇编调用函数时的疑问?
TheNewIpad
2014-04-27 07:03:56
win32函数调用时,先跳转到一个全部时函数的位置,那地方全是一个个函数列表。 执行的操作是跳转到真正的函数执行体。
想知道这个位置是个啥!
...全文
134
5
打赏
收藏
win32 汇编调用函数时的疑问?
win32函数调用时,先跳转到一个全部时函数的位置,那地方全是一个个函数列表。 执行的操作是跳转到真正的函数执行体。 想知道这个位置是个啥!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zara
2014-04-30
打赏
举报
回复
同一模块里的,其实不是必须这样做的,也可以直接就到目的地,还省了一个指令。这样做的目的,连写那个很是有名的“Windows 程序设计大奥秘”的侯捷好像也是感到莫名;有些版本不是这么做的,我用 vc2008 没有特殊选项出来的就没有这个中间的 jmp 指令;或许是新版的针对函数的全面重新 hook 来的,好像 win7 里总是这样?
e379278011
2014-04-29
打赏
举报
回复
"那地方全是一个个函数列表" ,调用 函数,先要 声明, 数个函数的声明集合,组合一个inc的文件 TITLE Add and Subtract (AddSub.asm) ; This program adds and subtracts 32-bit integers. ; Last update: 2/1/02 INCLUDE Irvine32.inc ;<------- DumpRegs PROTO ; display register dump // 在Irvine32.inc 里声明滴。 Includelib Kernel32.lib ;<------- 添加 Includelib Irvine32.lib ;<------- 添加 .code main PROC mov eax,10000h ; EAX = 10000h add eax,40000h ; EAX = 50000h sub eax,20000h ; EAX = 30000h call DumpRegs ; / 在Irvine32.inc 里 声明滴。 exit main ENDP END main PE 结构 我没看过,所以我就先这么理解的: “ 那地方全是一个个函数列表。” 这个位置 我估计就是 加载Irvine32.inc 文件后, 指向 声明的函数的 实际地址。
TheNewIpad
2014-04-29
打赏
举报
回复
引用 2 楼 zara 的回复:
说的是其它模块里的函数吧,那个是 IMPORT 导入节里函数地址列表部分;详细的可以找份 PE 结构说明来看看。
我不知道我描述的是否正确, 现在只是在学习汇编。 举个例子吧比如我在main函数中调用 func1、func2、 func3 三个函数。 main函数的核心汇编如下 Func1(); 00BE1F9E call Func1 (0BE11E0h) Func2(); 00BE1FA3 call Func2 (0BE11D6h) Func3(); 00BE1FA8 call Func3 (0BE11DBh) 这0BE11E、0BE11D6、0BE11DB就是说我说的例子,在执行 到 00BE1F9E(调用FUnc1时), 跟进去就会发现全是函数跳转的地方。 你说它是导入表吧,感觉并不精确。 因为Func1这些函数没有导出、导入。 00BE1190 jmp UnhandledExceptionFilter (0BE357Eh) 00BE1195 jmp printf (0BE1486h) 00BE119A jmp _except_handler4_common (0BE337Ch) 00BE119F jmp _matherr (0BE2760h) 00BE11A4 jmp __getmainargs (0BE2976h) 00BE11A9 jmp lstrlenA (0BE3518h) 00BE11AE jmp _RTC_Failure (0BE1D00h) 00BE11B3 jmp _RTC_AllocaFailure (0BE2210h) 00BE11B8 jmp DebuggerKnownHandle (0BE1C20h) 00BE11BD jmp exit (0BE2AA4h) 00BE11C2 jmp __dllonexit (0BE336Ah) 00BE11C7 jmp FreeLibrary (0BE356Ch) 00BE11CC jmp _initterm_e (0BE2D32h) 00BE11D1 jmp _RTC_GetErrorFunc (0BE2610h) 00BE11D6 jmp Func2 (0BE1400h) 00BE11DB jmp Func3 (0BE1AA0h) 00BE11E0 jmp Func1 (0BE13B0h)
zara
2014-04-28
打赏
举报
回复
说的是其它模块里的函数吧,那个是 IMPORT 导入节里函数地址列表部分;详细的可以找份 PE 结构说明来看看。
fly 100%
2014-04-28
打赏
举报
回复
函数指针存放的表 可以这样理解么?
Win32
反
汇编
(一) 初步探索
Win32
反
汇编
与 Ollydbg的简单使用
本文详细介绍Ollydbg在逆向工程中的应用,包括全局变量赋值、函数调用及加法运算的反
汇编
形式,适合初学者快速掌握
Win32
反
汇编
与OD使用。
掌握
WIN32
汇编
:Iczelion教程与实例解析
本文围绕《Iczelion
汇编
完全教程+程序实例》展开,介绍
WIN32
平台
汇编
语言。涵盖基础语法、数据处理、流程控制、函数调用等知识,还详细解析
WIN32
API的使用,包含消息循环、事件处理等。通过系统调用、图形绘制、文件操作等实例,助学习者深入理解
汇编
语言。
【
Win32
汇编
】学习
Win32
汇编
本文详细介绍了Windows环境下32位
汇编
语言的基础知识,包括程序设计模式、伪指令、数据类型、运算符、子过程调用、数组处理、堆栈操作、二进制运算、标志寄存器、数据传送指令、逻辑运算、位测试、移位、加减、乘除、跳转指令和串指令。通过实例代码,深入浅出地展示了如何编写和理解
汇编
语言程序。
掌握
Win32
汇编
:从基础到高级应用
这是
Win32
汇编
语言编程专业教程,涵盖
汇编
语言基础、MASM使用、
Win32
API学习、编程模型理解等内容。介绍了
汇编
优势用途,讲解MASM安装配置与语法,阐述
Win32
API分类及核心函数,还包含编程练习、项目实战及调试技巧等,助读者掌握Windows编程技术。
Win32
汇编
语言教程
本教程介绍
Win32
汇编
语言编程,适用于有C语言编写
Win32
应用程序基础者。阐述了编程所需基本软件,如MASM
汇编
器、
Win32
SDK等;讲解ANSI与UNICODE字符集API;给出简单消息框、显示窗口、控制台等
Win32
汇编
语言程序示例及
汇编
连接命令。
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章